Skip to content

CMPUT 303: Algorithmics in Practice

At a glance

  • Units: 3
  • Prerequisites: CMPUT 201 or 275, and 204.
  • Credit exclusions: Credit cannot be obtained for both CMPUT 303 and CMPUT 403.
  • Offered: Now: Fall 2026
  • Languages and tools: C++ (lectures), any Open Kattis language

This course is focused on algorithmic problems, where a solution involves properly understanding a written description, designing an efficient algorithm to solve the problem, and then correctly implementing the solution. Students will use previous knowledge in algorithms, data structures, and mathematical reasoning to solve problems in addition to learning new algorithms and data structures. Lectures are shared with CMPUT 403.

Official catalogue entry · Course website · facts synced 2026-10-01

What It Covers

303 shares lectures with CMPUT 403 and was created as the more accessible version for students without a programming contest background. Each week covers one topic (dynamic programming, graph algorithms, and so on), and you solve weekly problem sets of 3-4 problems on a Kattis judge: a problem only counts if it passes every hidden test case. Lecture code is in C++, but you can submit in any language Open Kattis supports (Python is often too slow for the tighter problems). In Zachary Friggstad's offerings, your grade comes from the weekly sets plus an open pool of contest-style problems; there's no project. (instructor's 303/403 info page)

What Students Say

Nobody has reviewed this course yet. If you've taken it, add a review (no git needed).