Skip to content

CMPUT 204: Algorithms I

At a glance

  • Units: 3
  • Prerequisites: CMPUT 175 or 275, and CMPUT 272; and one of MATH 100, 114, 117, 134, 144, or 154.
  • Offered: Now: Fall 2026; Scheduled: Winter 2027
  • Difficulty: Medium-Hard
  • Workload: Moderate-Heavy

The first of two courses on algorithm design and analysis, with emphasis on fundamentals of searching, sorting, and graph algorithms. Examples include divide and conquer, dynamic programming, greedy methods, backtracking, and local search methods, together with analysis techniques to estimate program efficiency.

Official catalogue entry ยท facts synced 2026-10-01

What Students Say

Imported from the original course reviews page, which mixed student contributions with summarized Reddit discussion. Tips aren't term-stamped yet; if you've taken this course recently, add your experience.

Big-O analysis, sorting, graphs, dynamic programming, greedy algorithms. Mostly pen-and-paper design and proofs rather than programming. This is the material coding interviews draw on most, so take it seriously and revisit it before each interview season.

Instructor notes: - Martin Mueller: text-heavy slides; assignments are considered fair and the course rewards steady work. - Zachary Friggstad: fast-paced lectures, but he'll slow down if asked. Active on the course Discord and has solved Kattis problems live in class.

Student tips: - Do practice problems beyond the assignments. 204 material is best learned by doing, not reading. - If you plan to take competitive programming (CMPUT 403, which requires 204), start building those habits now. - 204 is hard in a different way from 201: abstract, not mechanical. Budget time accordingly.