ICS 311 Spring 2025

This is an index of web pages for ICS 311 Algorithms, taught in Spring 2025 by Kyle Berney. Generally the course is run within Laulima. Notes and other material are posted on this site and on YouTube. There are three total sections of the class, the other two sections are taught by Nodari Sitchinava. The class is held in POST 318A.

Contents

  • Topics: Summary of weekly topics.

  • Problem Sets: List of active and planned problem sets.

  • Exams: Planned exam dates

Topics

For a detailed schedule, including reading assignments see the Schedule page. Topic numbers are not in sequence due to changes to the curriculum since 2014.

  • Week 1

    • 01/14 - #1 & #4 - Introduction to Course; Review of Basic Data Structures

    • 01/16 - #3 - Growth of Functions and Asymptotic Concepts

  • Week 2

    • 01/21 - #2 - Proving Correctness, Analyzing Algorithms

    • 01/23 - #7 - Divide & Conquer, Analysis of Recurrences

  • Week 3

    • 01/28 - #9 - Heaps, Heapsort and Priority Queues

    • 01/30 - Class canceled (storm)

  • Week 4

    • 02/04 - #8 - Binary Search Trees

    • 02/05 - Drop date (without W)

    • 02/06 - #11 - Balanced Trees (2-3-4 and Red-Black)

  • Week 5

    • 02/11 - #5A - Probabilistic Analysis

    • 02/13 - #5B - Randomized Algorithms, Quicksort

  • Week 6

    • 02/18 - #6 - Hash Tables

    • 02/20 - #10A - Selection and Order Statistics

  • Week 7

    • 02/25 - #10B - Theoretical Limits, and O(n) Sorts

    • 02/27 - #12A Backtracking (Recursive algorithms review)

  • Week 8

    • 03/04 - Midterm 1

    • 03/06 - #12A - Dynamic Programming

  • Week 9

    • 03/11 - #12B - Dynamic Programming (cont.)

    • 03/13 - #13 - Greedy Algorithms & Huffman Codes

  • SPRING RECESS: 03/17 — 03/21

  • Week 10

    • 03/25 - #14A - Graph Representations, BFS, DFS

    • 03/27 - #14B - Topological Sort, Strongly Connected Components

    • 03/28 - Drop date (with W)

  • Week 11

    • 04/01 - #16 & #17 - Disjoint Sets, Union-Find, Minimum Spanning Trees

    • 04/03 - #18 - Single-Source Shortest Paths

  • Week 12

    • 04/08 - #19 - All-Pairs Shortest Paths

    • 04/10 - Additional practice with Dynamic Programming

  • Week 13

    • 04/15 - #20 - Maximum Flow

    • 04/17 - Midterm 2

  • Week 14

    • 04/22 - #20 - Maximum Flow (continued)

    • 04/24 - #24 - Complexity Theory & NP-Completeness

  • Week 15

    • 04/29 - #25 - Approximation Algorithms

    • 05/01 - #22 - Multithreading

  • Week 16

    • 05/06 - Course Review

Problem Sets

The problems sets will be released here at least a week before they are due. They are due in POST 317 on the corresponding day. No late submissions will be accepted.

  • Problem Set #1 (Topics 1, 3, & 4) due Friday January 17th at 4pm

  • Problem Set #2 (Topic 2) due Friday January 24th at 4pm

  • Problem Set #3 (Topics 7 & 9) due Friday January 31st at 4pm

  • Problem Set #4 (Topics 8 & 11) due Friday February 7th at 4pm

  • Problem Set #5 (Topics 5A & 5B) due Friday February 14th at 4pm

  • Problem Set #6 (Topic 6) due Friday February 21st at 4pm

  • Problem Set #7 (Topics 10A & 10B) due Friday February 28th at 4pm

  • Problem Set #8 (Topic 12A) due Friday March 7th at 4pm

  • Problem Set #9 (Topics 12B & 13) due Friday March 14th at 4pm

  • Problem Set #10 (Topic 14A) due Friday March 28th at 4pm

  • Problem Set #11 (Topics 14B, 16 & 17) due Friday April 4th at 4pm

  • Problem Set #12 (Topics 18 & 19) due Friday April 11th at 4pm

  • Problem Set #13 (Topic 20) due Friday April 25th at 4pm

  • Problem Set #14 (Topics 24 & 25) due Friday May 2nd at 4pm

Exam Dates

  • 03/04: Midterm 1 - Topics 1-11 in class

  • 04/17: Midterm 2 - Topics 12-14, 16-19 in class

  • Final Exam: Cumulative on all topics (1-14, 16-20, 22, 24, & 25)

    • Section 3 (TR 4:30-6:10pm): Tuesday 4:20-6:30pm