[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] BotWorld -

About BotWorld

Inspired by Pac Man, Richard Pattis' Karel the Robot, and the ACM Java Task Force, BotWorld is a lightweight, interactive "sandbox" for teaching Java with an objects-first, algorithms-early approach.

BotWorld has successfully been used by approximately one thousand students at Penn in courses taught by five professors over a three year period.


As CS1 educators, we have many demands to balance. We want to make our courses fun enough to attract students, yet rigorous enough so students can succeed if they choose to go on to the next level. We want to engage students with fun technology like graphics and games, but we don't want to bog them down with too much gnarly graphics code. We want our students to be able to "think algorithmically" and also to "think in objects". We want students to realize the power of computing early, yet we want them to be able to write code "from scratch". We want to teach the latest and greatest programming languages, but we must be sensitive to market demand and the logistics involved in a language change.

In light of these factors we will describe our motivation for developing BotWorld. In 2003, due in large part to market demand, the Penn CIS Department changed the language taught in its CS1 course from the functional O'Caml language to Java. Although other aspects of the course have changed, the decision at the time to use an IDE with a Java interpreter has stood the test of time. We chose and continue to use DrJava. Other IDE's such as BlueJ have since added an interpreter.

Using an interpreter has many advantages, most notably that developers (including professors giving live demos) can quickly and easily experiment and test by creating one or more objects, calling methods, and observing results with- out having to create a full-blown application/applet with a main/init method. This approach is inherently conducive to teaching objects-first. It helps to emphasize the value of building well constructed classes. It supports the concept that a program is a collection of cooperating objects as opposed to a report generator.

BotWorld and Other Systems

Greenfoot and MIT's Scratch are similar introductory-Java systems for teaching programming to beginners.


Read our white paper describing how we have used Botworld at the University of Pennsylvania since 2005.