# ICS 311 Fall 2020 Index

This is an index of web pages for ICS 311 Algorithms Sections 1 and 2, taught Fall 2020 by Dan Suthers and Peter Sadowski. Generally the course is run within Laulima. Notes and other material are posted on this site, http://www2.hawaii.edu/~suthers/courses/ics311f20/, and on YouTube. However, course participants will need to log into Laulima regularly to view announcements, view and submit assignments, and to use other facilities such as the resource repository.

Due to Covid-19 and the size of the class, classes are conducted online in Zoom. Your instructor will provide you with access information. For reasons of security and simplicity in managing a large course, you must use a UH login to participate: requests from other accounts will be ignored.

## Contents

• Schedule: Weekly readings/videos, problem sets, and exams.
• Syllabus: Overview of course and plan.
• Topics: Summary of weekly topics.
• Problem Sets: List of active and planned problem sets.
• Exams: Planned exam dates

## Topics

This is not a complete schedule: see the Schedule for that. CLRS is the Cormen Leiserson Rivest and Stein textbook.

• 08/24 - #1 - Introduction to Course: CLRS Chapter 1; Topic 01 Notes
• 08/26 & 31 - #2 - Examples of Analysis with Insertion and Merge Sort: CLRS Chapter 2; Topic 02 Notes
• 09/02 - #3 - Growth of Functions and Asymptotic Concepts: CLRS Chapter 3; Topic 03 Notes
• 09/09 - #4 - Basic ADTs (Stacks, Queues, Lists and Trees): CLRS Chapter 10; Topic 04 Notes
• 09/14 - #5 - Probabilistic Analysis and Randomized Algorithms: CLRS Sections 5.1-5.3, 5.4.1; Goodrich & Tamassia section on Skip Lists; Topic 05 Notes
• 09/16 - #6 - Hash Tables: CLRS Sections 11.1-11.4; Topic 06 Notes
• 09/21 - #7 - Divide & Conquer and Analysis of Recurrences: CLRS Chapter 4 (4.1 & 4.3-4.5); Topic 07 Notes
• 09/23 - #8 - Binary Search Trees: CLRS Sections 12.1-12.3 (see also Theorem 12.4); Topic 08 Notes
• 09/28 - #9 - Heaps, Heapsort and Priority Queues: CLRS Chapter 6 (all); Topic 09 Notes
• 09/30 & 10/05 - #10 - Quicksort, Theoretical Limits, and O(n) Sorts: CLRS Chapters 7 & 8; Topic 10 Notes
• 10/12 - #11 - Balanced Trees (2-3-4 and Red-Black): Sedgewick Chapter 15 & CLRS Chapter 13; Topic 11 Notes
• 10/19 - #12 - Dynamic Programming: CLRS Chapter 15 (and optionally Sedgewick Chapter 37); Topic 12 Notes
• 10/21 - #13 - Greedy Algorithms & Huffman Codes: CLRS Sections 16.1-16.3; Topic 13 Notes
• 10/26 & 28 - #14 - Graph Representations and Basic Algorithms: CLRS Chapter 22; Goodrich & Tamassia excerpt on Representations; Topic 14 Notes
• 11/02 - #15 - Amortized Analysis: CLRS Chapter 17 Sections 17.1-17.2; Topic 15 Notes (leave out the Potential method), AND:
11/02 - #16 - Sets and Union-Find: CLRS Sections 21.1, 21.3 and Theorem 21.14 (read beginning of 21.4 through definition of α and the theorem); Topic 16 Notes (leave out the linked representation)
• 11/04 - #17 - Minimum Spanning Trees: CLRS Chapter 23; Topic 17 Notes
• 11/09 - #18 - Single-Source Shortest Paths: CLRS Sections 24.1-24.3; Topic 18 Notes
• 11/16 - #19 - All-Pairs Shortest Paths: CLRS Chapter 25; Topic 19 Notes
• 11/23 - #20 - Maximum Flow: CLRS Sections 26.1-26.3; Topic 20 Notes
• 11/25 - #22 - Multithreading: CLRS Chapter 27 (emphasis on sections 27.1 and 27.3), Topic 22 Notes
• 12/02 - #24 - Complexity Theory & NP-Completeness: CLRS Chapter 34; Topic 24 Notes (no homework)
• 12/07 - #25 - Approximation Algorithms: CLRS Chapter 35; Topic 25 Notes (no homework)

Other topics not covered:

• #21 - Linear Programming: Sedgewick (1983) Chapters 5 and 38 (read these first); CLRS Sections 29.0-29.3 (half way); Topic 21 Notes
• #23 String Matching: CLRS Chapter 32 (emphasis on sections 32.1 and 32.3); Topic 23 Notes
• Public Key Encryption: CLRS Chapter 31 (emphasis on 31.7). No web notes or videos have been made.

## Problem Sets

Each problem set will be released in Laulima when they are assigned. At that time, you may find the actual problems as Google Doc templates in your section's Assignments folder.

• Problem Set #0 An optional practice problem on Topic 1, not graded but discussed in class. Due 23:55 (11:55 pm) Tuesday September 1st
• Problem Set #1 (Topic 2) due 23:55 (11:55 pm) Tuesday September 8th
• Problem Set #2 (Topics 3 & 4) due 23:55 (11:55 pm) Tuesday September 15th
• Problem Set #3 (Topics 5 & 6) due 23:55 (11:55 pm) Tuesday September 22nd
• Problem Set #4 (Topics 7 & 8) due 23:55 (11:55 pm) Tuesday September 29th
• Problem Set #5 (Topics 9 & 10A) due 23:55 (11:55 pm) Tuesday October 13
• Problem Set #6 (Topics 10B & 11) due 23:55 (11:55 pm) Tuesday Oct 20
• Problem Set #7 (Topics 12 & 13) due 23:55 (11:55 pm) Tuesday October 27
• Problem Set #8 (Topic 14) due 23:55 (11:55 pm) Tuesday November 3rd
• Problem Set #9 (Topics 15, 16 & 17) due 23:55 (11:55 pm) Tuesday November 10th
• Problem Set #10 (Topics 18, 19, 20 & 22) due 23:55 (11:55 pm) Tuesday December 8th
• Problem Set #11 Cancelled (merged with PS 10)

## Exam Dates

• Wednesday 10/07: Midterm 1 - Topics 1-8
• Wednesday 11/18: Midterm 2 - Topics 9-17
• We 12/16 4:30-6:30: Final Exam - Cumulative on all topics (1-20, 22, 24, & 25).

Dan Suthers
Last modified: Mon Dec 7 01:53:16 HST 2020