I allotted 20 points per question, for a total of 100. The scores were 55, 65, 68, 70, 75, 82, 82, 88, 88, 89, 90, 95, 96. These are quite good. If the final exam is similar, this will be a relatively high-scoring class. The 90s and up are all potential As, given some outstanding work on some of the homeworks, and a good final exam. The 75 and up are pretty solid Bs. The 55 is clearly a C performance. Again, all of this is combined with homeworks (at least 40% of the grade) and the final exam. I will ignore a weak midterm when followed by a strong final, but not usually the reverse.
Roughly 4 points each for the individual expressions, and another 4 for the stack height formula. There were very few errors regarding the individual expressions. The main errors in the stack height formula were vagueness, or a calculation over the entire tree, when in fact one dominant path determines the stack height.
Roughly 3 1/3 (rounded in the total) for each of a-f. Since equivalence is representability both ways, I gave half credit for each of the representability directions. (c) is somewhat arguable. In the strictest since, the two are incomparable, but in almost all cases you can represent the left-hand type by the right-hand one, so I accepted both answers.
10 points for the invariant, 5 each for preassertion and postassertion.
5 points each for the abstract syntax tree, the flowchart, the boxing of the flowchart, and the comment about single-entry/single-exit. There were few errors of detail, but a few gross misunderstandings of what the abstract syntax is.
Roughly 3 1/3 points per bullet. The most common error was proposing a simple flow chart for cobegin-coend that looks like a conditional with no condition. This changes the meaning of the arrows in flowcharts completely, since we normally expect to follow one path in a flowchart, not oodles of them simultaneously.
Last modified: Wed Feb 22 10:27:18 1995