CS-140 Final Project

The final project for CS-140 is very open ended. I would like you to code some sort of game that you can play on the computer. The game must be coded in Java, and must have a graphical user interface. The game should include instructions on how to play, and should be interactive - the user should be able to play against (or with) the computer. If you are looking for inspiration, start out on the web at Wikipedia: Game. One word of warning; it's easy to start working on a very complicated game, and discover that you don't actually have enough time to implement all you had planned. Expect to run into difficulties as you implement your game, so choose a simple game to start with. If you have extra time, you can always add new features.


You may work on this project in teams of one, two, or three students. If you are working as a team, I expect the entire team to participate in developing the project, and I will expect the result to be more complicated and sophisticated than a project developed by a single student. In order to ensure that everyone is participating on a team, I expect each team member of multi-student teams to send me an e-mail that identifies 1) all the members of the team, and 2) the member of the team designated to submit the final project on myCourses. In order to avoid last-minute confusion, I expect all teams to be defined before the last day of classes, Friday, December 8 at 11:59 PM. If I have not received a note from you before that time, I will assume you are working on the project by yourself.

When the project is complete, the project should be submitted on myCourses only by the team member chosen as the "submitter" for the team. The project will be graded, and all team members will receive the same grade. Because of the way myCourses works, feedback on the grade will be available only to the submitter. The submitter should share this feedback with the rest of the team.

Submitting the Project

Put all your source code in a package called "project". If you would like to highlight something special you have done; an example of one of the concepts we have been studying such as sub-typing or functional programming, or the implementation of a concept we have not yet studied, such as including sounds in your game, or making things move around as you play; create a file called "README.txt" in the project sub-directory that contains this information.

Create a zip file named "project.zip" that has the "project" directory that contains your Java files, your README.txt file, and any other files required to run your code. Submit the project.zip file on myCourses. There is a project submission area under Content to upload the project.zip file. The project is due by 11:59 P.M. on Friday, December 15. Since I am giving you up until the very last minute of the semester to submit your final project, no late submissions will be allowed or graded. Submissions after December 15 will receive a zero grade.

As usual, you may resubmit as often as you wish up to midnight on December 15. Only the final submission will be graded.

Grading Criteria

The final project is worth 100 points. I will download your project, compile it, and run it. There are several automatic deductions, as follows:

These deductions will be subtracted from a content grade, which I will determine subjectively. The content grade will be based on several components, as follows:

The content grade will be calculated in comparison to other project submissions in this class, and larger teams will be graded more severely than smaller teams.