Project Grading Criteria

The philosophy of this course is that project assignments are:
In addition, as with everything in this class, we expect a level of professionalism in your submissions.  Professionalism in this case means making sure that every one of your solutions attain a level of neatness, organization, and quality.

As such, projects will be graded with these criteria in mind:
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:

Quality of Project
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.

NOTE:  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 crashing.

NOTE 2: 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!)