uwloo

CS 247Software Engineering Principles

Units
0.50
Faculty
Mathematics
Subject
Computer Science

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. S27

Ran in 2 of the last 7 terms. Winter 2027: not on the schedule. Spring 2027: schedule not out yet.

Systematic methods for designing, coding, testing, and documenting medium-sized programs. Major topics include abstraction, modularity, software modelling, object-oriented programming and design, generic programming, testing and debugging.

Prerequisites

  • Complete all of the following
    • Must have completed at least 1 of the following:
      • CS241 - Foundations of Sequential Programs (0.50)
      • CS241E - Foundations of Sequential Programs (Enriched) (0.50)
    • Enrolled in H-Software Engineering

Antirequisites

  • Complete all of the following
    • Not completed nor concurrently enrolled in any of the following:
      • CS246 - Object-Oriented Software Development (0.50)
      • CS246E - Object-Oriented Software Development (Enriched) (0.50)
      • MSE342 - Principles of Software Engineering (0.50)
      • SYDE322 - Software Design (0.50)
    • Not completed any of the following:

Leads to

Resources

Around the web

Found by uwloo’s link finder, which checks that each page names CS 247.

Suggest a resource.

Reviewed on UW Flow

44% liked it64% easy54% useful

From 229 ratings and 39 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.

  • Useful course if you love outdated patterns and ambiguous assignments.

    Jun 2016 · didn’t like it · 4 found this helpfulOn UW FlowRemove this

  • Now I can pass C++ interviews. TA was a menace

    Aug 2022 · liked it · 2 found this helpfulOn UW FlowRemove this

  • It was a complete joke of a course. The assignments and professor made it terrible. The assignments took over 48 hours of work just because it was repetitive, mundane, unnecessary code. Have fun implementing literally every data structure you use again. Apparently we need to know how to implement a linked list again, even though we did it so often in CS 138.
    Also have fun failing secret tests because of memory leaks, even though the memory leaks are 100% located in their test harness. I compared my executable to the sample executable they give to test your output against and my executable had half of the memory leaks. But you won't know that you'll failed secret tests until after the…

    May 2017 · didn’t like it · 2 found this helpfulOn UW FlowRemove this

  • Honestly the driest course ever, with the lectures focusing too much on C++ design and the assignments are horrendously long and unnecessarily complicated. There was absolutely no need to have the assignments be so repetitive, and no reason for the specs to be so ambiguous. Just felt like no one cared about the course -- marking was rather harsh and opinionated, too.

    Jun 2016 · didn’t like it · 2 found this helpfulOn UW FlowRemove this

  • Great course, interesting and useful coverage of C++ and design patterns.

    Aug 2022 · liked it · 1 found this helpfulOn UW FlowRemove this

Discussed on r/uwaterloo

41 posts and comments in 32 threads mention CS 247, August 2012 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.

Spring 2023

What are your core courses? 8 points, 11 comments

“Basically title - What are several courses that you think really define your program? Any thoughts on them, and how they went? Looking forward to the discussion (ノ◕ヮ◕)ノ\:・゚✧”

u/1000Ditto: “Might as well take a stab at my own discussion post: MSCI 342 (SWE | CS247 equiv) MSCI 253 (Stats 2 | STAT 231+STAT 332 equiv) MSCI 431 (Stochastics| STAT 333 equiv) MSCI 332 (opti despair) MSCI 334/434 (operations, inventory control, scm)”

View on RedditRemove this

Spring 2022

Winter 2022

Fall 2021

[deleted by user] 33 points, 14 comments

u/tendstofortytwo: “Yes, and yes.”

u/ffrosteh: “… Software Development CS 246E Object-Oriented Software Development (Enriched) CS 247 Software Abstraction and Specification CS 251 Computer Organization and Design CS 330 Management Information Systems CS 335 Computational Methods in Business and Finance CS 338 Computer …”

View on RedditRemove this

Spring 2021

I failed CS246 twice will I be kicked out of my program in CS?Can I reenroll for SE? 1 point, 7 comments

“I tried passing CS246 this winter semester but you need a 70% average in overall from all assignments to pass the course so I couldn't make it. …”

u/tendstofortytwo: “Anticipating complex inputs and preparing for edge cases is very much a software engineering thing. imo CS246 is the most SE-like class in second year. …”

u/RewardingGoblin: “they take CS247 which is functionally equivalent”

View on RedditRemove this

Winter 2020

CS 246 vs CS 247 4 points, 7 comments

u/fabulizer: “what are the differences?”

u/sexxiAndIKnowIt: “As far as I know CS247 is the CS246 alternative that SE students take. Since SE students have taken a C++ course (CS138) before, 247 barely touched on inheritance and writing C++ whiereas you learn C++ from scratch in 246. …”

View on RedditRemove this

Spring 2019

What is the difference between CS and Software Eng? 34 points, 19 comments

“I feel like I'm gonna get reamed for this since it seems most of you are CS, but I legit don't know. I'm just a Biology boy who knows nothing about computers”

u/pahgawk: “I know you're in biology and not actively deciding which to take between the two, but in case anyone reading this is in that situation, here's my SE graduate perspective on what I think the …”

u/pahgawk: “… There was a lot of lecture overlap with CS 247 content due to a misunderstanding between faculty that is now being changed. …”

View on RedditRemove this

Winter 2019

ECE alternative to CS 246? 8 points, 11 comments

“I'm trying to take either CS 246 or some course that is an anti req to it. What courses can ECE take that are similar to CS 246?”

u/marmoshet: “ECE 150 and ECE 250 together should cover the majority of CS 246. Otherwise you can try to get into CS 247, MSCI 342, or SYDE 322.”

View on RedditRemove this

Fall 2018

Workload in hrs per week for cs241 and cs241e? 8 points, 26 comments

u/Pinkeston: “… Trying to see if the higher workload justifies that If you could also comment your grades in cs136/cs138/cs246/cs247 along with how long you spent on the assignments I would greatly appreciate that so I can estimate much more accurately how long it would take for me to do them …”

View on RedditRemove this

Cs246 vs Cs247 2 points, 8 comments

u/unaverageN: “I get that SE students take one and CS the other. What are the differences in content learned? Is one better run? Everyone on uwflow seems to say cs247 was pretty waste, but says cs246 is amazing and super helpful. Looking for more insight in the differences”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar