CSCI 385 Spring 2025
Advanced Data Structures and Algorithms
Archived Class
Charles Cusack
Computer Science
Hope College
Main
Schedule
Grading
Gradebook
Homework

Policies
Advice
College
    Policies

Notes
Programs
Tutorials

CSCI 235
MATH 160
Others

Admin
previous     next     today     future     all    

Schedule for weeks 1 through 16

Wk Day Date TopicResourcesEvents

1MonJan 06
  • Introduction
  • Prerequisite Review

  • WedJan 08Brute Force
  • Closest-Pair
  • Convex Hull
  • IDAA 3.3

  • FriJan 10Decrease-and-conquer
  • Generating Permutations
  • Generating Subsets
  • IDAA 4 intro (pages 131-134)
  • IDAA 4.3
  • Flip-a-switch

  • 2MonJan 13More: Permutations and CombinationsBring Computer!

    WedJan 15Divide-and-conquer
  • Closest-Pair
  • Convex Hull
  • IDAA 5 intro (pages 169-171)
  • IDAA 5.5

  • FriJan 17More: Convex Hull
  • Before class, do Getting Started w/BRIDGES
  • In class start BRIDGES: Convex Hull
  • HW 1 due

    3MonJan 20Matrices
  • Read AIDMA Ch 5.3
  • Do AIDMA 5.3 RQs

  • WedJan 22Cold Day!
  • Blankets
  • Heater
  • No Class!

    FriJan 24Transform-and-Conquer
  • Gaussian Elimination
  • LU Decomposition
  • IDAA 6.2 (to top of page 214)
  • HW 2 due

    4MonJan 27Transform-and-Conquer
  • Problem Reduction
  • IDAA 6.6
  • Linear Programming Exploration (Geogebra)
  • Linear Programming Example (Desmos)

  • WedJan 29Space-time Tradeoffs
  • String Matching
  • IDAA 7.2
  • Boyer-Moore Demo
  • Boyer-Moore Demo #2
  • HW 3 due

    FriJan 31Space-time Tradeoffs
  • Hashing
  • IDAA 7.3
  • Open Hashing Demo
  • Closed Hashing Demo

  • 5MonFeb 03Transform-and-conquer
  • Balanced search trees
  • Space and Time Trade-Offs
  • B-Trees
  • IDAA 6.3 (2-3 trees, pgs 223-225; RQs 8-11)
  • IDAA 7.4
  • B-Tree Demo

  • WedFeb 05Dynamic Programming
  • Knapsack Problem
  • IDAA 8.2

  • FriFeb 07Dynamic Programming
  • Optimal Binary Search Tree
  • IDAA 8.3
  • HW 4 due

    6MonFeb 10Winter RecessNo Class

    WedFeb 12Greedy Technique
  • Prim's Algorithm
  • Dijkstra's Algorithm
  • IDAA 9.1 (review)
  • IDAA 9.3
  • AIDMA Ch 9.6.4 (Do RQs)
  • Minimum Spanning Trees Notes
  • Algoraph

  • FriFeb 14Greedy Techniques
  • Kruskal's Algorithm
  • Union-Find
  • IDAA 9.2
  • Union-Find Demo
  • HW 5 due

    7MonFeb 17Greedy Techniques
  • Huffman Encoding
  • IDAA 9.4 (review)
  • Huffman Encoding Demo
  • BRIDGES: Huffman Encoding

  • WedFeb 19ReviewHW 6 due

    FriFeb 21Through Chapter 9Midterm Exam

    8MonFeb 24More: Greedy and Dynamic Programming
  • Read over BRIDGES: Mountain Path
  • Be ready to program!
  • HW 7 due

    WedFeb 26Iterative Improvement:
  • Maximum Flow
  • IDAA 10.2
  • Ford-Fulkeron Demo
  • Max Flow Demo
  • Network Flow Solver

  • FriFeb 28Iterative Improvement:
  • Maximum Matching
  • IDAA 10.3

  • 9MonMar 03Iterative Improvement:
  • Stable Marriage
  • IDAA 10.4

  • WedMar 05More: Iterative ImprovementHW 8 due

    FriMar 07Limitations of Algorithm Power
  • Lower-Bound Arguments
  • IDAA 11.1
  • Sorting Lower Bound notes
  • Kelvin predictions

  • 10MonMar 10Limitations of Algorithm Power
  • Decision Trees
  • IDAA 11.2
  • HW 9 due

    WedMar 12Limitations of Algorithm Power
  • P, NP, and NP-Complete
  • IDAA 11.3
  • Halting Problem Notes
  • Turing and the Halting Problem
  • HW 10 due

    FriMar 14Spring BreakNo Class

    Spring Break Week

    11MonMar 24Limitations of Algorithm Power
  • Challenges of Numerical Algorithms
  • IDAA 11.4
  • IEEE 754
  • Roundoff Error

  • WedMar 26Parallel Programming Read Ch 2-3.3 of SIPC
  • Sophomoric Parallelism and Concurrency (SIPC)
  • Grossman notes 1

  • FriMar 28
  • Java's ForkJoin
  • Divide-and-conquer in parallel
  • Read Ch 3.4-3.6 of SIPC
  • Grossman notes 1
  • Grossman notes 2
  • Java ForkJoin Framework Guide
  • ThreadExamples

  • 12MonMar 31
  • Java's ForkJoin
  • Analyzing Parallel Algorithms
  • Read Ch 4-5.2 of SIPC
  • Grossman notes 2
  • ForkJoinExamples
  • HW 11 due

    WedApr 02
  • (Naïve) Parallel Quicksort
  • Loki

  • FriApr 04
  • Parallel Prefix
  • Pack
  • Read Ch 5 of SIPC
    (Re-read 5-5.2, finish chapter)
  • Grossman Notes 3

  • 13MonApr 07
  • Parallel Quicksort and Mergesort
  • HW 12 due (part 1)

    WedApr 09Implementing Parallel Quicksort and/or Mergesort

    FriApr 11Parallel Partition with CutoffWorking session

    14MonApr 14Coping with Limitations
  • Backtracking
  • IDAA 12.1
  • Knight Tour (Java)
  • n-Queens (C++)
  • HW 13 due

    WedApr 16Coping with Limitations
  • Branch-and-Bound
  • IDAA 12.2
  • Branch-and-Bound Example

  • FriApr 18Good FridayNo Class

    15MonApr 21EasterNo Class

    WedApr 23
  • Something fun
  • ParellelSorts code
  • Subset Sum Demo
  • HW 12 due (part 2)

    FriApr 25ReviewHW 12 due (part 3)

    ExThuMay 01Final Exam
    12:30-2:30pm