To get top marks on your CS 441 final exam, you will need to understand all of the material that we discussed during the entire course. However, the exam will concentrate mainly on material from the second half of the course. There will be relatively few questions asking directly about material from the first half, but understanding of this material may still be vital to answering questions about the second half of the course.
Following are some exercises selected from EOPL. Where exercises refer to specific interpreters in the book, you may prefer instead to do the exercise with an interpreter of the style we've been using in class.
2.2.1 2.2.4 2.2.5 2.3.1 2.3.4 2.3.9 2.3.15 3.1.2 3.1.4 3.6.1 3.6.2 3.6.3 4.2.1-4 4.3.5 4.4.1 4.4.2 4.7.1 4.7.2 5.1.5 5.3.1 5.4.2 5.4.4 5.5.8 5.5.9 5.6.1 5.6.4 5.6.5 5.7.4-6 5.7.9 6.1.2 6.2.1-4 6.3.2 6.5.1 6.5.2 6.5.5 (new or old chapter) 7.1.1 7.1.8 7.1.9 7.2.1 7.2.3-5 7.3.3 8.3.3 8.3.4 8.4.3-5 8.4.8 8.5.3 8.5.4 8.6.1-3 9.1.1 9.1.2 9.2.1 9.2.3 9.2.6 9.3.2 9.3.3 9.3.5 9.3.8 9.3.9 9.4.4Since EOPL does not cover garbage collection, natural semantics, or module systems, your primary source of material for these topics is the lecture notes. In the draft chapter on type checking, you might want to try these exercises:
13.1.1-3 13.1.6 13.2.1 13.2.2 13.3.1-4 13.4.1-3 13.4.9