Difference between revisions of "W1165 Karel Introduction"

From Coder Merlin
Line 16: Line 16:
{{CMK}} is a very simple robot living in a very simple world. '''Programming''' {{CMK}} is accomplished by specifying a series of simple instructions.  {{CMK}} initially ''understands'' only a very few instructions, but over time you can expand the vocabulary by defining ''functions'' and enhancing {{CMK}}'s abilities.
{{CMK}} is a very simple robot living in a very simple world. '''Programming''' {{CMK}} is accomplished by specifying a series of simple instructions.  {{CMK}} initially ''understands'' only a very few instructions, but over time you can expand the vocabulary by defining ''functions'' and enhancing {{CMK}}'s abilities.


All instructions issued to {{CMK}} must be '''very precise''' and '''unambiguous''', a key requirement of well-written programs.  The programs themselves must obey a set of '''syntactic rules''' which define which commands, and the ordering of those commands, are acceptable.  These rules define a programming language, such as the Swift programming language which we've been using.  The details of the subset of instructions which {{CMK}} understands are very easy to master, enabling us to focus on '''problem solving'''.
All instructions issued to {{CMK}} must be '''very precise''' and '''unambiguous''', a key requirement of well-written programs.  The programs themselves must obey a set of '''syntactic rules''' which define which commands (and the ordering of those commands) are acceptable.  These rules define a programming language, such as the Swift programming language which we've been using.  The details of the subset of instructions which {{CMK}} understands are very easy to master, enabling us to focus on '''problem solving'''.


<span style="font-size: x-large;">It is problem solving which is the focus and essence of computer programming.</span>
<span style="font-size: x-large;">It is problem solving which is the focus and essence of computer programming.</span>

Revision as of 14:43, 16 February 2021

Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
CoderMerlin™ Karel

Prerequisites[edit]

Background[edit]

Richard Pattis
Karel the Robot
Karel Čapek

 Coder Merlin™ Karel , also known as "that little blue bot", is strongly inspired by Richard Pattis' book written during his studies at Stanford.[1][2] Richard Pattis currently teaches at the University of California, Irvine. Pattis chose the name Karel in honor of the Czech playwright Karel Čapek, who introduced the word robot in his 1921 play R.U.R.

Eric Roberts, Department of Computer Science, Stanford University, September 2005:

In the 1970s, a Stanford graduate student named Rich Pattis decided that it would be easier to teach the fundamentals of programming if students could somehow learn the basic ideas in a simple environment free from the complexities that characterize most programming languages. Drawing inspiration from the success of Seymour Papert’s LOGO project at MIT, Rich designed an introductory programming environment in which students teach a robot to solve simple problems. [3]

 Coder Merlin™ Karel  is a very simple robot living in a very simple world. Programming  Coder Merlin™ Karel  is accomplished by specifying a series of simple instructions.  Coder Merlin™ Karel  initially understands only a very few instructions, but over time you can expand the vocabulary by defining functions and enhancing  Coder Merlin™ Karel 's abilities.

All instructions issued to  Coder Merlin™ Karel  must be very precise and unambiguous, a key requirement of well-written programs. The programs themselves must obey a set of syntactic rules which define which commands (and the ordering of those commands) are acceptable. These rules define a programming language, such as the Swift programming language which we've been using. The details of the subset of instructions which  Coder Merlin™ Karel  understands are very easy to master, enabling us to focus on problem solving.

It is problem solving which is the focus and essence of computer programming.

Introduction[edit]

Topic Headers[edit]

Key Concepts[edit]

Exercises[edit]

References[edit]