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
- (writing-only) 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:
- Brute-Force (Searching)
- Introduction
- Pruning
- Recursion & backtracking
- slides
- References:
- Searching
- Digital Search Trees (DST)
- Radix Search Tries (RST)
- R-way Trie
- De La Briandais Tries (DLB)
- slides
- References:
|
- Email me your GitHub username
- Git Crash Course slides
- (writing-only) 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 Finite-State Automata
- Boyer Moore Algorithm
- Hashing Algorithm and Horner's Method
- slides
- References:
|
- Office hours updated
- TA Office hours set
|
September 21 |
- B Trees
- B-Trees
- 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
- (writing-only) Course created on Peerceptiv
- (writing-only) 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
- (writing-only) Course created on Peerceptiv
- (writing-only) 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
- (writing-only) Assignment 1 reviews due 10/22
- (writing-only) Assignment 2 Posted - due 10/15 (reviews due 10/29)
|
October 12 |
- Midterm Review
- Come prepared with questions
|
- Office hours this week:
- (writing-only) Assignment 1 reviews due 10/22
- (writing-only) 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 after-class hours)
Office hours will be through email. If you would like to try face-to-face, 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)
- (writing-only) Assignment 1 reviews due 10/22
- (writing-only) 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
- (writing-only) 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
- Top-Down and Bottom-Up Algorithms
- Greatest Common Divisor
- slides
|
- Project 3 due 11/3
- Return midterms in lecture
- (writing-only) 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
- One-time pads
- Symmetric ciphers
- slides
- Cryptography
|
- Project 4 due 11/18
- Return midterms in lecture
- Quiz 2 coming soon
- No class November 23
- (writing-only) Assignment 3 due 11/13 (reviews due 11/19)
|
November 16 |
- P vs. NP
- Halting Problem
- Undecidable and Intractable Problems
- Deterministic Polynomial-time vs. Non-Deterministic Polynomial-time Algorithms
- NP-Completeness
- 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
- (writing-only) Assignment 3 reviews due 11/19
- (writing-only) Assignment 4 coming soon
|
November 23 |
No class or scheduled office hours (office hours by appointment still possible)
|
- Project 5 due 12/10
- (writing-only) Assignment 4
|
November 30 |
|
- (optional) Final Exam Review Survey on CourseWeb
- Complete by Sunday, December 4
- Project 5 due 12/10
- (writing-only) Assignment 4 due 12/9 (reviews due 12/15)
|
December 7 |
|
- Project 5 due 12/10
- (writing-only) 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.
|
- (writing-only) Assignment 4 reviews due 12/15
|