ECS 110 -- Fall 1995 Prof. Phillip Rogaway ------------------------------------- Guidelines On Grading of Assignments ------------------------------------- The grader is your target audience. Imagine your solution is the first one he's looking at. Assume that the grader has read the assignment statement but that it's late at night and he 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 (30 points) ================= 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 (40 points) ================================ 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 (30 points) ============================================== 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).