The calendar below provides information on the course's lecture (L) and exam (E) sessions.

L1 Non-adaptive weighing
L2 Sorting
L3 Finding the median
L4 Non-adaptive sorting: Batcher's algorithm Problem set 1 due
L5 Shannon source coding: coding for efficiency
L6 Huffman and Hu-Tucker algorithms; finding efficient compression
L7 Theory of probability Problem set 2 due
L8 Coding for error correction: the Shannon bound
L9 Matrix hamming codes Problem set 3 due
L10 Polynomial codes
L11 BCH codes: constructing them and finding the syndrome of a message Problem set 4 due
L12 Correcting errors in BCH codes
L13 Properties and generalizations of our BCH codes Problem set 5 due
E1 Exam 1
L14 Coding for secrecy
L15 Secret coding 2
L16 Factoring numbers
L17 Quadratic sieve and elliptic curves First draft of short paper due
L18 Some graph theory Problem set 6 due
L19 Planarity and coloring; matching problems
L20 Counting trees Problem set 7 due
L21 Symmetries
L22 Counting patterns; generating functions Problem set 8 due
L23 The finite Fourier transform
L24 FFT and multiplication of numbers Problem set 9 due
E2 Exam 2
L25 Sequential choice
L26-27 Linear programming Final draft of short paper due
L28 Duality in linear programming Problem set 10 due
L29 Matching
L30 Strassen's fast multiplication of matrices, algorithm and spreadsheet matrix multiplications Term paper due