CS135: Designing Functional Programs


CS135 is one of several introductory CS courses1 at University of Waterloo. It is aimed at CS majors and other motivated learners. Previous computing background is not required nor assumed.

CS135 uses a functional programming approach. Functional programming has a lot in common with math you already know: functions. It differs from procedural programming (the approach most often taught in high schools). For example, variables are a common starting point in procedural programming but won’t appear at all in CS135.

The functional approach, simple syntax of the Racket language, and other factors allow CS135 to cover more concepts in depth than is typical of a first CS course while still remaining accessible to students who have not previously programmed a computer.

You may also want to refer to the calendar description and extended course description .

Getting started

If you are a CS135 student, please read the Read Me First page and the syllabus module for more details.

  1. Other introductory CS courses are CS115 and CS145 . ↩︎