Description

Each week this semester, you have been doing labs and projects that emphasize specific aspects of the computer game creation. For the last few weeks of the course, you will make use of these skills in the context of a larger, more realistic project. The goals of this project are:
• To engage in an original project which is tailored to your particular interests
• To have additional experience using the programming topics covered within the scope of this course.
• To take responsibility for designing and producing a complete program, thereby gaining knowledge and understanding of the entire software development process.

Project Timeline

This project is an assignment that spans several weeks and has four progress checks. The timeline for this project is as follows:

Wednesday, April 21, during class Progress Check 1: Choosing a Topic
Wednesday, April 28, during class Progress Check 2: Problem Definition and Initial Design
Thursday, May 6, during class Progress Check 3: Update meeting
Thursday, May 13, during class Progress Check 4: Update meeting
Wednesday, May 19, 2:30pm Project Due - Program Deliverable & Project Presentations
Thursday May 20 Project Presentations

Final Exam: Friday May 20, 7:20am to 8:49am.

As mentioned, one goal for this project is to allow you to choose an application that is of interest to you. The first step is, therefore, to determine a problem to be solved or addressed.
A second goal is to have additional experience using various programming constructs. The Project Description below provides a list of criteria for your project. You will submit a description of your project (Problem Definition and Initial Design deliverable) so that we can verify all requirements will be adequately met.
The final step is the delivery of the program itself, along with supporting documentation and presentation to the class.

Project Description

To ensure that you are applying your knowledge of various concepts, your program must meet the following criteria:
• Your program must make use of classes.
• Your program must use sprites or tiles.
• Your submitted program must compile and execute.

To gain a better understanding of the overall software engineering process, you must meet the following criteria for your project:
• Your project must begin with planning.
• Your project must make use of ample commenting.
• Your project must include separate documentation on the use and function of your program.

NOTE: All the code that meets the criteria above must be written by you. You are more than welcome to extend other projects by writing more code or using code that is available from other sources (e.g., the Internet). Any code that you have not written yourself must be properly cited.

Choosing a Topic

BACK

You are encouraged to pick a topic for your project which would be appropriate for your interests. (e.g., arcade game, role-playing, first person shooter, etc.). On April 21st, the topic of your project is due. This process will be aided by the work done the previous Friday. You need to think of a company name and include it as a title along with the names of all group members. You should submit your topic written as a paragraph on a single sheet of paper. As part of your paragraph please talk about why you chose this topic. Your description should also include any special software that you may need. This submission will be graded on both content and style. As with any document that you produce, you should use complete sentences with correct grammar and spelling for any sections which are not code or pseudocode.

Problem Definition and Intitial Design

BACK

The second deliverable will define your project in more detail, and present an initial design. You should create a word document called "company" Project. Where "company" is the name of your company, and is always appropriate for school. This document should include the following sections:
• TITLE. You should include your name, your company's name, and a title for your project.
• PROBLEM DESCRIPTION. You should include a one-paragraph description of your project. This paragraph should give the reader a general idea about the program requirements and what problem you are trying to solve.
• DATA DESCRIPTION. This is basically the description of what variables you will use and their purpose in your program.
• PROCEDURAL DESCRIPTION. Include a brief description in pseudocode of how your main program will operate. Be sure to include descriptions of your methods.
• SPECIAL NEEDS/CONCERNS. Your problem definition should mention any special needs or concerns that the instructor should know about. Will you need extra help on a particularly difficult idea that you will have to conquer in order to make this project work? If you're addressing a specific problem within a non-computer science area, you may need to get advice from someone within that area.

NOTE: BE SURE THAT YOUR PROJECT MEETS ALL THE CRITERIA LISTED IN THE PROJECT DESCRIPTION SECTION.

This submission will be graded on both content and style. As with any document that you produce, you should use complete sentences with correct grammar and spelling for any sections which are not code or pseudo code. Please use the five section headings listed previously (e.g., PROCEDURAL DESCRIPTION), so that I may easily verify that you have included all necessary details. Also be sure that the project criteria are clearly identified! Any criteria not addressed in this report will result in point deductions.

Final Project Due

BACK

This is the final deliverable for your project. You will be submitting both the program and a comprehensive presentation.
NOTE: Be sure to follow the submission instructions below!

Project Presentation

Create presentation (notebook or other) which contains the following sections:
• TITLE. Include your name, your partner's name, and a project title.
• PROBLEM DESCRIPTION. This is the one-paragraph description of your project (from the Problem Definition) with any necessary changes.
• PROGRAM DOCUMENTATION. This section should include a brief description of how to run your program (i.e., what the user should type and any other information a user might need to know). If your project topic is in an engineering domain, we encourage you to give an example set of input/output (e.g., what load would cause a bridge to fail). You should also include a brief description that might be used by another programmer to modify/extend your program. For example, there may be some features that you would have included in your program if you had more time. You could include a list of those features, with any thoughts you had about how they should be implemented.
• REQUIREMENTS. This section will document how you have met each of the requirements for this final project. Specifically, you should include an itemized list that (1) lists each of the requirements for this project and (2) states the program file name and line number(s) where you have met the requirement. NOTE: when you are within a given file with your cursor at a specific line, the bottom right corner of your Visual Studios window gives the line number where your cursor is (Ln x, where x is the line number).
• REFLECTIONS. Include a description of what you learned from this project. It might help to think about what problems you encountered, and what you would do differently if you had to do another project.
• DEMONSTRATION. You will run your program and demonstrate its features.

Final Program

Your final program includes the class files, driver program, and any data files you have created. Be sure to include adequate documentation within all your files, so that another programmer could easily make modifications or enhancements. This must be saved on your "Pink drive" and no other files may be present.