Project Grading Criteria
The philosophy of this course is that project assignments are:
- Useful to practice what has been read in the text and/or
discussed in the class lecture sessions
- Useful to get some practical exposure to writing code
- Useful for exploring new material on your own, and working through ideas discussed in class or in the text
In addition, as with everything in this class, we expect a level of professionalism
submissions. Professionalism in this case means making sure that
every one of your solutions attain a level of neatness, organization,
As such, projects will be graded with these criteria in mind:
- Solutions must adequately address the problem at hand. Specifically:
The solution represents a good-faith attempt to actually address the
requirements for the assignment.
The program complies and executes.
The program runs correctly
The solution constitutes a high quality product expected
of a professional. Specifically:
The program is easy to read and to understand, i.e., it is well
and adheres to the course standards for layout and format (see the lab
assignments for details of these conventions). In addition, method and
variable names are meaningful, all potentially confusing/complex code
is well documented.
The general design of the program is clear and reasonable.
All procedure and function headers include comments explaining what the
method is supposed to do (not how it does it) and the purpose of each
formal parameter. Be as precise and careful as you can be.
In addition, projects will have their own additional criteria that
you need to adhere to. Read the project assignment carefully to
make sure that your code does what it is supposed to do.
Projects will be graded in the following manner:
The project meets or exceeds the expectations outlined above
The project meets most of the expectations outlined above, but fails to meet at least one of them adequately
|The project meets some of the expectations outlined above, but fails to meet more than one of them adequately
|The project just barely meets
the expectations outlined above. It compiles and runs, but there
are serious problems with the code or it does not do everything
required by the assignment
|The project is
unacceptable. It does not represent a "good faith effort" at a
solution, or it does not compile due to syntax errors.
Any project submitted that does not compile and run WILL RECEIVE AN AUTOMATIC GRADE OF ZERO
No exceptions will be made for this rule - to achieve even a single
point on a project your code must minimally compile and execute without
At ANY TIME the
instructor and/or the course coordinator for this course may question a
student about a project submission. If a student is unable to
satisfactorily explain his/her solution (what it does, why it was
designed a particular way, why things are named the way they are, etc.)
the student will receive a grade penalty - possibly as much as a zero
on the project.
Again remember - strive for professionalism in your work. The
grading scale above reflects the fact that programmers and software
engineers employed in the "real world" need to produce high quality
work. Even small mistakes can be costly - in dollars, in time or
even in some cases in lives. Learning to produce professional
work is a skill that must be practiced, just as with any other
skill. And the best time to start practicing it is when you are
learning how to code. Get into good habits now and you will keep
them into your professional career. (And those of you who are not
going on to become programmers might as well learn good habits instead
of bad ones while you're taking this course!)