Comments from the markers of Assignment 2 ========================================================================== This is a collection of the comments made by the 3 TAs who marked your assignment 2. Pay particular attention to the general remarks that would apply equally well to upcoming assignments. Program: It seems that this was the part of the assignment that students did best on -- simply making the program run. Style: Most students have not grasped the idea of organizing a large task into subprograms. Most of them had a single long (3-4 page) Run procedure. Testing: Testing was universally very poor. The majority of students did not annotate anything and gave no explanations - just printouts. The necessity for a testing strategy cannot be overemphasized. Testing was simply the worst part in most assignments. Lack of annotated test runs, a test plan, etc. A comprehensive test plan would have earned most students good marks in testing, even if their program didn't work. Some students did their testing more like experiments. They showed different performance results rather than showing that each part of the program really works. Experiments: This was badly done. Many of the answers showed little or no logical coherence. The quality of the writing was generally poor. Two contradictory statements would often follow each other on the same line. A lot of students simply gave tons of experimental runs, and literally translated the results into English. They did not try to understand the patterns in the output, and think what was the underlying reason. Some of the students do not really understand the purpose of a simulation. They do not appreciate the interdependence of the parameters. Some made very precise conclusions based on very random data. Part C: Correctness: This section was somewhat better. The invariants were a very badly done. Almost half of the students did not understand what "data invariant" meant. It was not clear to them that a "data invariant" was just a set of conditions, like "loop invariants". They are not very clear about loop invariants either. For question 4, their proofs all somehow make sense, but many are not logically valid or coherent. They presented some facts, but did not show how these facts help in the proof. Maybe they think we can figure that out. :) Quality of Writing: It seems many people did not take this very seriously. Spelling and grammatical mistakes abounded here. More importantly, some students had a very difficult time making logical, coherent arguments (for example, regarding their experiments). This is an essential skill in computer science.