The homework will consist of machine problems: programs you will construct or extend to implement a language. They are you really learn the material. It is not possible to succeed in the course without doing the machine problems.
Links to the problems will be posted here as they are issued.
Each week, the problem will be posted here sometime after lecture (usually Friday), and will generally be due at 5:00 PM of the following Friday.
You will do some of the machine problems in groups of two; other problems will be for individual work and submission. Each machine problem will state whether it is for partner or individual submission. Partners must be from the same section.
When a problem is assigned to partners, your pair may divide the work as you see fit. We recommend that you use pair programming.
You will need to find a partner from your lecture section in time to do Machine Problem 1 together. We suggest you spend time at the break during the first lecture doing this. If you are not able to find a partner in the first few days of class, email your instructor and he will assign you a partner.
You may switch partners for different problem sets. You may use the class mailing list to seek partners. Make sure to inform your former partners of the change in your relationship.
Each assignment will require at least the following:
Here is guidance on how machine problems are graded.
All work must be submitted as text documents. Microsoft Word documents will not be accepted, nor will other non-text documents (unless explicitly indicated in the assignment).
MP | Title | Out | Due | Solutions to non-textbook problems |
---|---|---|---|---|
0 | Getting Acquainted | 1/09/2008 | 1/11/2008 | |
1 | Programming Inductively (in pairs) | 1/10/2008 | 1/21/2008 | partial mp1 module |
2 | Programming Inductively (solo) | 1/18/2008 | 1/29/2008 | partial mp2 module |
3 | First Interpreter | 1/30/2008 | 2/08/2008 | partial mp3 module |
4 | Modifying an Interpreter | 2/08/2008 | 2/15/2008 | partial mp4 text file |
5 | Implementing State, Programming with State | 2/15/2008 | 2/24/2008 | |
6 | Program Transformations | 3/11/2008 | 3/21/2008 | sample mp6 module |
7 | Control Constructs | 3/21/2008 | 3/28/2008 | partial mp7 text file |
8 | Type Inference | 3/28/2008 | 4/04/2008 | partial mp8 code and text |
9 | Continuations | 4/05/2008 | 4/11/2008 | partial mp9 code and text |
10 | Review for Final Exam | 4/12/2008 | 4/18/2008 | partial mp10 text file |
Last modified: 21 April 2008