## ICS 311 Fall 2017 Schedule

#### Click here to go to this week.

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: Midterm; Maximum Flow in Graphs

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

#### 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 - #23 - String Matching:
CLRS Chapter 32 (emphasis on sections 32.1 and 32.3); Topic 23 Notes
• We 12/06 - Special Topic and Review (LAST DAY CLASS). Introduction to social network analysis algorithms taught in ICS 422 Network Science. Review for final exam. Nothing to study in advance.

#### Finals Week:

• Monday 12/11 from 2:15-4:15 pm, BUSAD A101: Final Exam - Cumulative on all topics (1-20, 22, 24, & 25).

Last modified: Fri Dec 1 01:29:55 HST 2017