All the C programs you write for this class should follow the well established good C coding conventions. If you turn in code that deviates from these conventions, you may not earn full credit for your solutions.
Your work MUST be handed in as git submissions to your repository for this class. Be sure to observe the name of the repository and to grant developer access to the instructors and all the class TAs. As a matter of practice, you are expected to:
- Add your solutions (to lab or pre-lab) periodically to your own repository. This will ensure that it will be possible to restore your correct work, if you happen to inadvertently break a solution that was working fine.
- Be sure to add, commit, and push all the files that you are asked to write or modify in a given assignment. Don’t expect the assignment to enumerate all the names of the files you should submit! Rule of thumb: if you worked on something, add it to your git repo.
- If you ever get your git repo in a corrupted state, it is your responsibility to fix it or to ask for help to fix it.
Labs are due on the due date listed, before the lab on that date. Lastly, note that the schedule is under active revision, so that topics may shift (though likely not permute :). Also note that the link to the lab does not open until the day of the lab.
Week | Date | Topic |
Pre-Lab (opens 9AM Fridays) |
Lab (opens 10am Tuesdays) |
Due Date |
1 | 08/23/22 | Systems Programming in C (review) | Pre-lab 0 | Lab 0 | 08/29/22 |
2 | 08/30/22 | Unix Processes | Pre-lab 1 | Lab 1 | 09/05/22 |
3 | 09/06/22 | Interprocess communication: pipes | Pre-lab 2 | Lab 2 | 09/12/22 |
4 | 09/13/22 | POSIX Pthreads | Pre-lab 3 | Lab 3 | 09/19/22 |
5 | 09/20/22 | Interprocess communication: TCP sockets | Pre-lab 4 | Lab 4 | 9/26/22 |
6 | 09/27/22 | Thread synchronization | Pre-lab 5 | Lab 5 | 10/03/22 |
7 | 10/04/22 | Dining philosophers | Pre-lab 6 | Lab 6 |
10/17/22 |
8 | 10/11/22 | Fall Break | |||
9 | 10/18/22 | ||||
10 | 10/25/22 | Memory allocation I | Pre-lab 7 | Lab 7 | 10/31/22 |
11 | 11/01/22 | Memory allocation II | Lab 8 |
11/07/22 |
|
12 | 11/08/22 |
|
|||
13 | 11/15/22 | Building a Unix Shell | Lab 9 |
11/28/22 |
|
11/22/22 | Thanksgiving Break | ||||
14 | 11/29/22 | File system interface | Pre-lab 10 | Lab 10 | 12/05/22 |
15 | 12/06/22 | Wrap Up |