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

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.

1. BotPlay - An Introduction to Objects

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

» preview this assignment

2. BetterBot - Inheritance, Modularity, Parameters

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

3. LoopingBot - Loops & Iteration

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.

MazeBot - Algorithms

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

FrogBot - Events and Interfaces

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

PainterBot - Recursion

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

TronBot - Algorithms & AI

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


Image of a Bot in the default BotWorld. (BotPlay lab)