This is an open archive of study materrial from my being a Waterloo and Laurier CS/BBA student. If you find it useful and want me to endure more pain in 1B, consider sending me a coffee bubble tea:


I make no guarantees that my work is remotely close to correct. Frankly, it’s more likely that it’s not. Please let me know if you find a mistake though! Or, in the spirit of open source, make a pull request fixing it.

These are published under information and belief that they are permitted by relevant faculty, please contact me if they are not and I will take them down.

Unless otherwise specified, all content here is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (CC-BY-SA 4.0). This means you can do whatever you want with it, provided you (1) give credit and (2) also release your work openly. Non-free study resources behind hard paywalls suck. Learning is painful and agonizing enough as it is.

Table of Contents

Computer Science

CS 135 (F2020) Designing Functional Programs

I don’t implement the full design recipe in exercises, for obvious reasons (I’m lazy).

File Complete? Notes
Module 11 Exercises :white_check_mark:  
Module 12 Exercises :white_check_mark:  
Module 13 Exercises :white_check_mark:  
Module 14 Exercises :white_check_mark:  
Module 15 Exercises :white_check_mark:  
Module 16 Exercises :white_check_mark:  


ECON 120 (F2020) Introduction to Microeconomics

No “practice”, but figured this is a nice place to host my cheat sheets. They are created on Figma, which (once I figure out how to use the free education plan) can be found here.

Unit 1 Cheat Sheet
Unit 2 Cheat Sheet
Unit 3 Cheat Sheet
Unit 4 Cheat Sheet
Unit 5 Cheat Sheet
Exam Cheat Sheet


MATH 135 (F2020) Algebra for Honours Mathematics

File Complete? Notes
Extra Practice 1 :white_check_mark:  
Extra Practice 2 :white_check_mark:  
Extra Practice 3 :white_check_mark:  
Extra Practice 4 :black_large_square: Missing C01 and C02
Extra Practice 5 :white_check_mark:  
Extra Practice 6 :black_large_square: Missing C03/05/06. RP09 by sooshi.
Extra Practice 7 :black_large_square: Missing C01
Extra Practice 8 :white_check_mark:  
Extra Practice 9 :white_check_mark:  
Extra Practice 10 :black_large_square: Missing C02. RP10 by sooshi.
Extra Practice 11 :black_large_square: Missing C01
Fall 2018 Midterm :white_check_mark:  
Fall 2019 Midterm :white_check_mark:  
Winter 2020 Midterm :white_check_mark:  
Winter 2020 Final :white_check_mark:  

MATH 137 (F2020) Calculus I for Honours Mathematics

File Complete? Notes
Practice Assignment 1 :white_check_mark:  
Practice Assignment 2 :white_check_mark:  
Practice Assignment 3 :white_check_mark:  
Practice Assignment 4 :white_check_mark:  
Practice Assignment 5 :white_check_mark:  
Practice Assignment MT :white_check_mark: Posted as Practice AssignMT on LEARN
Practice Assignment 6 :white_check_mark:  
Practice Assignment 7 :white_check_mark:  
Practice Assignment 8 :white_check_mark:  
Practice Assignment 9 :white_check_mark:  
Practice Assignment 10 :white_check_mark:  
Practice Assignment FE :white_check_mark:  
Practice Midterm 1 :white_check_mark: Posted as midterm_practice on LEARN
Practice Final F2019 :white_check_mark:  

MATH 138 (W2021) Calculus II for Honours Mathematics

File Complete? Notes
Practice Assignment 1 :white_check_mark:  

MATH 146 (W1989) Linear Algebra I (Advanced)

I found an old copy of my father’s Linear Algebra, 2nd edition by Hoffman and Kunze from when he was at Waterloo (and had the guts to take 14x courses). I have no idea if anyone at all would find these useful, but here are my solutions so far. Note that I use the notation from the book, which might hurt when MATH 136 starts.


Because it’s motivating or something, here’s a list of all of my mistakes. Hopefully it makes you feel better about yours. Thanks to everyone on the list who’ve helped me make this resource better for everyone :)

Errata corrige

  1. MATH135/EP04/RP04 Messed up basic arithmetic (Roy)
  2. MATH135/EP03/RP09 Rewrote completely incomprehensible proof (Gabriel)
  3. MATH135/EP03/RP05 Proved a there exists statement by exhausting the domain (Angela)
  4. MATH135/EP06/RP05 Got the divides relation backwards for an incoherent proof (Quan)
  5. MATH135/EP11/RP03(a) Forgot the quadratic formula for a moment (Caitlin)
  6. MATH135/EP08/RP05 Totally forgot a question entirely (Javin)
  7. MATH135/EP11/RP01 Obviously, 2 + 1 = -1 (sooshi)
  8. MATH135/EP10/RP15(b) Overcomplicated proof when it follows almost immediately from the previous question (sooshi)
  9. ECON120/Final (v1.0) Deadweight loss of monopoly is between MC and demand, not price and demand (Jimmy Zhan)
  10. ECON120/Final (v1.1) Wrong colour on tarriff supply and demand curves


Did you find a mistake? Reach out by filing an issue on GitHub or by one of email, Facebook, Instagram, and Discord (@retrocraft#6259).