A 1st year Guide to Computer Science
At the
University of Waterloo

➪ CS 135

Quick Facts:
Predecessor None.
Next-in-line CS 136
Assignments About 10 in total. Total worth: 20% (I think). ALL 10 assignments used for final grade.
Midterms and Final Yes and yes. Midterm worth more than it did in CS 136.
Professor Recommendations Dave Tompkins. Mind you, he's incredibly popular, so you might have to fight for spots in his section.
Okay, so even though I didn't score as well as I'd hoped in this class, I actually found it to be pretty interesting. Tbh, if I were to rate all my 1A courses in terms of how interesting they were, this would top the list. Firstly, because it introduces you to a different programming paradigm. And secondly, well because, I just liked the assignments quite a bit. They were challenging, absolutely, but fun nevertheless. And the most important reason of all, it forces you to become well acquainted with one of the most dreaded concepts in 1st year i.e recursion. You will live and breathe recursion.

People often ask how to prepare themselves for this course and IMO, you don't really need to prepare for it in any way. They give you a pretty solid introduction. Initially, it might be a bit of a struggle, but nothing too unsurmountable. And I'd also heard of how it's difficult to wrap your head around DrRacket if you've already been working with imperative languages (Java, C++ etc). I didn't find that to be true, despite the fact that I'd been working with Java for quite a while. But that might differ from person to person. Overall, a pretty enjoyable course.

Fair warning: Keep up with the assignments. You may be able to survive without doing the assignments in your other courses, but survival in CS 135 will be next to impossible without completing the assignments. Plus, if you manage to complete all 10, that's roughly 20% of your grade guaranteed.