ECS 110 -- Spring 1997
Guidelines On Grading of Assignments
The grader is your target audience. Imagine your solution is the first
one he or she is looking at. Assume that the grader has read the assignment
statement but that it's late at night and he/she wants to sleep. Make your
solution so clear and elegant that the grader will know at a glance that
your solution is an exemplary one!
Design (20 percent)
- D1 - Your solution is well-abstracted.
- D2 - Your design reflects knowledge of concepts taught in this course.
- D3 - There is a 1-2 page description of the ideas and important decisions
underlying your design.
- D4 - This writeup describes the classes you choose, the operations
they support, their implementation, alternatives you considered, and why
you made the choices you did.
- D5 - You made good engineering decisions for your solution.
- D6 - It is obvious you thought a good deal about HOW to solve the problem
before you wrote your code.
- D7 - You credit any people with whom you collaborated in the high-level
design.
Correctness, testing (60 percent)
- C1 - Your executions correctly answer the questions asked on the assignment
which the machine was supposed to tell you the answer to.
- C2 - Your writeup correctly answers all further questions on the assignment.
- C3 - Your writeup draws any conclusions which ought to be drawn.
- C4 - Your executions include adequate test runs to convince the reader
that the program (probably) performs all tasks correctly.
- C5 - Yet you don't have unnecessary runs; don't turn in in a mountain
of output!
- C6 - You have clearly identified any known bugs or restrictions.
- C7 - You handle exceptional cases; you program won't crash.
Clarity, documentation, aesthetics (20 percent)
How your code looks to the programmer:
- A1 - A header describes each file and includes the file's name, purpose,
author, date, and credits.
- A2 - Each major class is (succinctly) described.
- A3 - Each important function is (succinctly) described, including what
it returns and any side effects.
- A4 - You use pictures where they are helpful.
- A5 - Comments within the code are used where (and only where) they
are helpful.
- A6 - Variable names and class names are carefully chosen.
- A7 - You have (and stick to) conventions for variable naming.
- A8 - Code is nicely indented -- it looks pretty.
- A9 - You avoid non-standard language features.
- A10 - You have chosen a good interface for each function and class.
Side-effects are used only when well justified.
- A11 - In the small, your code is terse but not obscure.
- A12 - You make appropriate use of C++ classes
- A13 - You employ data encapsulation / information hiding
- A14 - You overload operators (e.g., ostream& operator<< ),
as appropriate.
- A15 - You use typedef, const, enum, etc., as appropriate.
How your program looks to the end-user:
- A20 - You have paid attention to your user interface: your program
is easy to use.
- A21 - You display your results clearly and understandably: you display
neither too much nor too little output during a run.
How your assignment looks to the reader:
- A40 - Your writeup is written in clear, concise English.
- A41 - Your writing is legible.
- A42 - You use pictures or tables where they are helpful.
- A43 - You highlight, mark in color, etc, your important class names,
- A44 - at the point where they are declared/defined.
- A45 - You highlight, mark in color, etc., your "answers".
- A46 - Your solution is neatly stapled together in order of: (1) writeup;
(2) executions; (3) code
- A47 - Your name appears conspicuously on the first page of your solution.
Extra Credit (5-10 points)
- X1 - Stuff marked "extra credit") can earn you 5-10 points.
These points will only be given if you've done a good job on the rest of
the assignment (typically indicated by earning at least 90 points).