ICS 311 Fall 2017 Schedule

Classes are in Webster 101. See the index page for categorical listings of all assignments and topics. Problem Set links will not work until the assigments are released.

Week 1: Introduction and Basic Concepts

• Mo 08/21 - #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/23 - #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/28 - #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.
• Mo 08/28 - Last day to withdraw without "W"
• Tu 08/29 - Problem Set #0 (practice homework, Topic 1) due 23:55 (11:55 pm) in Laulima (not graded, but discussed in class)
• We 08/30 - #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/04 - Holiday (Labor Day)
• Tu 09/05 - Problem Set #1 (Topic 2) due 23:55 (11:55 pm) in Laulima
• We 09/06 - #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 5: Divide and Conquer and Binary Search Trees

• Mo 09/18 - #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/19 - Problem Set #3 (Topics 5 & 6) due 23:55 (11:55 pm)
• We 09/20 - #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/25 - #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/26 - Problem Set #4 (Topics 7 & 8) due 23:55 (11:55 pm)
• We 09/27 - #10 - 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/02 - #10 - 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/03 - No problem set!
• We 10/04 - Midterm 1, Topics 1-8

Week 8: Balanced Trees; Midterm Results Review

• Mo 10/09 - #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/10 - Problem Set #5 (Topics 9 & 10a, quicksort) due 23:55 (11:55 pm)
• We 10/11 - Midterm Results/Review and #11 continued

Week 9: Problem Solving with Dynamic Programming and Greedy Algorithms

• Mo 10/16 - #12 - Dynamic Programming:
CLRS Chapter 15 (and optionally Sedgewick Chapter 37); Topic 12 Notes; screencasts 12*; MIT Lecture 15
• Tu 10/17 - Problem Set #6 (Topics 10b linear sorts & 11) due 23:55 (11:55 pm)
• We 10/18 - #13 - Greedy Algorithms:
CLRS Sections 16.1-16.3; Topic 13 Notes; screencasts 13*; (MIT Lecture 16: only briefly mentioned at 48:16)
• Fr 10/20 - Last day for withdrawal with W

Week 10: Graph Representations and Basic Algorithms

• Mo 10/23 - #14 - 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/24 - Problem Set #7 (Topics 12 & 13) due 23:55 (11:55 pm)
• We 10/25 - #14 - 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 10/30 - #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
• Tu 10/31 - Problem Set #8 (Topic 14)
• We 11/01 - #17 - Minimum Spanning Trees:
CLRS Chapter 23; Topic 17 Notes; screencasts 17*; MIT Lecture 16 (second part).

Week 13: Maximum Flow in Graphs; Midterm

• Mo 11/13 - #20 - Maximum Flow:
CLRS Sections 26.1-26.3; Topic 20 Notes; screencasts 20*.
• Tu 11/14 - No problem set!
• We 11/15 - Midterm 2: Topics 9-17

Week 14: Multithreading and Midterm Results Review

• Mo 11/20 - #22 - Multithreading: CLRS Chapter 27 (emphasis on sections 27.1 and 27.3); Topic 22 Notes; no screencasts.
• Tu 11/21 - Problem Set #10 (Topics 18 & 19) due 23:55 (11:55 pm)
• We 11/22 - Review of Midterm Results

Week 15: NP-Completeness and Approximation Algorithms

• Mo 11/27 - #24 - Complexity Theory & NP-Completeness:
CLRS Chapter 35; Topic 24 Notes; screencasts 24*; not covered in MIT video lectures.
• Tu 11/28 - Problem Set #11 (Topics 20 & 22) due 23:55 (11:55 pm)
• We 11/29 - #25 - Approximation Algorithms:
CLRS Chapter 34; Topic 25 Notes; screencasts 25*; not covered in MIT video lectures.

Week 16: Special Topic and Wrapup

• Mo 12/04 - Likely #21 - Linear Programming:
Sedgewick (1983) Chapters 5 and 38 (read these first); CLRS Sections 29.0-29.3 (half way); Topic 21 Notes
• We 12/06 - Special Topic or Review (LAST DAY CLASS)

Finals Week:

• Time and Date TBA, Location TBA: Final Exam - Cumulative on all topics (1-20, 22, 24, & 25).