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

Schedule

DateLecture NotesExtraDue
Mon01/14
Tue01/15Overviewcode
Wed01/16Rec: Syntax Errors and Compiler
Thu01/17Contracts & Program Reasoningcode
Fri01/18Rec: Reasoning about while Loopssol, Q
Mon01/21
Tue01/22Ints
Wed01/23Rec: Integer Circle and Hexsol
Thu01/24Arrays & Safe AccesscodeAsst 0 Lab 0 
Fri01/25Rec: Pixels, Arrays, for Loopssol,Q,sol,C0
Mon01/28Quiz 1 
Tue01/29Linear Searchcode
Wed01/30Rec: C0 Debugging, Searchsol
Thu01/31Binary Searchcode
Fri02/01Rec: Binary Search, Proofssol,Q,sol,C0
Mon02/04Lab 1 
Tue02/05SortingcodeAsst 1 
Wed02/06Rec: Big-O, Unit Testing
Thu02/07Quicksortcode
Fri02/08Rec: Big-O, Quicksort Invariantssol
Mon02/11Lab 2 
Tue02/12Stacks & QueuescodeAsst 2 
Wed02/13Rec: Interfaces, Structs & Clacs
Thu02/14Pointerscode
Fri02/15Rec: Linked Lists, Queues & Stackssol
Mon02/18Quiz 2 
Tue02/19Testingcode
Wed02/20Rec: Memory Layout, Recursionsol
Thu02/21Unbounded ArrayscodeAsst 3 Lab 3 
Fri02/22Rec: Reviewsol
Mon02/25
Tue02/26Midterm I
Wed02/27Rec: Unbounded Arrays, Amortized Analysissol
Thu02/28Hash Tablescode
Fri03/01Rec: Homework Prep
Mon03/04Quiz 3 
Tue03/05Interfacescode
Wed03/06Rec: Hash Table Implementations
Thu03/07Binary Search TreescodeAsst 4 Lab 4 
Fri03/08Free: No recitation
Mon03/11Free: Spring Break
Tue03/12Free: Spring Break
Wed03/13Free: Spring Break
Thu03/14Free: Spring Break
Fri03/15Free: Spring Break
Mon03/18Quiz 4 
Tue03/19Priority Queues
Wed03/20Rec: BSTs and Backtracking
Thu03/21Restoring Invariantscode
Fri03/22Rec: HeapsQ,sol
Mon03/25
Tue03/26Memory ManagementcodeAsst 5 Lab 5 
Wed03/27Rec: Macros & contracts & malloccode
Thu03/28AVL Treescode
Fri03/29Rec: AVL Treessol
Mon04/01
Tue04/02Types in CcodeQuiz 5 
Wed04/03Rec: &, switch, struct & castsol,code
Thu04/04TriescodeAsst 6 Lab 6 
Fri04/05Rec: Midterm preparation
Mon04/08
Tue04/09Midterm II
Wed04/10Rec: Trie, trie again & Boggle
Thu04/11Polymorphismcode
Fri04/12Rec: Function pointers, heap freesol,code
Mon04/15Lab 7 
Tue04/16Virtual Machinescode,VMAsst 7 
Wed04/17Rec: VM Labcode
Thu04/18Free: Carnival
Fri04/19Free: Carnival
Mon04/22
Tue04/23Search in GraphscodeQuiz 6 
Wed04/24Rec: Graph Search
Thu04/25Spanning Trees
Fri04/26Rec: Kruskal, BFS, tree distance
Mon04/29
Tue04/30Union-FindcodeQuiz 7 
Wed05/01Rec: Union-find & canonical representativessol
Thu05/02Garbage CollectionLab 8 
Fri05/03Rec: Course review
Mon05/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.