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.