Exam Information

Exam Date Topics Covered
Midterm Thursday, February 14th
4:30–5:20pm
reasoning about code, specifications, ADTs, testing & debugging, module design, equality & hashing
Final Monday, March 18th
8:30–10:20am
all of the above plus...
exceptions, subtyping, generics, defensive programming, event-driven programming, GUIs, design patterns

Midterm

For the midterm, make sure that all of the following topics are well understood. Click on each topic to see a list of the related ideas that I consider most important to know.

For most of the topics above, I have also given a list of related problems from past midterms. These midterms and their solutions are given below. I do not think it is necessary to study these past midterms in order to be well prepared for our midterm exam. It is most important simply that you understand all the points above. However, if you need some reassurance that you understand these topics well, then looking at these problems may help.

The most useful midterms to look at, though, are probably the ones from previous classes taught by your instructor, which are these:

Finally, here is our midterm:

Final

For the final exam, in addition to the topics listed above, make sure that all of the following topics are also well understood. Click on each topic to see a list of the related ideas that I consider most important to know.

For most of the topics above, I have given a list of related problems from past finals. These finals and their solutions are given below.

As with the midterm, the finals from the previous courses taught by your instructor will be most similar to our final. They are the following finals:

Once again, I do not think it is necessary to study these past finals in order to be well prepared for our final exam. It is most important simply that you understand all the points above. However, if you need some reassurance that you understand these topics well, then looking at these problems may help.

Finally, here is our final: