Week 1: Introduction and Basic Concepts
- Mo 08/24 - #1 - Introduction to Algorithms:
Study resources
include CLRS Chapter 1; Topic 01 Notes;
and screencasts 01A-C (or 01* for all of them) in Laulima (these
screencasts were my first attempt and are of poor quality).
- We 08/26 - #2 - Examples of Analysis with Insertion Sort:
Study resources include CLRS Chapter 2 sections 2.1 and 2.2; Topic 02 Notes up through "Worst Case Rate
of Growth"; screencasts 02A-C in Laulima (up through "Detailed Analysis of
Insertion Sort"); MIT Lecture
01. Quiz on above Topic 02 material in class today (and on
future days for every numbered topic).
Week 2: Continuing Basic Concepts
- Mo 08/31 - #2 - Examples of Analysis with Merge Sort:
Rest of
CLRS Chapter 2; rest of Topic 02 Notes;
screencasts 02D and 02E. Don't forget Quiz on remainder of Topic
02.
- Tu 09/01 - Problem Set #0 (practice homework, Topic 1) due
23:55 (11:55 pm) in Laulima (not graded, but discussed in class)
- We 09/02 - #3 - Growth of Functions and Asymptotic Concepts:
CLRS Chapter 3; Topic 03 Notes ;
screencasts 03*, available in Laulima and YouTube; MIT Lecture
02 (beginning-16:50).
Week 3: Analysis of Basic Data Structures
- Mo 09/07 - Holiday (Labor Day)
- Tu 09/08 - Problem Set #1 (Topic 2) due 23:55 (11:55 pm) in
Laulima
- We 09/09 - #4 - Basic ADTs (Stacks, Queues, Lists and Trees):
CLRS Chapter 10; Topic 04 Notes;
screencasts 04* in Laulima and YouTube; (not covered in MIT video
lectures).
Week 4: Probabilistic Analysis, Randomization, and Hash Tables
Week 5: Divide and Conquer and Binary Search Trees
- Mo 09/21 - #7 - Divide & Conquer and Analysis of
Recurrences:
CLRS Sections 4.1 & 4.3-4.5; Topic 07 Notes; screencasts 07*; MIT Lecture
02 (16:51-end) and MIT Lecture 03
(through about 13:07: we don't cover Strassen or Fibonacci numbers).
- Tu 09/22 - Problem Set #3 (Topics 5 & 6) due 23:55 (11:55 pm)
- We 09/23 - #8 - Binary Search Trees:
CLRS Sections 12.1-12.3 (see also Theorem 12.4);
Topic 08 Notes; screencasts 08*;
(No corresponding MIT lecture identified).
Week 6: Advanced Sorts and Queues (Heaps, Priority Queues, Heapsort, Quicksort)
- Mo 09/28 - #9 - Heap, Heapsort and Priority Queues:
CLRS
Chapter 6 (all); Topic 09 Notes;
screencasts in Laulima and YouTube; (no corresponding MIT lecture
identified)
- Tu 09/29 - Problem Set #4 (Topics 7 & 8) due 23:55 (11:55 pm)
- We 09/30 - #10A - Quicksort:
CLRS Chapter 7 (Chapter 8 is in
notes but will be continued on Monday); Topic 10 Notes; screencasts in Laulima and
YouTube; MIT Lecture
04
Week 7: O(n) Sorts and Midterm
- Mo 10/05 - #10B - Theoretical Limits, and O(n) Sorts; Midterm
Review:
CLRS Chapter 8; Topic 10
Notes; screencasts in Laulima and YouTube; MIT Lecture
05 (but we don't go into as much detail)
- Tu 10/06 - No problem set!
- We 10/07 - Midterm 1, Topics 1-8
Week 8: Balanced Trees; Midterm Results Review
- Mo 10/12 - #11 - Balanced Trees (2-3-4 and Red-Black):
Sedgewick Chapter 15 & CLRS Chapter 13; Topic 11 Notes; screencasts 11*; MIT Lecture
10. (Read Sedgewick first to understand the 2-4 tree and how a RBT is
a representation of a 2-4 tree. Allow extra time for this material!).
- Tu 10/13 - Problem Set #5 (Topics 9 & 10a, quicksort) due
23:55 (11:55 pm)
- We 10/14 - Midterm Results/Review and #11 continued
Week 9: Problem Solving with Dynamic Programming and Greedy Algorithms
- Mo 10/19 - #12 - Dynamic Programming:
CLRS Chapter 15 (and
optionally Sedgewick Chapter 37); Topic 12
Notes; screencasts 12*; MIT Lecture
15
- Tu 10/20 - Problem Set #6 (Topics 10b linear sorts & 11) due
23:55 (11:55 pm)
- We 10/21 - #13 - Greedy Algorithms (and how they compare to
DP):
CLRS Sections 16.1-16.3; Topic 13
Notes; screencasts 13*; (MIT Lecture
16: only briefly mentioned at 48:16)
Week 10: Graph Representations and Basic Algorithms
- Mo 10/26 - #14A - Graph Representations and Breadth-First
Search:
CLRS 22.1-22.2; Goodrich & Tamassia section on Graph
Representations in Laulima; Optionally Newman (2010) chapter 9 in Laulima;
Topic 14 Notes; screencasts 14A-C; MIT Lecture
16 (just the first few minutes for graph representations; the rest
focuses on MST).
- Tu 10/27 - Problem Set #7 (Topics 12 & 13) due 23:55 (11:55
pm)
- We 10/28 - #14B - Depth-First Search, Topological Sort, and Strongly
Connected Components: CLRS 22.3-22.5; screencasts 14D-F.
Week 11: Amortized Analysis, Union-Find, and Minimum Spanning Trees
- Mo 11/02 - #15 - Amortized Analysis & #16 - Sets and
Union-Find:
CLRS 17.1-17.2, 21.1, & 21.3; Also see Lemma
21.11, 21.12, 21.13 and Theorem 21.14; Topic 15 Notes (skip Potential Method)
& Topic 16 Notes (skip Linked List
representation: Forest is much better); MIT Lecture
13
- Mon 11/02 - Last day for withdrawal with W
- Tu 11/03 - Problem Set #8 (Topic 14) due 23:55 (11:55
pm)
- We 11/04 - #17 - Minimum Spanning Trees:
CLRS Chapter 23; Topic 17 Notes; screencasts 17*; MIT Lecture
16 (second part).
Week 12: Finding Shortest Paths in Graphs
- Mo 11/09 - #18 - Single-Source Shortest Paths:
CLRS Sections 24.1-24.3;
Topic 18 Notes;
screencasts 18*;
MIT Lecture 17,
MIT Lecture 18
(first half)
- Tu 11/10 No problem set due!
- We 11/11 - Holiday: Veteran's Day
Week 13: Shortest Paths Continued; Midterm
- Mo 11/16 - #19 - All-Pairs Shortest Paths:
CLRS Chapter 25;
Topic 19 Notes;
screencasts 19*;
MIT Lecture 19
- Tu 11/17 - Problem Set #9 extended 1 week (Topic 15, 16 & 17)
due 23:55 (11:55 pm)
- We 11/18 - Midterm 2: Topics 9-17
Week 14: Midterm Results Review; Maximum Flow in Graphs
- Mo 11/23 - Review of Midterm Results
- Tu 11/24 - No problem set due! But start on combined problem set.
- We 11/25 - #20 - Maximum Flow:
CLRS Sections 26.1-26.3;
Topic 20 Notes;
screencasts 20*.
Week 15: Multithreading; NP-Completeness
- Mo 11/30 - #22 - Multithreading:
CLRS Chapter 27 (emphasis on sections 27.1 and 27.3);
Topic 22 Notes;
no screencasts.
- Tu 12/01 - No problem set due! But work on combined problem set due
next week.
- We 12/02 - #24 - Complexity Theory & NP-Completeness:
CLRS Chapter 34;
Topic 24 Notes;
screencasts 24*;
not covered in MIT video lectures.
Week 16: Approximation Algorithms; Review and Special Topic
- Mo 12/07 - #25 - Approximation Algorithms:
CLRS Chapter 35;
Topic 25 Notes;
screencasts 25*;
not covered in MIT video lectures.
- Tu 12/08 Problem Set #10 (COMBINED: Topics 18, 19, 20 &
22) due 23:55 (11:55 pm)
- We 12/09 - Special Topic and Review (LAST DAY CLASS). Review for
final exam. Nothing to study in advance. Time permitting, each instructor
will choose special topic for his section. (DS: Introduction to social
network analysis algorithms.)
Finals Week:
- We 12/16 4:30-6:30: Final Exam
- Cumulative on all topics (1-20, 22, 24, & 25).
Last modified: Sat Dec 12 18:07:53 HST 2020