Course Project

On This Page


Overview

The purpose of the project is to use most of the techniques you have learned from this course. You may choose your project's subject matter as long as it meets the requirements discussed below.

Developing your own game or simulation is a powerful way to develop a deeper understanding of programming. You will need to work with objects, methods, if-statement, loops, arrays, lists, images, collision detection and all the other topics we have explored during this course. At the end you will have created a program you can be proud of.

Developing a project takes time and you must plan accordingly. To help in the development, you will be asked to turn in proposals, prototypes and, of course, the final program. Your work will be reviewed by your peers as well as the instructor.

I encourage you to come up with an original idea for your project. However, you may extend scenarios from the textbook, lectures, or even from other people (with their explicitly stated and documented permission). If you do start with an existing scenario, you must include novel elements and significantly modify and add to the scenario. As a rule of thumb, you must introduce at least one major new idea (or several minor ones) and at least double the number of classes and the size of the code.

As you develop your scenario, you will need to make many decisions. When you make the decisions, you will want to keep your core concept in mind. The core concept of a game is the rules of play and core mechanics. A core mechanic is the actions that a player repeats most often while striving to reach the overall goal. For a simulation, the core concept is the phenomena you are studying with your simulation.

All the work on the project must be completed by you individually. This is not a group project and I expect academic integrity from all students. All ideas must be yours unless credited to others and properly cited. If you have questions about what is acceptable then ask me.

Project Proposal

The goal of the project proposal is to establish the core concept for your project. You have wide freedom in defining your project. However, you must meet the following requirements.

Requirements

  1. The project must be a game or simulation.
  2. Clearly describe the core mechanic in words.
  3. Identify at least three new classes of objects planned for the scenario.
  4. The proposal must describe collisions between objects and the purpose of those collisions.
  5. Describe or show images you plan to use and their sources.
  6. Identify and describe animations planned for the project.
  7. Describe sounds and their planned use in the project.
  8. The proposal must be typewritten, not handwritten, with good grammar and spelling.

For an example of a project proposal see Project Proposal.

Extra Credit

Up to 2 points of extra credit is given for original artwork, ideas and concepts. For example:

  1. Original drawings included with the proposal
  2. A description of new game play ideas or novel simulation mechanics
  3. A description of unique and interesting combinations of puzzles, combat, dexterity challenges, hidden objects or revelations

Make certain that your proposal document describes any extra credit attempted.

Initial Prototype

For this assignment, you must produce an initial prototype that demonstrates the core part of your project. Your initial prototype should tell you if you are on the right track. Not all the features, such as animations and sound effects must be working, but enough should be complete to show you have invested at least 5-10 hours and made good progress on your project.

Here is an example of a full credit initial prototype: platformer3.zip

User-Testable Prototype

At this point you should have a complete and useable scenario ready for user testing. Some final touches, like opening screens, may be absent, but the scenario should be complete and useable. We will use this opportunity to provide feedback on the project from a user standpoint.

Here is an example of a full credit user-testable prototype: platformer5.zip

At the start of class, each student will load their scenario onto a classroom computer. During class people will read the instructions for and try out other people's scenarios. You as the developer cannot tell the user what to do or make suggestions to the user. The user who is testing your scenario will fill out a User Test Report which evaluates your scenario and offers suggestions.

Extra Credit

Complete at least five (5) user test reports for other student's projects. (1 point)

Final Project

This is the final version of your fully documented project. At this time you should have a fully functional project meeting the final specifications. You will have a brief time (3 minutes) to demonstrate your scenario during class.

Final Specifications

The project must:

  1. Include at least three new classes with at least one private member variable and method in each of the three classes. (4)
  2. Implement at least one overloaded constructor. (2)
  3. Implement at least one overloaded method. (2)
  4. Declare at least one array variable. (2)
  5. Call at least one of the Greenfoot collision detection methods. (2)
  6. Display at least two images. (2)
  7. Play at least two sounds. (2)
  8. Display at least two animations. (2)
  9. Make use of the following control statements:
    1. while or do-while loop (2)
    2. for loop (2)
    3. if or if-else (2)
  10. Publish your scenario on the Greenfoot Gallery with the tag cabrillo and include the URL in your README.TXT file. (2)

Final Project Presentation

You are required to demonstrate your project on the assigned day, but not necessarily in front of the class. When all the public presentations are completed, you can present it to the instructor individually. The following is the suggested presentation flow:

  1. State your name and your project's name.
  2. Briefly state your scenario's purpose.
  3. Compile your source code.
  4. Demonstrate your scenario, explaining features as you go.

    Show the file that your program reads from. Point out as many of the cool features as possible so we can all admire them.

  5. Summarize the project.

    When your demonstration is over, or your time is up, quickly summarize the program's purpose. Then pause for about 10 seconds to give us a chance to applaud!

Final Project Report

The final project report is an enhanced README.TXT file. Start with the usual README.TXT information but add the following:

  • An accurate status including the functionality of the project.
  • A list of the Final Specifications and a brief description of how you met these requirements in your program

    If you do not list the specification, with a file and line number, then I will assume you did not meet the requirement

  • A list of any extra-credit features

For an example report see README-FINAL.TXT.

Extra Credit

The following are worth extra credit points:

  1. Present your project one class meeting or more earlier (2 points)
  2. Code a list of objects and process the list in a loop. (2 points)
  3. Use a JFileChooser (1 point)
  4. Implement an ActionListener interface and listen for user actions. (2 points)
  5. Use your imagination and code Java features not covered in this course -- be sure to clearly identify your creative features. (0 to 4 points)
    1. 0: Extra credit feature is trivial or does not work
    2. 1: Extra credit is simple and works
    3. 2: Two simple extra credit features or one complex or imaginative use of a feature
    4. 3: Three simple features or one simple features and one complex or imaginative use of a feature
    5. 4: Four simple features, two complex or imaginative use of a feature, or some combination
  6. Use of original artwork in your scenario. (2 points)
  7. Adding your project to the Hall of Fame (1 point)

Make certain that your README.txt file lists any extra credit attempted and the file name and line number of the extra credit where appropriate. Without the file name and line number I may not see the extra credit.

Adding Your Project to the Hall of Fame

You decide whether or not to add your project to the Hall of Fame. To do so, you need to:

  1. Share your scenario on the Greenfoot Gallery
  2. Include the Greenfoot Web address of the scenario in your README.TXT file
For example:

Gallery Address: http://www.greenfoot.org/scenarios/2370

Home | Blackboard | Schedule | Syllabus | Room Policies
Help | FAQ's | HowTo's | Links
Last Updated: May 16 2012 @16:20:58