Students have three weeks to write a little application (UI, some logic, event handling, persist data to a file). They are given one page with some requirements (input). They are supposed to hand in a compilable and running application (output). No software documentation required.
How would you grade a software project? What criteria would you use? Can you give examples?
There are a few areas that seem important to me.
- Are all the given requirements implemented?
- Is error handling implemented or does the application crash when the user inputs invalid data?
- Does the user interface look good, is it usable?
- Is the code well structured?
- Each class in a separate file
- Small methods which do one single task
- Public methods are documented
- Can I save the data, quit the application, restart it again, and all the data is reloaded?
Those criteria are very vague, I know. For each of the above criteria, I don't know when to give an A and when to give an F. Any suggestions to improve the criteria and any suggestions on how to grade it?