During our brief chat, this gentleman and I came to the conclusion that most students entering our state's higher educational system are essentially computer illiterates and, further, these students are incapable of performing anything much more intellectually challenging that turning on their computers and logging onto Facebook or Twitter.
In this posting, and others to follow, I would like to introduce a few simple tools that have proven themselves useful in teaching the fundamentals of computer science to both home-schooled and public school students.
Created during the 1980s by Stanford University grad student Richard Pattis, Karel the Robot is the "grandfather" of simple computer programs that are used to teach the fundamentals of object oriented programming (OOP). Karel is an ongoing, open source, project that is freely available online from several download sites.
As far as robots are concerned, and in light of today's computer graphics, Karel is pretty unremarkable since he understands a total of seven commands and is able to make only a handful of simple logical decisions. The flip side of this lack of sophistication is that anyone using this program (including parents and adult learners) will soon have a sound knowledge of basic computer functions such as object methods, iterations, and simple programs that accomplish well-defined goals.
To get an idea of how influential Karel the Robot as been since it was introduced, take a look at "If Charles Schultz Wrote Karel the Robot."
Given Karel's success, it isn't surprising that he has existed in several "incarnations" over the years since his creation.
Among such Karel-clones you can find a program called Karel J. Robot that has been used to introduce college freshmen to the Java programming language at schools such as Stanford and Carnegie Mellon Universities. Guido van Robot (GvR) is a Karel-clone that "understands" the Python programming language and gets its name as a play on the name of the Python language's creator, Guide van Rossum. There is also a program called Karel ++ that has been used to introduce both the C++ and Java programming languages. There is even an optional Karel implementation that is available for the technically-sophisticated Alice educational package. Finally, there is a program called "Robot Emil," a 3-dimensional adaptation of Karel that was introduced in 2008 (warning: the web site and user materials for Emil suffer in their translation from Czech into English).
Of the two learning environments presented in this posting, I personally prefer the Greenfoot package.
This is an open source program which has been strongly influenced by Karel but uses the Java programming language rather than a "hybrid" language (Karel was originally written in "pseudo-Pascal)."
One factor in my preference for Greenfoot over Karel is that Greenfoot is, in reality, a functional programming environment featuring a graphical interface that can be used for "real" programming tasks but is also capable of producing many scenarios (read "programs" or "games") such as "Wombats" (Karel the Robot recast as the Australian mammal) and "TurtleGraphics" as well as "classic" games like "Asteroids" and "Minesweeper." Perhaps more importantly, Greenfoot can be seen as an intermediate environment that ties together the elementary school-level Scratch program and its full-featured successor, BlueJ. I'll discuss the latter two tools in forthcoming posts.
Since it would be foolish of me to attempt a detailed explanation of any of the above-mentioned software-based tools, I will simply close with a promise to present and discuss other computer science learning tools in the near future.
Published by Wayne McDonald
I'm a retired Physician's Assistant with special qualifications in adult & pediatric echocardiography (heart ultrasound) and cardiovascular testing. I'm also working on my master's degree in history. View profile
- New Demand of Computer Science Majors in the Criminal Justice FieldComputer Science majors are now in more demand than ever with way cooler jobs.
- Free Software Group Campaigns Against MicrosoftThe Free Software Foundation is strongly urging the installation of the GNU/Linux operating system for computers because it's the platform for which many thousands of free software applications have been written
What I Did with My Computer Science DegreeA lot has changed since I got my Computer Science Degree in 1987, but it has been a good choice and it has paid well. There have been advantages and disadvantages in pursuing t...
Understanding JavaA reference guide to all the people who need to learn or understand Java before they begin.- Is Free Software Really Free?There are two kinds of free software: The kind that's free to use and the kind that's free to own. What kind do you have on your PC, and why is it important to know?
- Careers for Graduates with a Degree in Computer Science
- Famous Birthdays: Born on July 21st
- A Short Introduction to Java Programming Language
- Java Programming Tutorials: The Online Give and Take
- Capturing Desktop Screenshots Using Java Programming
- How to Send SOAP Request and Receive Soap Response Using Java Programming
- Java Programming Language Tutorial: From Oak to Java




