Assignments
This page lists the programming assignments for the course.
Some advice about the programming assignments:
- Do not wait until the last minute to start: if we give you two weeks to complete an assignment, it’s because we expect that it will take you two weeks (working steadily)
- Ask questions on Courselore and in office hours
- Use good programming practices
- Test your code thoroughly (plan to spend about as much time testing the code as writing it)
Individual assignments must be completed individually.
For Pair assignments, you may work with one partner, or do the assignment individually. Please note that if you chose to work with a partner:
- You and your partner must work together to a reasonable degree
- You are both responsible for ensuring that the work is completed
If you feel that your partner is not making an adequate contribution on an assignment, you may finish and turn in the assignment assignment individually. You may not use your partner’s lack of contribution as an excuse for not completing the assignment.
Please read the style guidelines so that you know what our coding style expectations are.
Important: All assignments must compile and run on x86-64 Linux. Please see the Resources page for information on setting up an x86-64 Linux development environment. (There are a number of good options.)
Assignment | Type | Due |
---|---|---|
Assignment 1: Big integers | Pair | MS1 due Wednesday, Sep 6th MS2 due Wednesday, Sep 13th |
Assignment 2: Word count | Pair | MS1 due Monday, Sep 25th MS2 due Thursday, Oct 5th |
Assignment 3: Cache simulator | Pair | MS1 due Wednesday, Oct 11th MS2 due Wednesday, Oct 25th MS3 due Wednesday, Nov 1st |
Assignemnt 4: Parallel merge sort | Pair | Friday, Nov 10th |
Assignment 5: Chat server | Pair | MS1 due Thursday, Nov 30th MS2 due Friday, Dec 8th |