All labs and projects involve C programming on the Linux OS. You will use Duke’s VCM service to host containers for building, running, and debugging your programs. To get started, you will: 1) create your VCM container, 2) attach to it with VSCode, and 3) fork lab/project directories from the course Git repository. You can find more details on this process in the Getting Started Guide in the course repository.
Please review the course syllabus for policies on collaboration, grading, regrading, late submissions, and more. The course schedule will specify the release and due dates for all labs and projects.
There are short (1-3 hours), individual programming labs associated with each lecture that help: 1) reinforce concepts learned from readings and lectures, and 2) prepare you for the projects. Labs are released after each lecture (Wednesday and Friday) and are due the following Wednesday by 11:59pm ET. Please see the course schedule for more details on the release and due dates. The Monday discussion sections will focus on the labs due that week; you should start working on both labs prior to your discussion section. You should only skip the discussion if you have completely finished the lab prior to the start of your discussion section.
You can find the specification and starting code for each lab in the course repository. Be sure to carefully read the README file associated with each lab and follow directions appropriately. Add a text file (statement.txt) listing the nature and sources of any assistance that you received, as well as anything else you want to tell us. You can submit you labs to Gradescope via the Gradescope button on GitLab.
There are six projects that are spread throughout the semester (roughly one every two weeks). You must submit your projects by 11:59pm ET on the day they are due. Please see the course schedule for more details on the release and due dates. 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.
You can find the specification and starting code for each project in the course repository. Be sure to carefully read the README file associated with each project and follow directions appropriately. Add a text file (statement.txt) listing the nature and sources of any assistance that you received, as well as anything else you want to tell us. If you choose to work in a team of two for the project, please add a reflection of the collaboration within your team to the file. You can submit projects to Gradescope via the Gradescope button on GitLab.