Date 
Notes 
Announcements & Assignments 
August 31 
 Preliminaries
 Introduction to the course
 Goals of the course
 Introduction to algorithm analysis
 slides
 References:
 Sorting
 Bubble Sort, Insertion Sort, Merge Sort, Quick Sort, Radix Sort
 slides
 References:

 Read Course Information and Policies
 Email me your GitHub username
 (writingonly) Sign up for Peerceptiv
 (optional) Email me ...
 your Reddit username
 dates of religious holidays that could affect your attendance/performance
 your preferred day & time (after 5pm) for second office hour

September 7 
 Sorting
 Radix Sort
 Final thoughts on sorting
 slides
 References:
 BruteForce (Searching)
 Introduction
 Pruning
 Recursion & backtracking
 slides
 References:
 Searching
 Digital Search Trees (DST)
 Radix Search Tries (RST)
 Rway Trie
 De La Briandais Tries (DLB)
 slides
 References:

 Email me your GitHub username
 Git Crash Course slides
 (writingonly) Sign up for Peerceptiv
 (optional) Email me ...
 your Reddit username
 dates of religious holidays that could affect your attendance/performance
 your preferred day & time (after 5pm) for second office hour

September 14 
 Hashing
 Collisions
 Hashing functions
 Open Addressing vs. Closed Addressing
 slides
 References:
 String Pattern Matching
 Brute Force
 KMP Algorithm (Knuth, Morris, Pratt)
 Deterministic FiniteState Automata
 Boyer Moore Algorithm
 Hashing Algorithm and Horner's Method
 slides
 References:

 Office hours updated
 TA Office hours set

September 21 
 B Trees
 BTrees
 B+Trees
 slides
 References:
 Compression
 Huffman Encoding
 slides
 References:

 Project 1 Posted  due 9/30
 Project 0  due 9/23 (optional, but recommended)
 Midterm: October 19
 Quiz 1: coming soon
 (writingonly) Course created on Peerceptiv
 (writingonly) Assignment 1 Posted  due 10/4 (reviews due 10/22)

September 28 
 Compression
 Huffman Encoding Implementation Details
 Run Length Encoding
 LZW Encoding
 Information Theory
 slides
 References:
 Priority Queues
 Naive Implementations
 Heaps
 Indirection
 slides
 References:

 Project 1 Posted  due 9/30
 Midterm: October 19
 Quiz 1: coming soon
 (writingonly) Course created on Peerceptiv
 (writingonly) Assignment 1 Posted  due 10/4 (reviews due 10/22)

October 5 
 Priority Queues
 Graphs
 A lot of definitions
 Adjacency Representations
 Graph Traversals
 Biconnected Graphs and Articulation Points
 slides
 References:
 Weighted Graphs
 Differences from Unweighted Graphs
 Minimum Spanning Trees (MSTs) and Prim's Algorithm
 Shortest Path and Dijkstra's Algorithm
 Kruskal's Algorithm
 slides
 References:

 Midterm: October 19
 Midterm Review: October 12
 come prepared with questions
 Project 2 Posted  due 10/14
 (writingonly) Assignment 1 reviews due 10/22
 (writingonly) Assignment 2 Posted  due 10/15 (reviews due 10/29)

October 12 
 Midterm Review
 Come prepared with questions

 Office hours this week:
 (writingonly) Assignment 1 reviews due 10/22
 (writingonly) Assignment 2 due 10/15 (reviews due 10/29)

October 19 
 Midterm
 6:00 pm  7:30 pm
 No books, notes, computers, or other electronic devices may be used during the exam.
 No class after 7:30 pm

 Office hours this week:
 Tuesday: 4:30pm  6:30pm
 Wednesday: 4:30pm  5:45pm (no afterclass hours)
Office hours will be through email. If you would like to try facetoface, send an email and we can try to set something up through Google or Skype.
 Open recitation this week (i.e. nothing in particular will be reviewed, unless you have questions for the TA)
 (writingonly) Assignment 1 reviews due 10/22
 (writingonly) Assignment 2 reviews due 10/29

October 26 
 Union Find
 Basic Implementation
 Forest of Trees Implementation
 Weighted Trees Implementation
 slides
 References:
 Network Flow
 Ford Fulkerson
 Edmonds Karp
 Min Cut / Max Flow
 Introduction to Duality
 slides
 References:

 Project 3 Posted  due 11/3
 (writingonly) Assignment 2 reviews due 10/29

November 2 
 Integer Multiplication
 Grade School Algorithm
 Improved Grade School Algorithm
 Divide & Conquer Algorithm
 Introduction to Recurrence Relations and the Master Theorem
 Karatsuba's Algorithm
 slides
 More Math
 Exponentiation
 Basic Algorithm
 Divide & Conquer Algorithm
 TopDown and BottomUp Algorithms
 Greatest Common Divisor
 slides

 Project 3 due 11/3
 Return midterms in lecture
 (writingonly) Assignment 3 Posted  due 11/13 (reviews due 11/19)

November 9 
 More Math
 Greatest Common Divisor
 Euclid's Algorithm
 Extended Euclid's Algorithm
 Cryptography
 Introduction
 Caesar Cipher and its random permutation enhancement
 Onetime pads
 Symmetric ciphers
 slides
 Cryptography

 Project 4 due 11/18
 Return midterms in lecture
 Quiz 2 coming soon
 No class November 23
 (writingonly) Assignment 3 due 11/13 (reviews due 11/19)

November 16 
 P vs. NP
 Halting Problem
 Undecidable and Intractable Problems
 Deterministic Polynomialtime vs. NonDeterministic Polynomialtime Algorithms
 NPCompleteness
 Reduction
 Introduction to Heuristic Approximations
 slides
 References:

 Project 4 due 11/18
 No class or office hours next week (office hours by appointment still possible)
 Project 5 coming soon
 (writingonly) Assignment 3 reviews due 11/19
 (writingonly) Assignment 4 coming soon

November 23 
No class or scheduled office hours (office hours by appointment still possible)

 Project 5 due 12/10
 (writingonly) Assignment 4

November 30 

 (optional) Final Exam Review Survey on CourseWeb
 Complete by Sunday, December 4
 Project 5 due 12/10
 (writingonly) Assignment 4 due 12/9 (reviews due 12/15)

December 7 

 Project 5 due 12/10
 (writingonly) Assignment 4 due 12/9 (reviews due 12/15)

December 14 
 Final Exam
Since the course material is cumulative, it would be good to be familiar with all of the course material. However, there will be a focus on topics not covered in the midterm:
 Graphs
 Weighted Graphs
 Union Find
 Network Flow
 Integer Multiplication
 More Math
 Cryptography
 P vs. NP
 Dynamic Programming
No books, notes, computers, or other electronic devices may be used during the exam.
Exam is only half of the class period.

 (writingonly) Assignment 4 reviews due 12/15
