Marking comments for Project 1 -- by Alexander Kress This project was marked in two stages. In stage one the code was put though a large set of test cases that covered all aspects of the project. Attached to the second page of the printout, that you will receive in class, is a break down of the autotesting marks.The second stage involved marking the project for style, documentation and testing. To speed things up I mostly used codes to indicate the mistakes. Attached you will find codes.ps [EJJ: see p1-marking-codes on the web page] file listing these codes. Note that the points you see in this document are nothing more than the most common errors, this is by no means a complete list of what one should have to receive 100%. Style and Documentation. To get full marks for Documentation you needed to have preconditions and description for every defined procedure. And as always, the code had to be properly commented. I was not really expecting a lot of comments, however when I saw a procedure with more than 10 lines of code and not a single line of comments, that qualified as a mistake. Also, note that a procedure description such as "helper1: this procedure is a helper method for infix-to-prefix" does not really count as meaningful description. A description has to explain the purpose of this piece of code, which the above does not do. In style one of the most common mistakes was to have an if statement that looked like the following: "(if (statement) #t #f)". if statement here is clearly unnecessary here since just saying "statement" would achieve the same result. Similar mistakes included (and statement1 statement2 #t) (if (statement) #f #t) (eq (statement) #t) For other style mistakes see the attached codes. Testing The testing categories in the codes file (1-8) are pretty much self explanatory. A missing test case in the Unit testing costs 1 mark, and 1/2 marks in the system testing. Most students did well on the Unit testing (not counting 1D). However, many did not provide sufficient system testing. Also there were a few submissions where the testing consisted of a bunch of scheme calls with no explanations. In these cases 0 would really be a fair mark since without explanation these cases are meaningless (part marks were given, though). Penalties As was stated in the assignment you were not allowed to use set! anywhere in your code. A small number of students who did use it lost 10 marks as a penalty. Bonus 1 Here the division of marks was: 2.5 for description, 2.5 for implementation. Bonus 2 2 marks for description, 2 marks for implementation, 1 mark if autotester reported 1/5 for set 20 (which basically indicates that your code was able to handle at least some of the cases). The bonus questions were done quite well. The most common mistake was forgetting to check whether all of the code still works after adding the bonus.