Skip to content

Schedule

This page will be updated with the schedule for the course, including lecture topics, readings, and assignment due dates.

Note

The schedule below is tentative and subject to change.

Week Date Topic Handouts and Practice Sets Assignments (Released / Due)
1 Mon 06/15 Introduction, Software Setup, Hello World, C Basics (Types, Control Structures, printf)
Notes
Hello World Handout
Practice Set 1
1 Wed 06/17 Loops (for/while/do-while), switch, Functions, Multi-file Code & Makefiles
Video
Notes
In-Class Exercises
Practice Set 2
2 Mon 06/22 C Operators, Binary & Hex, Bit-Level Manipulation
Notes
In-Class Exercises
Solutions
2 Wed 06/24 Arrays and Strings (HW1 prep)
Notes
In-Class Exercises
Solutions
Sample Quiz 1
HW1 Released
3 Mon 06/29 Pointers, Pointer Arithmetic, Pointers as Function Arguments, Scope and Lifetime
Quiz 1
Notes
In-Class Exercises
Solutions
3 Wed 07/01 The Call Stack, Stack vs Heap, Heap Allocation (malloc/free)
Notes
In-Class Exercises
Solutions
Practice Set 4
HW1 Due
HW2 Released
4 Mon 07/06 Structs: Definitions, Members, typedef, Nested Structs, Arrays of Structs
Notes
In-Class Exercises
Solutions
4 Wed 07/08 Pointers to Structs, Heap-Owned Strings, Enumerations, and Unions
Notes
In-Class Exercises
Solutions
Practice Set 5
HW2 Due (Friday)
5 Mon 07/13 Linked Lists: Self-Referential Structs, Traversal, Insertion and Deletion
Quiz 2
Notes
In-Class Exercises
Solutions
5 Wed 07/15 Hash Tables: Hashing, Collision Resolution, Building a Hash Table
Notes
In-Class Exercises
Solutions
Practice Set 6
HW3 Released
6 Mon 07/20 Function Pointers, Concurrency and pthreads: Thread Creation and Joining
6 Wed 07/22 Race Conditions, Mutexes and Locks, Synchronization
HW3 Due
7 Mon 07/27 Binary Trees: Binary Search Trees, Traversals, Recursion on Trees
Quiz 3
7 Wed 07/29 Tree Operations, Balancing, and Applications
8 Mon 08/03 Sorting Algorithms and Graphs; Final Exam Review
8 Wed 08/05 In-Class Final Exam