Computer Science APEA 15-100, Summer 2009
Homework 17-20 (Term Project)
Due: Fri 7-Aug-2009 at 4:30pm (email copy only)
(no late submissions accepted).
Bonus: +1 point if submitted by Fri 7-Aug-2009 at
9:00am
Read these instructions first!
- Be sure to include your name, your Andrew ID, and your section clearly on the top of each file in your assignment.
- Also: be sure to
include a timesheet (in a file named "timesheet") indicating total time
spent on the main non-bonus part of your project, and separately indicating
total time (if any) spent on the bonus part of your project.
- And: be sure to include
a list of all the features (in a file named "features") of your program, so
we do not inadvertently skip some of them when grading!
- What to submit
- Create a submission directory like this: "koz-hw17-20" (replace
"koz" with your andrew id)
- Place all the files you are submitting in that directory, zip that
directory, and submit the zipped directory
- How to submit
- Send an email with the zipped submission directory as an attachment
to your CA by the submission deadline. Do not miss the deadline,
even by one minute! Email problems are not a valid excuse
for late submissions.
- It is recommended
that you "cc" yourself in that email, too, just to confirm that you properly
sent the email.
- Note:
- Improper submissions will be penalized up to 10 points and may be
rejected.
- Late submissions will be rejected.
Term Project
Design and implement a complete Java program of your choice (subject to
approval). The program need not be graphical (though most students seem to
prefer that option). The program may be an arcade game, but it may not be
a continuation of your hw11 project. Variety is the spice of life, so
choose something different, something interesting, something fun!
Keep a timesheet recording the time you spend writing your program. While
there is no specific time requirement, it is expected that most students will
require 10-15 hours to achieve an A or B on this project.
- Grading Criteria
Term Projects will be graded on this basis:
- 10%: Problem choice
Your problem should be interesting and achievable, yet reasonably
challenging for a nearly-intermediate programmer such as yourself.
For full credit, your problem should be interesting enough that other
people would be likely to actually use your completed program for some
purpose (perhaps for recreation, perhaps as a tool in solving a problem,
perhaps otherwise). For example, if you are writing a paint
program, then it would be most interesting if you included at least one
compelling feature that is not found in typical free paint programs such
as Microsoft Paint, as then there is a reason for real people to
actually use your program even when they have ready access to
professional-grade alternatives.
- 25%: Completeness
You should solve your problem completely, in that your program should be
entirely usable at least in some regard. For example, if you were
making a text adventure, it would be essential that there be a cohesive
story line, with a way to win (and an interesting way, at that, with
numerous steps requiring at least some problem-solving), and numerous
ways to lose. This is far more important than adding more and more
verbs/actions, or more floral writing, or more and more clever responses
to unlikely inputs. All that may be interesting, but it is
secondary to the critical task of writing a complete, cohesive product.
This is not to say that your program must be complete in all regards.
Given the tight time constraints of this term project, you will not be
able to write a polished product. But it must stand on its own
nonetheless.
Also: your program must reflect the sort of effort that would
typically require 10-15 hours from most students. Programs that
are "complete", but which do not reflect this amount of effort, will
lose significant points in this category.
- 25%: Correctness
Your program must compile, it must run, it must perform obvious and
interesting tasks when it runs, it must solve the problem that you set
out to solve, and it must do so without any obvious bugs.
- 25%: User Interface
Your program should have a well-designed, visually-pleasing user
interface. Controls should be well-thought-out, intuitive, and
easy-to-use. Game flow should be smooth and enjoyable. For
full credit, there should be some kind of help screen available to
explain the purpose of the game and nature of the keyboard and mouse
controls. If you are designing a program that does not have a user
interface to which these rules apply, be sure to get an explicit waiver
from the instructor for this section.
- 14%: Style
Your program should be well-written, using top-down design,
well-named variables, proper indenting, reasonable commenting, etc.
- 1%: Presentation
Students will give a short (2-to-3-minute) presentation of their
project to everyone else in the class on Friday. Grading criteria
on this portion will be minimal, and everyone is expected to receive the
full 1/1 point so long as they actually do present their work, so do not
fret about your presentation. Have fun with it! Also, when
viewing other presentations, students are encouraged to offer
constructive suggestions or ideas.
Note: projects that are substantially incomplete, or that do
not compile, or that do not run, or that run but do not perform any obvious
and interesting tasks, will not receive a grade higher than 50/100 (though
an even lower grade may be given, depending on how incomplete the project
is) regardless of the previous computation.
- Bonus
Once the basic criteria listed above are satisfied, students may be
awarded bonus for their additional efforts. There are two ways to
obtain such bonus:
- Informal bonus: here, bonus will be awarded to projects
that are especially clever, attractive, interesting, fun, compelling, or
otherwise bonus-worthy (whatever we take that to mean). In
general, students may receive up to 10 points of bonus in this manner.
These points are largely reserved for genuinely exceptional work.
- Formal bonus: students may also explicitly submit bonus
project requests. To do so, the non-bonus portion of the project
must be largely or entirely completed. In fact, it is preferred
that students actually submit their projects and have them preliminarily
graded before commencing a formal bonus project. The point is that
students should not work on bonus projects unless and until they are
done with their non-bonus projects. At that point, subject to
instructor approval, students may undertake interesting extensions of
their projects, or even entirely new projects. There is no
10-point cap on these projects, with actual points determined on a
case-by-case basis.
Note: formal bonus requests must be submitted no later than the
start of the final exam -- Thursday at 9am -- and preferably sooner!
Carpe diem!