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
BACKYou 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
BACKThe 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
BACKThis 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.