The course schedule includes release dates for all assignments: labs, projects, and discussion section exercises. There is also a weekly checkout quiz on Canvas.
Getting started. The assignments involve C programming on the Linux OS. Use Duke’s VCM service to host containers for building, running, and debugging your programs. See the Resources tab and follow the directions there to setup and submit your first assignment. See the summary of steps below.
In Spring 2025 the discussion section sessions are on Fridays.
About half the sessions on the course schedule feature named group exercises. Attendance is expected for at least these sessions.
The other sessions are designated as Section:labs. Those sessions are for assistance with the labs for that week. For those sessions, attendance is optional if you have completed the week’s labs for full credit in advance.
To get credit for each week’s session, whether your attendance is optional or not, submit the checkout quiz on Canvas: click on Quizzes on the course Canvas page. Checkouts are due at 11:59pm ET each Friday.
The labs are short (1-3 hours) programming exercises associated with each lecture. You work on the labs individually. Their purpose is to: 1) reinforce concepts learned from readings and lectures, and 2) prepare you for the projects. Labs are released after each lecture (Monday and Wednesday) and are due the following Monday at 11:59pm ET.
There are four projects that are spread throughout the semester (roughly one every two weeks). See the course schedule for more details on the release and due dates. Projects are due at 11:59pm ET on the posted due date (a Wednesday).
Each project builds on concepts and skills obtained from lectures, readings, and labs. You may work on projects individually or with at most one other person. If you choose to work as a pair, please summarize the collaboration in your statement.txt file for the assignment.
Each assignment has a folder/directory with a corresponding name in the course repository. More precisely, coursework.cs.duke.edu is a GitLab service, and the course repository is a GitLab group on coursework with a page for each assignment, with a git project repository.
The class Gradescope page has a list of assignments and a page for each assignment. You submit the assignment by clicking the submit button there.
For each assignment:
Take time to set up git for a smooth workflow. Time you invest to become familiar with git will pay off later: see the Resources tab.