CS 246Object-Oriented Software Development
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 7 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.
Introduction to object-oriented programming and to tools and techniques for software development. Designing, coding, debugging, testing, and documenting medium-sized programs: reading specifications and designing software to implement them; selecting appropriate data structures and control structures; writing reusable code; reusing existing code; basic performance issues; debuggers; test suites.
Prerequisites
- Complete all of the following
- Complete 1 of the following
- Must have completed the following:
- Earned a minimum grade of 60% in each of the following:
- CS138 - Introduction to Data Abstraction and Implementation (0.50)
- Complete all of the following
- Enrolled in an Honours Mathematics program
- Complete 1 of the following
Antirequisites
- Complete all of the following
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5999 | 77 / 90 | TTh 10:00–11:20 |
| LEC 002 | 6169 | 86 / 90 | TTh 11:30–12:50 |
| LEC 003 | 6536 | 76 / 90 | TTh 14:30–15:50 |
| LEC 004 | 6537 | 68 / 90 | TTh 13:00–14:20 |
| TUT 101 | 6029 | 48 / 60 | W 08:30–09:20 |
| TUT 102 | 6030 | 57 / 60 | W 09:30–10:20 |
| TUT 103 | 6170 | 57 / 60 | W 10:30–11:20 |
| TUT 104 | 6191 | 51 / 60 | W 11:30–12:20 |
| TUT 105 | 5933 | 57 / 60 | W 12:30–13:20 |
| TUT 106 | 6541 | 37 / 60 | W 13:30–14:20 |
| TST 201 | 6543 | 307 / 360 | Nov 10 16:30–18:20 |
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5602 | 0 / 120 | TTh 10:00–11:20 |
| LEC 701 | 2181 | 102 / 9999 | Online or by arrangement |
| TUT 101 | 5603 | 0 / 60 | W 13:30–14:20 |
| TUT 102 | 5839 | 0 / 60 | W 14:30–15:20 |
| TST 201 | 5681 | 0 / 120 | Mar 9 16:30–18:20 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 246.
- ~cs246 Course website · student.cs.uwaterloo.ca Remove
- CS 246 Course notes · jasonhon.com · from Jason Hon’s site, CS webring Remove
- CS246 Course Notes Course notes · jaidenratti.com · from Jaiden Ratti’s site, CS webring Remove
- CS246 Course notes · jaidenratti.com · from Jaiden Ratti’s site, CS webring Remove
- Object-Oriented Software Development Methods of OOP Course notes · plett.dev · from Josiah Plett’s site, CS webring Remove
- CS246 Course notes · github.com · from Jaiden Ratti’s site, CS webring Remove
- CS 246 CN Course notes · app.amolven.com · posted on r/uwaterloo Sep 2024 Remove
- Remove
Course notes, 2 pages app.notion.com · posted on r/uwaterloo Dec 2024
19 more links
- CS 246 Notes Course notes · raphaelkoh.me · posted on r/uwaterloo May 2021 Remove
- CS246 | Anthony Zhang Course notes · anthony-zhang.me · posted on r/uwaterloo Aug 2019 Remove
- CS 246 (Notion page) Course notes · grave-space-21c.notion.site · posted on r/uwaterloo Dec 2024 Remove
- Object oriented programming notes Course notes · github.com · posted on r/uwaterloo Apr 2018 Remove
- Cs 246 Course notes · dzed.me · posted on r/uwaterloo Jun 2016 · gone now; archived copy from Apr 2017 Remove
- CS246: A compilation of my CS 246 notes and practice questions (UWaterloo, Fall 2025) Course notes · Fall 2025 · github.com · by b9nn on GitHub Remove
- CS246_Notes: CS246 course notes from the university of waterloo (Winter 2022) Course notes · Winter 2022 · github.com · by yyuan097 on GitHub Remove
- cs246-spring2019: Course notes for C++ Object-Oriented Programming (CS 246) Spring 2019 at the University… Course notes · Spring 2019 · github.com · by d3an on GitHub Remove
- UW Spring2017 CS246 Notes Course notes · Spring 2017 · github.com · by hardyqr on GitHub Remove
- CS246_Notes: Notes for University of Waterloo Fall 2016 CS246 Class Course notes · Fall 2016 · github.com · by Halooo on GitHub Remove
- CS246-notes: Lecture notes for CS246 of UWaterloo:) Course notes · github.com · by ParthPatel1998 on GitHub Remove
- CS246-Notes: University of Waterloo Object-Oriented Software Development Course notes · github.com · by lilcser on GitHub Remove
- cs246-notes: uwaterloo cs246 notes! Course notes · github.com · by sxnnywu on GitHub Remove
- CS246: CS 246 Notes University of Waterloo Course notes · github.com · by matthewjablack on GitHub Remove
- UW-CS246-Notes: Lecture notes for CS246 - OOP C++ @UWaterloo Course notes · github.com · by dai-yiming on GitHub Remove
- CS 246 Winter 2011 Midterm Questions Past midterm · Winter 2011 · plg.uwaterloo.ca · posted on r/uwaterloo Jul 2017 · gone now; archived copy from May 2016 Remove
- cs246-exam-review: CS246 (Object-Oriented Programming) course exam review notes for University of Waterloo 🎓 Past exam · github.com · by dillionverma on GitHub Remove
- Software Abstraction and Specification (CS246) (Spring 2000) Other · Spring 2000 · cgl.uwaterloo.ca · from Daniel Berry’s site · gone now; archived copy from Mar 2005 Remove
- CS 246 (Notion page) Other · jungle-racer-b83.notion.site · posted on r/uwaterloo Sep 2023 Remove
Reviewed on UW Flow
67% liked it57% easy69% useful
From 872 ratings and 185 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
Start Assignments early.
May 2015 · liked it · 3 found this helpfulOn UW FlowRemove this
Best CS course as of 2B. You'll learn OOP and C++, two of the most coveted skills for programming jobs (you used to learn Linux as well, but I pushed that part to CS 136L, which you hopefully enjoyed). At the end of the course there's a final group project. Make sure you get good groupmates who will put in their share of the work. There's also design stuff for this, which involves UML diagrams and a lot of writing. The way I sorted it with my groupmates was I'll do all the coding and they handle the writing. I'm a neat freak when it comes to coding and I'll document everything extensively and use constants etc, so I found it nice to look back and go "cool, I wrote that in good style." Use…
Jul 2022 · liked it · 2 found this helpfulOn UW FlowRemove this
By far the best CS course up to 2A. The concepts are extremely useful and interesting and the way that the course is structured really helps students to well thanks to the 40% assignments. Midterm (20%) was tricky and many failed or got low 50s but the final (40%) was definitely fair. The course isn't necessarily hard in itself, it's rather the amount of work for the assignments that make it very time-consuming. Take it with Nomair!!
Jan 2018 · liked it · 2 found this helpfulOn UW FlowRemove this
Definitely the hardest course in terms of workload at the point where you have to take it. Nothing is particularly conceptually hard. In fact, before and up to assignment 2, the course is very trivial - don't let that fool you, because the course quickly becomes hectic as the workload exponentially increases and you will probably have to pull at least one all-nighter to keep up with the deadlines. The final project is fun if you and your group have a good sense of time management and absolute hell if you don't. If you're here, though, you probably have to take this course anyway, so just do it. If you put the time in you'll learn a lot.
Midterm was absolutely brutal and filled with trivia,…Sep 2016 · liked it · 2 found this helpfulOn UW FlowRemove this
I can now use smart pointers! And ranged-based for loop! And lambda functions! Wow the world is a whole new place.
Jul 2016 · liked it · 2 found this helpfulOn UW FlowRemove this
Discussed on r/uwaterloo
3,066 posts and comments in 1,928 threads mention CS 246, April 2011 to December 2024. Quoted word for word, newest first; each reply sits under the post and the comment that started its branch. Search r/uwaterloo for newer posts.
Fall 2024
Can't look at numbers the same 141 points, 6 comments
“Watching squid game and all the numbers remind me of course codes. Has anyone else experienced something like this? You see 135 and bam you are back in first year proofs”
u/Surprised-Egg: “I saw player 246 and remembered cs246 LOL glad I'm not alone”
Anyone have experience going from cs115 to cs136? 2 points, 4 comments
“I was talking about going directly from 115 to 136 with one of the ISAs and they said its still a tricky thing to do. Has anyone done this and what are your thoughts on it?”
u/Fun_Advertising_6604: “… Still did cs 246 after, which conlcuded the end of my cs journey :)”
CS 246 any resources online? 9 points, 2 comments
u/Educational-Dish3322: “I need to score really well on final to pass the course :( Any help?”
u/Far_Bookkeeper6488: “https://www.notion.so/CS-246-6633f1e64d8e4dce9c5eeb318af6da23?pvs=4 https://grave-space-21c.notion.site/CS-246-7a97ec0fce9245798ca922f3404240fa?pvs=4 https://student.cs.uwaterloo.ca/cs246/F24/resources.shtml”
Any must-have profs in Math/CS/Stat that one should take a class with, regardless of major? 22 points, 28 comments
u/M4cr0-Ch4n: “For me Math 137 sachin kotecha, math138 zack cramer, cs246 brad lushman”
2B CS course selection 2 points, 3 comments
u/Standard-Lecture-950: “As of now, these are the classes I am enrolled into: \- CS 245, 246, Math 239, Stat 231 and an elective Could someone walk me through how the term would look like if i go ahead with this option? …”
u/iamanaybaid555: “Your best combination would be: • CS 246 (pre-requisite for CS 241 and CS 240) • CS 251 (pre-requisite for CS 350) • MATH 239 (pre-requisite for CS 341) • CS 245 (pre-requisite for CS 240) • One elective Two reasons for not taking 231 with this would be a heavier workload and no …”
CS135 Withdrawing 4 points, 5 comments
“I barely passed the CS135 midterm and I need a 50% in the final exam to pass the course. Is it doable to get a 50% in the final or should I consider withdrawing?”
u/iamanaybaid555: “… If this ever happens to you again while you're doing CS 136, 246, 240, 341; you'll face it with some experience rather than going in blind. …”
cs 246 final 2 points, 1 comment
u/Professional-Sun4686: “how hard is it? easier than midterm? what are averages usually?”
Second year slump? 2A 28 points, 17 comments
u/SpyCommander13: “Relating super heavily to this, I feel like my study habits were strong enough to carry me through first year but 2A is starting to show me the cracks and I’ve realized that my current approach to …”
u/EarningZekrom: “Indeed, my study habits were already badly cracking in 1B, so I switched them up - only to get hit real bad by CS246 in particular lol Hope you figure it out my dude!”
Have you ever failed/barely passed a midterm and still passed the final? 35 points, 38 comments
“Just barely passed the midterm for cs115 and as the content is getting more complex the final is definitely gonna be harder. …”
u/Striking-Setting-560: “47 in midterm. Final grade 92. Cs 246. Greatest comeback I’ve ever had”
u/VolticShaz: “CS246 Mid term - 49% Final Course Mark - 87%”
u/InsaneTensei: “52 on mt, 80 in the final, cs246”
how to succeed in cs246 8 points, 3 comments
u/Ok_Macaroon_8323: “What was your routine to really ingrain the concepts in your head? It's not the worst to understand, but when it comes time to actually apply it I'm completely lost. What are some tips you guys have for doing well in this course? Thanks!!”
CS 246 Midterm tips? 2 points, 2 comments
u/Cloudy_Whale: “I'm genuinely scared”
cs 246 past midterms 3 points, 0 comments
u/Professional-Sun4686: “does anyone have any past midterms for cs 246?”
Check it elsewhere for Fall 2026
- Undergraduate Calendar, 2026–27The official entry
- Requirements for Fall 2026Waterloo’s requisite checker
- Schedule of Classes, Fall 2026Instructors, rooms, live seats
- Quest Class SearchWhere you enrol
- Course outlinesSyllabi from past terms (UW login)
- UW FlowStudent ratings and reviews
- WClassesPast sections back to 2004, and who taught them