uwloo

CS 446Software Design and Architectures

Units
0.50
Faculty
Mathematics
Subject
Computer Science
Cross-listed
ECE 452

When it runs

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

Ran in 6 of the last 7 terms. Winter 2027: scheduled, 3 lecture sections. Spring 2027: schedule not out yet.

Introduces students to the design, implementation, and evolution phases of software development. Software design processes, methods, and notation. Implementation of designs. Evolution of designs and implementations. Management of design activities.

Prerequisites

Antirequisites

  • Not completed nor concurrently enrolled in any of the following:
    • CS430 - Applications Software Engineering (0.50)
    • SE464 - Software Design and Architectures (0.50)

Leads to

No course lists it as a requisite.

Winter 2027 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 00160280 / 75MW 11:30–12:50
LEC 00261870 / 75MW 10:00–11:20
LEC 701236328 / 9999Online or by arrangement

Resources

Around the web

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

Suggest a resource.

Reviewed on UW Flow

62% liked it72% easy68% useful

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

  • All my other courses are steaming garbage, but this prof was just like "go build your android apps" and i was like "☺️"
    The other courses on uwflow *say* they're useful... but I don't think they really *are*. This course was on par for usefulness with a lot of other courses rated 100% useful... so I'm giving it 100% due to the inflation (to be clear, I think everything is equally not-useful).

    Mar 2023 · liked it · 1 found this helpfulOn UW FlowRemove this

  • It's a great course content-wise, but was terribly managed when I took it. Professor was very disorganized & kept changing assignment requirements and deadlines randomly. TAs were useless as well. The course teaches some important concepts like design patterns & architecture styles. However, I think they waste a lot of time on boring stuff and so have to rush through the interesting and important concept. There's one big group project (Android App) that you're building towards throughout the term with 6-7 deliverables every 2-3 weeks. Be sure to pick a solid group, because there's quite a lot of work (~400 hrs). Final was pretty easy.

    Sep 2025 · liked itOn UW FlowRemove this

  • They teach the architectural designs like it's a business course. Memorize a bunch of random information but never apply any of them. They never motivate any real examples for why these architecture patterns are valuable aside from extremely abstract real world examples. You never get into the actual implementation details to actually understand why certain patterns do anything at all. If you enjoy doing business, then this is the perfect course for you. Yap and say a whole lot of nothing to feel like you know something. 20% of your grade comes from creating real-world analogies to the architecture/design patterns you learn, which tells you everything you need to know about this pathetic…

    Jun 2025 · didn’t like itOn UW FlowRemove this

  • The content of this course teaches core design patterns in programming. The content and deliverables are pretty easy in a group setting and the project can be anything (don't make it more complex that it needs to be).
    The exam was also very straightforward with reviewing the slide content being sufficient.
    Side note: I basically did this entire course remotely and showed up just for the 2 presentations and final exam.

    Sep 2024 · liked itOn UW FlowRemove this

  • This course consists of a 6 person term-long Android development project. If you get a good group you can really do well on the project portion of the class, and to be honest even if you don't you can probably pull through with a pretty good mark anyways. Our offering was a flipped format that required us to watch video lectures before class then show up to class and contribute via in-class exercises. This format didn't really work because the in-class exercises were kind of redundant considering we had a whole project we were working on. I rarely attended class, and from what I can tell class attendance was especially low, as you might expect for a project-based course.

    May 2024 · liked itOn UW FlowRemove this

Discussed on r/uwaterloo

138 posts and comments in 120 threads mention CS 446, October 2010 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

Spring 2024

Business Specialization for CS 2 points, 1 comment

u/Miserable-Package-38: “… In my last term, I was supposed to have 3 courses and only 1 CS (CS 446) with 2 electives. Doing the business specialization means I take 2 CS courses (2 out of: 348, 490 and 454) and 2 business courses out of the given selections. Is this a valid trade off? …”

View on RedditRemove this

16GB vs 32 GB RAM for CS 6 points, 30 comments

“Hi, I am an incoming computer science student, and I am looking to buy a new laptop. I am currently debating between two models: that are identical except one is 16GB RAM (currently on sale) and the …”

u/FishRaider: “I'm in second year cs and so far nothing I've done required a laptop with more than 8 gbs of ram (I have 16). The only recommendation I will give is don't buy a gaming laptop. …”

u/Jaffe240: “Some upper year courses are more demanding. I teaching Kotlin/Android in CS 346, and CS 446 uses the same tech stack. 8 GB isn't really enough for building mobile apps; 16 GB is recommended. If you're not taking those courses, you might be ok with 8 GB.”

View on RedditRemove this

Winter 2024

Anyways of getting into mobile development within the school? 1 point, 7 comments

“When it comes to web development or AI/ML, there's a bunch of design teams that are available for people to join and get experience. Is there anything like that for mobile developerment?”

u/nyephe: “… ECE452/CS446/SE464 used to teach mobile development, and I think CS 346 still does There's something called 'progressive web applications' (PWA) which are cross-platform applications that are typically created using a web-based tech stack. …”

View on RedditRemove this

Fall 2023

Spring 2023

Bird CS courses 5 points, 8 comments

“What are the easiest, most brain-dead CS courses offered in summer? Tryna coast this term. I'm looking at CS 492. Seems brain-dead. Can anyone attest?”

u/clean_mint_mouthwash: “… I've heard good things about CS445 & CS446, but I'm taking them now so I can't really say too much -- so far they seem bird though (assuming you have a good group for the projects) If 3xx courses are okay, then 348, 349, 346 are all good options.”

u/Fuzzy-Implement-7230: “How were CS445 and CS446?”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar