Skip to main content

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 git 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 are necessary to build any 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. We understand that git can be finicky and that bad things may happen, but we trust you to work on ensuring that your repository is good shape by the due dates of your assignments. If you ran into git trouble, don’t wait until the last minute to seek help.

Pre-labs and Labs are due on the dates listed, at 8:00am. Note that the schedule is tentative and the topics may change. Finally, note that the link to the lab does not open until the day of the lab.

WeekDateTopicPre-labLab
108/29/2024Systems Programming in C (review)Pre-lab 0
08/29/2024
Lab 0
09/05/2024
209/05/2024Unix ProcessesPre-lab 1
09/05/2024
Lab 1
09/12/2024
309/12/2024Interprocess communication: pipesPre-lab 2
09/12/2024
Lab 2
09/19/2024
409/19/2024POSIX PthreadsPre-lab 3
09/19/2024
Lab 3
09/26/2024
509/26/2024Interprocess communication: TCP socketsPre-lab 4
09/26/2024
Lab 4
10/03/2024
610/03/2024Thread synchronizationPre-lab 5
10/03/2024
Lab 5
10/10/2024
710/10/2024Dining philosophersPre-lab 6
10/17/2024
Lab 6
10/17/2024
810/17/2024Fall Recess
910/24/2024Memory allocation IPre-lab 7
10/30/2024
Lab 7
10/30/2024
1010/31/2024Memory allocation IINo pre-labLab 8
11/14/2024
1111/07/2024No new lab assignment
1211/14/2024Building a Unix ShellNo pre-labLab 9
12/05/2024
1311/21/2024File system interface
(final lab assignment)
Pre-lab 10
11/21/2024
Lab 10
12/05/2024
1411/28/2024Thanksgiving Recess
1512/05/2024No new lab assignment
1612/10/2024Last day of classes