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 .

Course Structure

CS135 has a number of components that reinforce each other:

  • Lectures are held twice per week by the instructor(s). This material is also available in the Study Modules for those who prefer independent study.
  • Tutorials are held once per week, generally by an Instructional Apprentice. These are optional but highly recommended for everyone averaging less than 80% on their assignments.
  • Assignments are due (usually) weekly and are to be done individually.
  • There is a midterm exam and a final exam.

In addition, there are office hours held throughout the term.

Course Staff

A listing of course staff is available here .

Getting Help

Students can meet with course staff to get help, i.e., to discuss course material, get help with difficult concepts, and problem solve their assigned work. Help is available in a variety of forms. See the Help section for more.

Coursework and Assessment

Marks for the course fall into three broad areas:

  1. Assignments: due weekly. More details are in the Assessments section.
  2. Exams: There is a midterm exam and a final exam. Together, they are worth about 65% of your mark.
  3. Participation: Self-check exercises in class to give quick feedback on your understanding. More details here .

  1. Other introductory CS courses are CS105 (GBDA, Fine Arts and others), CS114 (Science and others), CS115 (Math and others), CS137 (Software Engineering) and CS145 (Math and others). ↩︎