Lab Overview

Lab sessions are held every week and will be conducted by a team of TAs and Tutors. Labs are NOT just summaries of previous lecture content. While you will do some review, the labs will often teach new tools (debuggers, unit testing, Makefiles, etc.) or have you practice skills in more depth than lecture was able to cover. Thus, it is very important you attend labs and give your best effort. This may be different from previous CS courses where labs/discussions were optional or done ahead of time. In CS104, you should treat labs as you do lectures and make it a priority to attend each week.

Policies

Schedule

ID Week Title Topics Slides
0 Week 1 Class Setup (remote) Compiler Toolchain, VSCode, and Github (NOT IN PERSON, DO ON YOUR OWN!)
1 Week 2 Git Git, GitHub
2 Week 3 GDB Debugging
3 Week 4 Makefiles Make, Build Systems
4 Week 5 Inheritance Inheritance, Polymorphism, OOP
5 Week 6 Templates Templates
6 Week 7 Midterm 1 Review Lab Midterm1Lab_Student.pdf
7 Week 8 Heaps Heaps, Priority Queues
8 Week 9 Binary Trees AVL, BST
9 Week 10 MT2 Review Recursion, Graph Algorithms
10 Week 11 Hashtables Hashtables, Hashing
11 Week 12 Recursive Backtracking & Counting
12 Week 13 Counting & Probability Counting
13 Week 14 Number Theory Number Theory
14 Week 15 Final Review