Lecture Notes

The lecture notes were prepared by four students -- Jonathan Lii, Steven Kannan, Jacob Green, and Scott Ostler -- with input and guidance from Professor Kleitman.

1 Introduction

Non-Adaptive Weighing
2 Sorting (PDF)
3 Finding the Median (PDF)
4 Non-Adaptive Sorting Batcher's Algorithm (PDF)
5 Coding for Efficiency (PDF)
6 Finding Efficient Compressions; Huffman and Hu Tucker Algorithms (PDF)
7 Theory of Probability (PDF)
8 Coding for Error Correction: Shannon's Second Theorem (PDF)
9 Matrix Hamming Codes (PDF)
10 BCH Polynomial Codes (PDF)
11 BCH Codes: Constructing them and finding the Syndrome of a Message (PDF)
12 Correcting Errors in BCH Codes (PDF)
13 Locating Errors using BCH Codes (PDF)
14 Some Graph Theory (PDF)
15 Planarity and Coloring (PDF)
16 Counting Trees (PDF)
17 Symmetries (PDF)
18 Counting Patterns (PDF)
19 Coding for Secrecy (PDF)
20 More on Secret Codes (PDF)
21 Factoring Numbers (PDF)
22 The Quadratic Sieve and Elliptic Curves (PDF)
23 The Finite Fourier Transform and the Fast Fourier Transform Algorithm (PDF)
24 Implementing the FFT and Multiplying Numbers (PDF)
25 Strassen’s Fast Multiplication of Matrices Algorithm and
Spreadsheet Matrix Multiplications
26 Linear Programming Part I (Background & Theory) (PDF)
27 Linear Programming Part II (More Theory & Application) (PDF)
28 Duality in Linear Programming (PDF)