Final Programming Project


For your final programming project, you will choose one of four project options. All four projects use the Grid classes that you've seen in GridPlotter, the Marine Biology Simulation (MBS), and Percolation, and all four ask you to create several classes that are variations on a theme with slightly different behavior, similar to the different types of Fish.

You may find the brief introduction videos helpful in choosing which project you wish to complete. Two of the projects — Mouse in a Maze and Obstacle Course — are closer in design to the MBS and Percolation projects that you are familiar with than the other two. Some of the assignments provide more detail or more guidance about the implementation procedure than others.

Mouse in a Maze and Obstacle Course

If you choose the Mouse in a Maze project, you will create several types of mice, each of which takes a different approach to moving around a maze to find cheese. If you choose the Obstacle Course project, you will create different types of racers that have different approaches to moving around obstacles to get to the finish line.

The Obstacle Course program has more obvious similarities with the Marine Biology Simulation case study, but the Mouse in a Maze project provides more detailed guidance and instructions (which you may choose to follow or ignore). Both projects provide some code to get you started, including everything you need for a graphical user interface.

Archaeology Dig and Chessie

The Chessie project involves creating a variation of a chess game in which each side tries to move as many pieces as possible in each move, although each piece can only move in ways that would be legal under normal chess rules. There are more types of pieces, and so more subclasses and more types of abstraction, than in the Mouse in a Maze or Obstacle Course projects, making the Chessie project more complex than the other two.

The Archaeology Dig project also involves objects in a grid, but there are fewer similarities to the other projects. It is very similar to MineSweeper, where the user clicks on cells in the grid to uncover hidden objects.

General Notes

All four project use the GridPackage, so you make sure you are comfortable with the following classes:

Class documentation for all classes in the Grid Package can be found here.

The final programming projects will be graded according to this general rubric (more specific point break-downs will depend on the particular project). This rubric is based on the CS Program Style Guide and Documentation Standards referenced in the course syllabus, which describe the programming style and documentation standards for this course. Following these standards is an important step towards writing well-structured and reusable programs.