CSI 3610: Design and Analysis of Algorithms

Dr. Tianle Ma  ยท  Winter 2026

๐Ÿ“–

Click any lecture card to access slides and handouts. Use Slides for the interactive presentation or Handout for a printable version.

Lecture Materials

Lecture 01

Course Introduction & Fundamentals

Lecture 02

Asymptotic Notation

Lecture 03

Correctness & Loop Invariants

Lecture 04

Divide & Conquer and Recurrences

Lecture 05

Quicksort, Randomization, and Lower Bounds

Lecture 06

Heaps, Heapsort, and Priority Queues

Lecture 07

Greedy Algorithms

Lecture 08

Huffman Coding

Lecture 09

Graphs, BFS, and DFS

Lecture 10

Topological Sort & Midterm Review

Lecture 11

Minimum Spanning Trees

Lecture 12

Shortest Paths (Dijkstra)

Lecture 13

Shortest Paths: Bellman-Ford & Floyd-Warshall

Lecture 14

Introduction to Dynamic Programming

Lecture 15

Dynamic Programming: Classic Problems & Patterns

Lecture 16

Introduction to Complexity Theory

Lecture 17

NP-Completeness & Reductions

Lecture 18

Advanced NP-Completeness & Reductions

Lecture 19

Course Review

Course Resources

๐Ÿ“Š

Algorithm Visualizations

Interactive visualizations for 33+ algorithms including sorting, graphs, dynamic programming, and more.

Open Visualizations โ†’