CS 231: Assignment #8

Programmer's Choice

The purpose of this week's lab is to let you design your own simulation, now that you have some familiarity with creating simulations, creating graphical visualizations, and responding to user input.

Documentation for Java 1.6 is located at: Java 1.6 SE API

Problem Description

You can choose one of three options for this week's project.

Data structure list:


  1. Design your simulation. Make this a wiki design document that describes the various classes you plan to use and how they interact. You may want to provide method headers for the more important methods (i.e. not simple accessors or mutators). This will be the first half of your writeup.
  2. Implement the data structure you chose from the list above. If your chosen project uses more than one type of data structure, you have to implement only one of them yourself. You can use the Java standard implementations for the rest.
  3. Implement your project, including some level of interaction.
  4. Demonstrate your project to the prof when you are done, or close to it.


  1. Implement more than one data structure.
  2. Make a fancier interface than a few buttons.
  3. Do some testing of your data structure and demonstrate its big O() properties for tasks like adding and removing elements.
  4. For simulations, demonstrate the effect of changing certain parameters on the system. Make graphs or movies.
  5. Just make it really, really, cool.


The first part of your writeup should be your design document.

The second part of your writeup should be a summary of the results of your implementation, noting any changes from the original design you decided to make. Include a description of any extensions.

Hand in your code on the Courses server in your private subdirectory.

Give your wiki page the label: cs231f12project8