Learning Computer Science in Elementary and Junior High Schools

Wayne McDonald
Over the past few years I've done a few hours a week of private tutoring for undergrads at a local university. I will not identify this institution by name but instead will note that its football team has won a total of two games in past two years, giving it the distinction of having a worse won-lost record that William Jennings Bryan, Eugene Debs, Thomas Dewey, and Harold Stassen combined. Fortunately, this institution is much better known for its academic record rather than the success of its extramural athletics program. It was a conversation with a tenured instructor at that school which motivated today's posting.

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.

Karel the Robot

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).

Greenfoot

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

To comment, please sign in to your Yahoo! account, or sign up for a new account.