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. Whenever you work on our solutions, in or outside a lab session, it is to your benefit to commit the files you advanced when you determine that they advanced your work. 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.
  • If you ever get your git repo in a corrupted state, it is your responsibility to fix it and/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.
  • It is your responsibility to commit your work by the deadline. Please understand that your git repo is your hand in – if files are missing or if the entire lab assignment is missing by the due date, your work will be graded accordingly. This means, don’t count on the instructors or the TAs reaching out to you to let you know that your work was not complete as submitted.

Pre-labs and Labs are due at 01:00pm on the dates listed. 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. Important: pre-labs will always be due at the start of their corresponding lab. It is essential that you complete the pre-lab BEFORE you tackle the lab assignment.

WeekDateTopicPre-labLab
101/20/2026Systems Programming in C (review)Pre-lab 0
01/27/2026
Lab 0
01/27/2026
201/27/2026Unix ProcessesPre-lab 1
01/27/2026
Lab 1
02/03/2026
302/03/2026Interprocess communication: pipesPre-lab 2
02/03/2026
Lab 2
02/10/2026
402/10/2026POSIX PthreadsPre-lab 3
02/10/2026
Lab 3
02/17/2026
502/17/2026Interprocess communication: TCP socketsPre-lab 4
Lab 4
602/24/2026Thread synchronizationPre-lab 5
Lab 5
703/03/2026Dining philosophersPre-lab 6
Lab 6
803/10/2026Spring Recess
903/17/2026Memory allocation IPre-lab 7
Lab 7
1003/24/2026Memory allocation IINo pre-labLab 8
1103/31/2026No new lab assignment
1204/07/2026Building a Unix ShellNo pre-labLab 9
1304/14/2026File system interfacePre-lab 10
Lab 10

no extensions
1404/21/2026
1504/28/2026No new lab assignment