15-122 Principles of Imperative Computation, Summer II 2017


There is no textbook for the course, other resources, such as lecture notes, are linked here.

All assigments, labs and recitations are distributed via autolab. Written assignments are due on Gradescope by 3pm on the indicated day, and programming assignments are due at 11pm on Autolab on the indicated day.

In this course, there will be three types of class periods.

Dates Morning Afternoon Written Programming
M July 3 Contracts (code, slides) Lab: Setup
T July 4 Independence day -- no class
W July 5 Integers (slides) Rec: C0 Basics Scavenger Hunt
R July 6 Arrays (code) Lab: A Reversal of Fortune Written 1
F July 7 Searching Arrays (code) Rec: A Bit about Bytes Pixels
Su July 9 Written 2
M July 10 Sorting Arrays (code) Lab: Time of Your Life
T July 11 Binary Search (code) Rec: Function Family Reunion Images
W July 12 Quicksort (mergesort, quicksort) Rec: A Strange Sort of Proof Written 3
R July 13 Data Structures (code) Lab: Fibonacci has Bad Internet
F July 14 Stacks and Queues (code) Lab: Miscalculation Written 4 Speller
M July 17 Exam 1 No lab/recitation
T July 18 Linked Lists (stack, queue) Rec: A queue_t interface CLAC
W July 19 Unbounded Arrays (code) Lab: List(en) Up! Written 5
R July 20 Hash Tables Rec: Link it All Together
F July 21 Sets (code) Lab: #pun Written 6 Text Buffer
M July 24 Generic Data Structures (client, code) Rec: Array Disarray
T July 25 Binary Search Trees (code) Lab: Legacy of the void* Bloom Filter
W July 26 AVL Trees (code) Lab: This One's a Treet Written 7
R July 27 Priority Queues Rec: Rotating Rotations
F July 28 Restoring Invariants (code) Lab: PQ puns are too hard Written 8 Ropes
M July 31 Exam 2 No lab/recitation
T Aug 1 Data Structures in C Rec: Heaps of Fun Generic Queues
W Aug 2 C's Memory Model Rec: From C1 to Shining C Written 9
R Aug 3 Types in C Lab: Once you C1 you C them all
F Aug 4 Program as Data: the C0VM Rec: C-ing is Believing Written 10 Lights Out
M Aug 7 Representing Graphs (code) Lab: All sorts of sorts
T Aug 8 Reachability in Graphs (code) Rec: Computing on the Edge Written 11 C0VM Checkpoint (no late day)
W Aug 9 Spanning Trees Lab: Spend some Cycles Thinking
R Aug 10 Union-Find No lab/recitation Written 12
F Aug 11 Exam 3 No lab/recitation C0VM Final (no late day)