CS 231 Project 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.

Here are the links to the API's for the most recent versions of Java:

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.

Be sure to include a list of people you worked with, including TAs, and professors. Include in that list anyone whose code you may have seen, such as those of friends who have taken the course in a previous semester.

To hand in code, put it in your folder on the Courses fileserver. Create a directory for each project inside the private folder inside your username folder.

Give your wiki page the label: cs231f14project8