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.
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.
A listing of course staff is available here .
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: