Introductory Programming with CodeMotion

When I taught APCS, I found that many students had trouble picking up key programming ideas that I was presenting merely as a description in words. I wanted to provide some way for them to interact with a concrete representation of a computer program, but was stymied by the fact that the inside of a computer is an alien world that doesn't work by the same rules students are used to. I found that it was easy to get students to connect the "nouns" and "verbs" of programming to their existing understanding, but that it was very hard for them to form a clear idea of programming ideas with no analog in human language.

The solution, which I have been working on for the last year, is software that gives students a visual representation of how an expert programmer would imagine their program running. Instead of needing to know the abstract ideas first in order to imagine what a program does, they can directly observe how a program behaves and gradually come to understand the rules that dictate that behavior.

This is all wrapped up into a program that scaffolds the whole learning experience, providing a student with a short reading, then some demos, then some exercises to do. The computer assesses the student's work, gives constructive feedback to help them perfect each exercise, and then provides access to the next section once enough exercises have been completed.

I've tested CodeMotion with a group of teachers at a week-long workshop over the summer, and got very positive feedback from them. I also tested it with my eighth-grade cousin, who found that after working through a few lessons with my help he was able to continue entirely on his own.

You can download the latest version of CodeMotion (build 45, 9/29/09) from the link below. To check if your version is up to date, look in the "About" box, accessible via the "Help" menu in CodeMotion.

(Internet Explorer might try to change the extension to .zip; to get it to run you'll have to change it back to .jar or else download the zip file that contains the entire CodeMotion folder)

You can download a zip file containing all the workshop materials here: