BotWorld Projects
The introductory programming course at the University of Pennsylvania currently uses a number of BotWorld projects, whose descriptions appear below.
The first four in the list have been used extensively over the past three years. The remaining projects were created and first used in summer 2008.
Sample Project: BotPlay
View the BotPlay Assignment Write-Up.
Introductory Projects
BotPlay, BetterBot and LoopingBot are intended to be given sequentially and introduces students to the basics of the Java language.

Introduce objects in Java (methods and state) using the DrJava interactions pane.

Enhance the basic Bot: extend/reuse functionality and write additional methods according to a Javadoc specification.

Add even more functionality to the basic Bot: use loops and iteration to simplify repetitive tasks.
Additional Projects
The following projects each focus on a specific programming concept. They are stand-alone and may be assigned in any order after the introductory projects.

Implement a "follow right wall" algorithm that allows a MazeBot to locate a dot within a MazeWorld.

Implement a version of the "Frogger" game within the Botworld interface. Introduction to Timer class and event listeners.

Use recursion to draw fractal patterns, using dots as "paint" in a CanvasWorld.

Create an artificial intelligence module that is used to control a Bot which can play Tron against other student-written controls.