Labs
Labs help students gain initial familiarity with applying course concepts. Many labs are focused on specific skills needed for the assignments.
Expand for Lab directions
Lab directions
- Submit your completed lab online to CourSys (not Canvas, not GitHub).
- Labs are marked on completion, not correctness, so complete each part to the best of your ability and learn.
- Labs are due Sunday 11:59pm. There is a 1-hour grace period; late submissions will not be marked. Extensions possible only in exceptional cases.
- It is recommended that students attend in-person open-lab office hours for lots of support!
- You are encouraged to come to any (or more than one) open-lab hours.
- TAs will review lab solution at the end of each hour of open-lab hours.
- There is no need to attend the open-lab if you do not want to: there is no attendance taken.
- You can complete each lab on your own time or own computer if you like.
- While completing these labs, you are encouraged to help your classmates and receive as much help as you like. Assignments, however, are individual work and you must not work with another person on assignments.
- I recommend coming to the lab and working with someone.
- Failing that, I recommend getting together with someone in the class outside of lab time to work through the lab together.
- Failing that, you are welcome to complete the lab exercises without any collaboration.
- Each student must submit their lab to CourSys to get marks.
- Academic honesty expectations for labs are that each student types their own lab solution. It is OK to share ideas and help each others with specific coding issues and design. It is not permitted to submit another student's file for credit.
- Lab Marks
- We will not run you lab submissions; we'll only look at it to mark it:
- +1 for a solution to at least ~80% of a solution to the lab.
- +0.5 for it looks like it could be 30%-70% of a solution to the lab.
- 0 for not submitted or < ~20% of a solution.
- Please see a TA during office hours if you have concerns about the lab mark you received.
- We will not run you lab submissions; we'll only look at it to mark it:
- If using CSIL lab PC:
- [Only CSIL PC] If in Windows, reboot to Linux; while booting, select Ubuntu from boot menu.
- [Only CSIL PC] Don't setup GitHub tokens in the
cmpt201
container because it may be shared with other users. - [Only CSIL PC] Delete any possible previous docker container before starting the lab:
docker rm cmpt201
- [Only CSIL PC] When done your lab, copy your solution out of the container, then execute the above docker command to delete your docker container to leave it clean for the next user.
- You do not need to use
.record
Expand for how to get access to CSIL labs
CSIL Lab Access
- You can do the labs on your own computer or in the Computing Science Instructional Labs (CSIL) in either Burnaby or Surrey.
- See the CS CSIL FAQ for full directions.
- If you already have a FOB it will open CSIL's door. Burnaby's card opens both Burnaby and Surrey CSIL; Surrey's card only opens Surrey CSIL.
- Recommended to get your card in Burnaby (even if enrolled in Surrey) so that your FOB opens both Surrey and Burnaby CSIL lab.
- To get a FOB: 3 or more days after registering in the class, visit the SFU Access Control Office in room 1300 of Discovery 1 in Discovery Park; it's a short walk from the TASC1 building in Burnaby. See map here.
Labs for Fall 2025
Due | Lab | Solution / Notes |
---|---|---|
Sept 7 | Lab 0: Getting Started | No in-person labs/open-labs this week; this lab is not for credit. |
Sept 14 | Lab 1: getline() , strtok_r() |
|
Sept 21 | Lab 2: fork() exec() wait() |
|
Sept 28 | Lab 3: Input History | |
Oct 5 | Lab 4: Heap Memory / Memory Allocation | |
Oct 12 | Lab 5: Memory Allocation Algorithms | |
Oct 19 | No lab this week | TAs in lab for office hours as normal. |
Oct 26 | Lab 6: Debugging & Asserts | |
Nov 2 | Lab 7: MapReduce | |
Nov 9 | Lab 8: Threading Activity with uthash | |
Nov 16 | Lab 9: Socket Programming | |
Nov 23 | Lab 10: Multiple-Client socket programming | |
Nov 30 | Lab 11: Signature Verification | |
Dec 1+ | No lab this week | TAs in lab for office hours as normal. |