CS 145: Designing Functional Programs (Advanced Version)

For Prospective Students

What is the difference between CS 145 and CS 135?

CS 145 is an advanced-level 1A Faculty of Mathematics core course, like Math 145 and Math 147. It is aimed at the top students in the Faculty of Mathematics. It covers the concepts that CS 135 does, but in a different order and at a more rapid pace, using more abstractions and fewer (usually different) examples, and taking more care to illustrate connections between CS and mathematics. It also introduces a number of enrichment topics that are not covered in CS 135.

What do I need in order to take CS 145?

The main qualifications for CS 145 are ability to reason and think abstractly, and enthusiasm for learning.

Good English reading and listening comprehension skills, and the ability to take notes, are also important.

Why should I take CS 145 if it is not required?

You should take it if you enjoy problem-solving and challenges, if you prefer being pointed in the right direction to being led in the right direction, and if you can take initiative in learning instead of waiting to be told what to do.

Will a CS 145 credit give me any advantage in the future?

A mark of 70 or higher in CS 145 enables you to take CS 146 (other students, including those who have completed CS 135 with an excellent record, require instructor consent for CS 146). But taking CS 145 and CS 146 will not allow you to take other courses earlier than if you had taken CS 135 and CS 136. It is best to think of CS 145 and CS 146 as enrichment opportunities rather than as vehicles for more rapid advancement.

What if I am not a CS major?

In the past, a significant fraction of the CS 145 class (sometimes more than half) have not been CS majors. Good students in other majors (even outside the Faculty of Mathematics) can benefit from a more mathematical treatment of this material.

How will I know that CS 145 is right for me?

This is tricky, because some students will have the right qualities and not realize it, while others will think they do but don't.

One indicator is good marks in all high school courses, not just math and science. Unfortunately, grading standards vary by teacher and by school, and high marks are not necessarily an indicator of ability. Some students, as Paul Lockhart says, are "just very good at following directions". Low marks could also be due to poor assessment, inadequate motivation, or resentment of makework.

Standardized tests and nationwide math contests offer more consistency, but are sometimes too based on the rote application of technique or on prior knowledge of the class of problems (such as can be gained by coaching).

Women reading this page should give special consideration to taking CS 145. The percentage of women choosing to study CS has declined in recent years due to a host of discouraging factors, and this trend is echoed in the distribution of women among CS 145, CS 135, and CS 115. It is not that women can not or should not study CS; it is that they have chosen to spend as little time on it as possible. In the past, women taking CS 145 have expressed doubts about their abilities to the instructor, even while performing at a level at or above those of their male classmates (who tend not to express such doubts, even though some of them probably should). We will take particular care in CS 145 to try to compensate for these discouragements and to foster an inclusive and welcoming atmosphere.

Do I need prior experience in programming to take CS 145?

No. In fact, prior experience can be a drawback if it closes your mind to new ways of doing things. CS 145 is unlike anything you will have seen in high school. The following course, CS 146, moves towards more conventional notions of computing, but it does so with the perspectives and skills gained in CS 145. You should read this brief note for students with prior computing experience.

How do I get into CS 145?

Pre-enrollment for Math core courses takes place in the summer. At that time, students who score above a certain threshold on the Euclid math contest (81 for fall 2021) or who have earned 58 in the senior Canadian Computing Competition (CCC) may pre-enroll themselves into CS 145 (though, as a courtesy to the instructor, it would be nice if such students could provide the information listed below). Other students require instructor consent to take CS 145, and should pre-enroll in CS 135 pending a decision. Both sets of students should read through this whole Web page carefully.

To apply for instructor consent, please e-mail the instructor (see the Personnel page for details) with the following information, as soon as possible:

  • Your full name and UW student number.
  • Your Grade 11 and 12 high school marks. This does not have to be an official transcript.
  • Your score on the Euclid contest, CCC, and other high-school academic contests you may have written.
  • Information about extracurricular activities and interests as you might have provided on your AIF (Admission Information Form) as part of your application to the Faculty of Mathematics.
  • Any other information that you think may be pertinent to your case.

If you wish to ask any questions regarding your particular situation, please e-mail the instructor.

It is best to apply early so that you can be transferred into CS 145 before the second phase of pre-enrollment (for elective courses) later in the summer. Transfers can be effected later, but become more difficult.

What if I start in CS 145 but decide it is not for me?

You can transfer from CS 145 to CS 135 at any time up to the end of the sixth week of classes. The submission/grading mechanisms and marking rubrics are different in CS 135, so there will be more work for you to do to catch up after the transfer. This is best done, if you are going to do it, as soon as possible.

What if I start in CS 135 and decide it is too easy and want to switch into CS 145?

CS 135 deliberately starts off slowly and carefully, and ramps up later in the term; CS 145 starts off more rapidly, in part to give students enough information to make up their minds about it, and in part because the first midterm is scheduled after only three weeks of lecture. The transfer is thus difficult, but it is possible (if there is room); the earlier the better.


Last modified on Friday, 11 June 2021, at 19:00 hours.