Each assignment will be graded on three dimensions: Functionality, Documentation, and Style, along with one "WOW!" factor. The final assignment grade will be based on a weighted average of each of these grades with weights as follows:
| Dimension | Weight |
|---|---|
| Functionality | 60% |
| Documentation | 20% |
| Style | 15% |
| WOW! | 5% |
- Code fully implements all required features and passes automated unit tests for well-specified assignments.
- For open-ended assignments, the code implements all required functionality and can be run without any modification.
- Every function is accompanied by a well-written docstring that accurately describes its functionality.
- The comments are comprehensive and informative enough to help anyone understand the program without further assistance.
- For open-ended assignments, the program includes a detailed README file that explains how to run the program and what it is intended to do.
- The program is designed with a clear and effective modular structure.
- The code has no cut-and-paste code or magic numbers.
- Variable and function names are chosen sensibly and are self-explanatory.
- The code strictly adheres to the style guidelines as laid out in PEP 8.
- Reserved for the most impressive solutions that exceed the requirements of the assignment.
- The code goes above and beyond the requirements and impresses graders with its creativity and innovation.
- The code implements all of the required functionality with minor issues in 10-20% of the features for well-specified assignments.
- For open-ended assignments, the code implements all the required functionality and can be run with moderate effort.
- Pseudo-code is properly used.
- The majority of functions have clear and concise docstrings.
- The comments help to understand the program, but they are not comprehensive.
- For open-ended assignments, there is a README file that gives a general overview of the program.
- The program has an acceptable modular structure with some room for improvement.
- The code includes some cut-and-paste code and magic numbers that could be better eliminated.
- Variable and function names are mostly self-explanatory.
- The code generally adheres to the style guidelines laid out in PEP 8.
- The code implements most of the required functionality, but there are some issues (30-50%) with its implementation.
- Pseudo-code is moderately used for assignments that require it.
- Docstrings are missing from some of the functions.
- Comments are brief and lack sufficient detail.
- For open-ended assignments, it is unclear how to run the program - a good test is if you have to email someone to ask them how their code runs, they are probably at this level.
- The program structure is not optimized.
- The code would be a lot cleaner if the author had done a better job thinking through the appropriate functional decomposition.
- The code includes too much cut-and-paste code and magic numbers.
- Variable and function names are hard to interpret.
- The code follows the style guidelines laid out in PEP 8, but with some violations.
- The assignment is incomplete (~50% of the functionality is not implemented).
- The functionality that is implemented is not 100% correct.
- Documentation mostly is absent.
- Design is poor.
- Very little attention has been paid to choosing a sensible functional decomposition.
- Variable and function names are chosen almost arbitrarily.
- The code does not follow the style guidelines in PEP 8.
- Only minimal functionality is present.
- Little or no documentation.
- No comments or docstrings.
- Code is not readable.
- Poor choice of variable and function names.
- No submission.
updated: 10/29/2024