15-122: Principles of Imperative Computation (Sp'13)


DateLecture NotesExtraDue
Mon 01/14
Tue 01/15Overviewcode
Wed 01/16Rec: Syntax Errors and Compiler
Thu 01/17Contracts & Program Reasoningcode
Fri 01/18Rec: Reasoning about while Loopssol, Q
Mon 01/21
Tue 01/22Ints
Wed 01/23Rec: Integer Circle and Hexsol
Thu 01/24Arrays & Safe AccesscodeAsst 0 Lab 0 
Fri 01/25Rec: Pixels, Arrays, for Loopssol,Q,sol,C0
Mon 01/28Quiz 1 
Tue 01/29Linear Searchcode
Wed 01/30Rec: C0 Debugging, Searchsol
Thu 01/31Binary Searchcode
Fri 02/01Rec: Binary Search, Proofssol,Q,sol,C0
Mon 02/04Lab 1 
Tue 02/05SortingcodeAsst 1 
Wed 02/06Rec: Big-O, Unit Testing
Thu 02/07Quicksortcode
Fri 02/08Rec: Big-O, Quicksort Invariantssol
Mon 02/11Lab 2 
Tue 02/12Stacks & QueuescodeAsst 2 
Wed 02/13Rec: Interfaces, Structs & Clacs
Thu 02/14Pointerscode
Fri 02/15Rec: Linked Lists, Queues & Stackssol
Mon 02/18Quiz 2 
Tue 02/19Testingcode
Wed 02/20Rec: Memory Layout, Recursionsol
Thu 02/21Unbounded ArrayscodeAsst 3 Lab 3 
Fri 02/22Rec: Reviewsol
Mon 02/25
Tue 02/26Midterm I
Wed 02/27Rec: Unbounded Arrays, Amortized Analysissol
Thu 02/28Hash Tablescode
Fri 03/01Rec: Homework Prep
Mon 03/04Quiz 3 
Tue 03/05Interfacescode
Wed 03/06Rec: Hash Table Implementations
Thu 03/07Binary Search TreescodeAsst 4 Lab 4 
Fri 03/08No recitation
Mon 03/11Spring Break
Tue 03/12Spring Break
Wed 03/13Spring Break
Thu 03/14Spring Break
Fri 03/15Spring Break
Mon 03/18Quiz 4 
Tue 03/19Priority Queues
Wed 03/20Rec: BSTs and Backtracking
Thu 03/21Restoring Invariantscode
Fri 03/22Rec: HeapsQ,sol
Mon 03/25
Tue 03/26Memory ManagementcodeAsst 5 Lab 5 
Wed 03/27Rec: Macros & contracts & malloccode
Thu 03/28AVL Treescode
Fri 03/29Rec: AVL Treessol
Mon 04/01
Tue 04/02Types in CcodeQuiz 5 
Wed 04/03Rec: &, switch, struct & castsol,code
Thu 04/04TriescodeAsst 6 Lab 6 
Fri 04/05Rec: Midterm preparation
Mon 04/08
Tue 04/09Midterm II
Wed 04/10Rec: Trie, trie again & Boggle
Thu 04/11Polymorphismcode
Fri 04/12Rec: Function pointers, heap freesol,code
Mon 04/15Lab 7 
Tue 04/16Virtual Machinescode,VMAsst 7 
Wed 04/17Rec: VM Labcode
Thu 04/18Carnival
Fri 04/19Carnival
Mon 04/22
Tue 04/23Search in GraphscodeQuiz 6 
Wed 04/24Rec: Graph Search
Thu 04/25Spanning Trees
Fri 04/26Rec: Kruskal, BFS, tree distance
Mon 04/29
Tue 04/30Union-FindcodeQuiz 7 
Wed 05/01Rec: Union-find & canonical representativessol
Thu 05/02Garbage CollectionLab 8 
Fri 05/03Rec: Course review
Mon 05/13Final: 5:30-8:30pm
The lecture schedule is tentative!

Lab Schedule

Points Assignment Due
Asst0    25 Theory Assignment 0          TeX Thu 01/24
Lab0 5 Scavenger Hunt Lab 0 starter       Thu 01/24
Asst1    15 Theory Assignment 1 TeX Tue 02/05
Lab1 25 Image Lab 1 starter Mon 02/04
Asst2    20 Theory Assignment 2 TeX Tue 02/12
Lab2 20 Twitter Lab 2 starter Mon 02/11
Asst3    25 Theory Assignment 3 TeX,Q Thu 02/21
Lab3 25 Clac Lab 3 starter Thu 02/21
Asst4    20 Theory Assignment 4 TeX Thu 03/07
Lab4 30 Editor Lab 4 starter Thu 03/07
Asst5    20 Theory Assignment 5 TeX Tue 03/26
Lab5 30 Peg Lab 5 starter Tue 03/26
Asst6    30 Theory Assignment 6 TeX Thu 04/04
Lab6 20 Huffman Lab 6 starter Thu 04/04
Asst7    25 Theory Assignment 7 TeX Tue 04/16
Lab7 25 String Buffer  Lab 7 starter Mon 04/15
Lab8 100 Virtual Machine Lab 8 starter Thu 05/02
The Lab and Assignment Schedule is tentative!
Theory assignments are due at start of lecture on the due day.
Programming lab assignments are due at 11:59pm on the due day.