ArticleslgStudy

science

Karel (programming language)

Karel (programming language) is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Karel (programming language) rather than just read about it. In short: Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming.

Karel (programming language) — main illustration
Karel (programming language) — illustration

Key takeaways

  • Karel (programming language) belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Karel (programming language) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Karel (programming language) from memory before moving on to harder problems.

Reference excerpt

Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming. Pattis used the language in his courses at Stanford University, California. The language is named after Karel Čapek, a Czech writer who introduced the word robot in his play R.U.R.

Principles A program in Karel is used to control a simple robot named Karel that lives in an environment consisting of a grid of streets (left-right) and avenues (up-down). Karel understands five basic instructions: move (Karel moves by one square in the direction he is facing), turnLeft (Karel turns 90 ° left), putBeeper (Karel puts a beeper on the square he is standing at), pickBeeper (Karel lifts a beeper off the square he is standing at), and turnoff (Karel switches himself off, the program ends). Karel can also perform boolean queries about his immediate environment, asking whether there is a beeper where he is standing, whether there are barriers next to him, and about the direction he is facing. A programmer can create additional instructions by defining them in terms of the five basic instructions, and by using conditional control flow statements if and while with environment queries, and by using the iterate construct.

Example The following is a simple example of Karel syntax:

BEGINNING-OF-PROGRAM DEFINE turnRight AS BEGIN turnLeft; turnLeft; turnLeft; END BEGINNING-OF-EXECUTION ITERATE 3 TIMES BEGIN turnRight; move END turnoff END-OF-EXECUTION END-OF-PROGRAM

Specification The following implementation is Karel in the Python programming language. Other implementations are available.

Primitive functions The following are the primitive functions.

move() Karel moves one square in the direction it is facing. turn_left() Karel turns left by 90 degrees. put_beeper() Karel puts a beeper on its current square. pick_beeper() Karel picks up a beeper from its current square. paint_corner(COLOR_NAME) Karel paints its current corner with a color. There is a finite list of available colors.

Program Structures Karel programs are structured in the following way:

Comments: Any line starting with # is a comment and is ignored by the interpreter. Functions in Karel are declared using def, followed by the function name and parentheses. The body of the function follows in subsequent lines. main(): A program run executes the main function. The other functions are not executed unless called.

Conditions in Karel Karel can respond to certain conditions in its world:

front_is_clear(), beepers_present(), beepers_in_bag(), left_is_clear(), right_is_clear(), facing_north(), facing_south(), facing_east(), and facing_west() And their inverses:

front_is_blocked(), no_beepers_present(), no_beepers_in_bag(), left_is_blocked(), right_is_blocked(), not_facing_north(), not_facing_south(), not_facing_east(), and not_facing_west(). It can also check the current block's color by corner_color_is(COLOR_NAME).

Conditions and Loops There are two control structures:

Conditional execution using if and else. Loops using for and while.

Variants and descendants The language has inspired the development of various clones and similar educational languages. As the language is intended for beginners, localized variants exist in some languages, notably Czech (the programming language was quite popular in Czechoslovakia). The principles of Karel were updated to the object-oriented programming paradigm in a new programming language called Karel++. Karel++ is conceptually based on Karel, but uses a completely new syntax, similar to Java. A REALbasic implementation, rbKarel, provides the basic Karel commands within an RBScript environment with BASIC syntax being used for loops and conditionals. This teaching project provides a cross-platform GUI for Karel experiments including single-stepping and spoken output. A Karel-inspired language and environment called Robot Emil uses a 3D view of the robot's world. Robot Emil offers a large palette of objects that can be placed to depict walls, windows (transparency), water and grass. The camera may be moved freely throughout the 3D environment. The robot may be controlled interactively with buttons in the GUI, or by programs written in Emil's Karel-like programming language. The author states that the program is free for use by schools, students and children. Versions are available in English, Czech and Slovak. A proprietary language which is also called Karel is used to program the robots of FANUC Robotics. However, FANUC Karel is derived from Pascal. The language has also been implemented as Karel the Dog in JavaScript by CodeHS. Similar to the original language, this implementation features Karel in a grid world. Programmers use and build upon Karel's simple vocabulary of commands to accomplish programming tasks. Instead of putting and picking beepers, Karel the Dog puts and takes tennis balls. A German version of Karel is named "Robot Karol".

See also Educational programming language RoboMind - An educational alternative programming environment RUR-PLE - another "learn Python" tool based on ideas in Karel CodeHS - introductory computer science education using Karel in JavaScript

Further reading Richard E. Pattis. Karel The Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, 1981. ISBN 0-471-59725-2. Joseph Bergin, Mark Stehlik, Jim Roberts, Richard E. Pattis. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, 1996. ISBN 0-471-13809-6.

References

External links Karel syntax xKarel by R. Dostal and P. Abrahamczik (created 1997) Karel by T. Mitchell (created 2000) Karel in tiny-c Archived 2019-11-28 at the Wayback Machine by Lee Bradley (created 2013) Karel for iPad by CloudMakers (created 2014) Karel in JavaScript by CodeHS Karel in Perl 5 by E. Choroba (created 2016) Karel-3D in JavaScript and C++ (sk) (en) (de) (es) (created 2017, 2018) Guido van Robot (GvR) - Karel in Python (created 2006, 2010)

Illustrations

Karel (programming language) illustration

Worked examples

Example 1 — a first encounter with Karel (programming language)

Start with the simplest possible case. Write down what Karel (programming language) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Karel (programming language) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Karel (programming language) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Karel (programming language)

In research
Karel (programming language) appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Karel (programming language) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Karel (programming language) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Educational programming languages, Procedural programming languages, Programming languages created in 1981, so understanding it makes those chapters shorter.
In everyday life
Look for Karel (programming language) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Karel (programming language) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Karel (programming language) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Karel (programming language) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Karel (programming language) in simple terms?

Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming.

Why does Karel (programming language) matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Karel (programming language)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Karel (programming language).

Tags

  • Educational programming languages
  • Procedural programming languages
  • Programming languages created in 1981

Keep exploring