CS 115 Project 3 FULL Grading Sheet
Back to CS115 Project 3 description
Correctness (55 points)
Dictionary file handling (12 points)
4 pts. |
Non-alphabetic words, blank lines, duplicates are ignored from the dictionary file.
|
4 pts. | Frequency statistics are well-organized and correctly computed. |
4 pts. |
Empty files (or files holding no valid words) are handled as described in the assignment.
|
Text Output (7 points)
All your output should be grammatically correct, correctly spelled, and polite/professional.
General behavior (36 points)
4 pts. |
The following interactions should behave as described in the assignment: selecing the option to start a new game (causing any old window to close and a new window to open); selecting the option to not play any more games (causing the program to exit cleanly); and selecting and invalid option by making a typo accidently (i.e., prompting the user again).
|
4 pts. |
A random word is chosen and an appropriate revealed word (e.g., O R _ N _ E) is generated as described in the instructions, in every round of the game.
|
4 pts. |
With the revealed word, incorrect guesses are tracked and displayed unbotrusively and clearly.
|
4 pts. |
Each of the following types of guesses are handled as described: an upper case character, a lower case character, non-alphabetic character, a string of characters, and a blank line.
|
4 pts. |
Each of the following types of guesses are handled as described: a correct guess, an incorrect guess, a repeated correct guess, and a repeated incorrect guess.
|
4 pts. |
An appropriate message is printed in both the winning and losing cases.
|
4 pts. |
With the revealed word, the total number of words in the dictionary that match the pattern are shown.
|
4 pts. |
The figure graphics are displayed and disappear in the right order and match the spec in terms of size.
|
4 pts. |
If WINSIZE gets re-defined, your graphics still look ok and agree with the specification. |
Programming Style (35 points)
Filename (1 point)
1 pt. | Your program should obey the naming convention indicated in the assignment. |
Docstring (2 points)
[2] | There is a docstring at the top of the submitted file with
your name (first and last), the course (CS 115) and assignment (Project 3), and a brief description of the
program. |
-1 | Missing one piece of required information |
-1 | Missing two or more pieces of required information |
Usage of functions (5 points)
[5] | Program is broken up into logical, well-defined functions.
Functions perform specific, well-defined jobs and have descriptive names.
Functions are no more than 20 lines of code. |
-1 | Minor lapses. |
-2 | Significant repeated code (e.g., something should have been a function). |
-3 | Function organization is strange (e.g., some functions are doing too much). |
-5 | Program does not have student-written functions. |
Function parameters and return values (2 points)
[2] | Functions have no more parameters than necessary to do their jobs. Return values are used appropriately. |
-1 | Minor flaws |
-2 | Program does not have student-written functions |
Variable and function names (4 points)
[4] | All variables and functions have descriptive names that indicate what they are used for |
-2 | Important variable declarations are not accompanied by comments |
-2 | Variables do not have names that suggest for what they are used |
Function documentation (3 points)
[3] |
Each function includes a docstring explaining the job it does, its input parameters, its return value, and any assumptions it makes about its inputs. |
-1 | Some function doctring is significantly incomplete. |
-2 | Some functions do not have completed doctrings, or docstrings do not have all the required information. |
-3 | Most functions do not have completed docstrings. |
Other documentation (3 points)
Not counting the docstrings for your program and functions, your program should contain at least three comments explaining aspects of your code that are potentially tricky for a person reading it to understand. You should assume that the person understands what Python syntax means but may not understand why you are doing what you are doing.
[3] | You have at least 3 useful comments (1 point each) |
Formatting (8 points)
Your code should be written to comply with the Python PEP 8 style guide, which is the basis of the mandatory formatting constraints below. You can check your code for compliance with PEP 8 style using this onlince PEP 8 compliance checker.
[2] |
Indentation:
- Indentation uses only spaces (no tabs).
- You use a multiple of 4 spaces to indent each level.
|
[2] |
Line length and spacing:
- Your lines do not have trailing whitespace (extra space after the last printable character).
- Your lines all have fewer than 80 characters. You can have statements that are longer, but you must
break them across multiple lines to increase readability. Ask the instructors if you need help breaking up long lines.
- Use two blank lines before function definitions and two blank lines before the final call to main().
- Use blank lines to break up your code where appropriate, but do not use more than one blank line in a row, except
as described above.
|
[4] |
Spacing within statements:
- Use a single space after, but not before, each comma.
- Mathematical and relational operators (+, -, <=, etc.) are always preceded and followed by a single space.
- There are no extra spaces after a left parenthesis or bracket, or before a right parenthesis or bracket.
- Put a single space after the # character in your comments.
- Use blank lines to break up your code where appropriate, but do not use more than one blank line in a row, except
as described above.
|
Algorithm (7 points)
[3] | Your algorithm is straightforward and easy to follow. |
[4] | Your algorithm is reasonably efficient, with no wasted computation or unused variables. |
Catchall
You will lose 5 points for having ANY statements outside of a function definition. There are
only three exceptions to this rule:
- Import statements
- Definition of constants (variables whose values are known before the program runs and never modified)
- The call to main
You will also lose 5 points for using the global keyword, which
subverts the point of functions.
For students using language features that were not covered in class, up to 5 points may be taken off if the principles of programming style
are not adhered to when using these features. If you have any questions about what this means, ASK!