ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
172.44k stars 21.77k forks source link

RFC: Replace Software Engineering:Introuction and Udacity's Software Architecture & Design with Coursera's Software Design and Architecture Specialization #933

Closed riceeatingmachine closed 3 years ago

riceeatingmachine commented 3 years ago

Problem and Background:

  1. Software Engineering: Introduction requires payment to access and isn't a particularly high quality course.
  2. Udacity's Software Architecture & Design is a pretty terrible course from the reviews that I have seen here. To quote @spamegg1 "This was quite atrocious"
  3. UBC's Software Construction: Object-Oriented Design and Software Construction: Data Abstraction were removed from the syllabus for being low quality but no suitable replacements were made to cover the curriculum.
  4. UBC's Software Development Capstone Project costs $300 has terrible reviews (see: https://www.classcentral.com/course/edx-software-development-capstone-project-8198)

Proposal:

Replace the above-mentioned courses with Software Design and Architecture Specialization by Kenny Wong on Coursera.

The specialization has 4 courses:

1. Object-Oriented Design (4.7 stars)

"This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML)."

This course covers java, UML, and software design material - and substitutes for the deleted Software Construction courses.

2. Design Patterns (4.7 stars)

"This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, you will gain a foundation for more complex software applications. Finally, you will identify problematic software designs by referencing a catalog of code smells."

This course curriculum plays nicely with the How to Code courses and also improves Core Programming with design patterns (material that should be covered by Software Engineering: Introduction).

3. Software Architecture (4.5 stars)

"The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development."

This seems like the material covered by Software Engineering: Introduction.

4. Service-Oriented Architecture (4.5 stars)

"Based on an understanding of architectural styles, you will review architectures for web applications, then explore the basics of Service-Oriented Architecture (SOA) in two approaches: Web Services (WS*) and Representational State Transfer (REST) architecture. "

Short 10 hour course that goes into web development.

All 4 courses have capstone projects in the end which combined can also substitute the UBC $300 Capstone Project

Note: I have not yet taken these courses, but I plan to. I'm making this RFC because the material looks largely similar to the courses we have that are considered to be low quality (2 of which were removed without replacement for being terrible) and the courses mentioned have lots of great reviews.

Duration:

Until September 10th, 2021 (1 Month)

waciumawanjohi commented 3 years ago

Interesting courses! There are a lot of moving pieces to this RFC, I'll try to separate them out.

Context

Software Construction: Object-Oriented Design and Software Construction: Data Abstraction were removed.

Here is the RFC that removed those courses. In that RFC I opined that these courses were redundant and did not need replacing. I don't think we need to evaluate any course on the basis of whether they will replace these two removed courses.

Udacity's Software Architecture & Design is a pretty terrible course from the reviews that I have seen here

This is a GATech OMSCS course, which means we have access to many in depth reviews of the course. The value that students find in the course is in the group projects that GATech organizes for enrolled masters students. The lectures are panned in most every review. As we cannot access the value of the course, I think we should remove it.

Removal

This leaves us analyzing two courses for potential removal: Software Engineering: Introduction and Software Development Capstone Project. These have been discussed before, in an RFC here.

These courses are meant to meet the Software Engineering requirements of the CS2013. Those are discussed here.

Software Engineering: Introduction

Software Engineering: Introduction tackles a fair bit of these topics. Here are the topics from its syllabus:

I do not see similar coverage of these topics in the proposed courses.

On course quality, we have two reviews from Class Central. One positive review here. The second review comes as part of the Capstone course review here where the reviewer mentions the course. While this second reviewer clearly found many issues with the tests in the course (which is not a concern for a student auditing the course), they allow "Generally speaking, I thought the material was interesting enough (and certainly relevant)."

The RFC states that the course requires payment to access. I do not believe this is the case. All edX courses allow free audit access for a set period of time (generally a few months). Anecdotally, I appear to have started this course years ago and I still have access, suggesting that student may retain long term access to the course.

I don't see evidence that we should remove this course, nor that we have identified sufficient resource to replace the course.

Software Development Capstone Project

UBC's Software Development Capstone Project costs $300 has terrible reviews

It does. Those reviews are scorching. There is little indication that the course lives up to its promise. I support removing this course.

Addition

There are four courses suggested for addition to the curriculum. Looking at the descriptions, it seems that they all fall into the CS2013 topic Software Engineering/Software design. In the Software Engineering knowledge area, Software Design is the topic with the most expected learning hours. It would make sense to add more coverage of those topics to the 2 weeks dedicated by Software Engineering: Introduction.

The first 3 courses seem to align well with the CS2013. I would not include the fourth course. I do not see "Service-Oriented Architecture (SOA) in two approaches: Web Services (WS*) and Representational State Transfer (REST)" included in the curricular guidelines.

tl;dr

Alaharon123 commented 3 years ago

Anecdotally, I appear to have started this course years ago and I still have access, suggesting that student may retain long term access to the course.

edX has changed its policies since you took the course. You are grandfathered in and still have access, but people starting now would only have whatever access for that couple months

aayushsinha0706 commented 3 years ago

edX has changed its policies since you took the course. You are grandfathered in and still have access, but people starting now would only have whatever access for that couple months

Screenshot_20210820-033520.png

Edx mentioned that they will keep existing free audit tracks

waciumawanjohi commented 3 years ago

Closed by PR #945