Skip to content

CMPUT 174: Introduction to the Foundations of Computation I

At a glance

  • Units: 3
  • Prerequisites: Math 30, 30-1, or 30-2.
  • Credit exclusions: Credit cannot be obtained for both CMPUT 174 and CMPUT 274. Credit cannot be obtained for both CMPUT 174 and ENCMP 100.
  • Offered: Now: Fall 2026; Scheduled: Winter 2027
  • Difficulty: Easy-Medium
  • Workload: Moderate
  • Languages and tools: Python

CMPUT 174 and CMPUT 175 use a problem-driven approach to introduce the fundamental ideas of Computing Science. Emphasis is on the underlying process behind the solution, independent of programming language or style. Basic notions of state, control flow, data structures, recursion, modularization, and testing are introduced through solving simple problems in a variety of domains such as text analysis, map navigation, game search, simulation, and cryptography. Students learn to program by reading and modifying existing programs as well as writing new ones. No prior programming experience is necessary.

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.

First-year Python course. Variables, control flow, functions, recursion, basic data structures. The pace is manageable for students who engage consistently, but students who miss lectures and try to catch up before exams frequently struggle; programming doesn't work that way.

Instructor notes: - Osmar Zaiane: interactive lectures with props and in-class questions. Expect frequent assessments (3-4 per week in past offerings), which keeps you on pace but adds up. - Joerg Sander: works through problems with the class rather than presenting finished solutions; students without prior experience have found this approachable.

Student tips: - Do your labs independently. Students who collaborate too closely or use AI on labs fail to build the actual skill and later struggle. - If you have prior Python experience, 174 might feel slow. Don't coast. - The jump from 174 to 175 is real. Don't let an easy 174 make you complacent.