Machine Problems

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:

  1. A development diary. No assignment will be accepted without a satisfactory development diary.
  2. A copy of your code, including any items you have added to the test suite.
  3. A complete transcript of the tests you ran.
Here are instructions for submitting your assignment.

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

Back to CS G111

William D Clinger

Last modified: 21 April 2008