RFC: Revert back to original software engineering course
Problem:
- OSSU does not having a course to cover required topic X from our curricular guidelines.
- OSSU recommends course X to teach a topic, but there exists a higher quality course that covers the same material.
Duration: 15 days should be enough, since we are switching back to an old course and #1265 has been open for 2 weeks already.
Background: The original software engineering course from UBC was not available, and hence was temporarily switched to a Coursera course without any discussion. The original course is now once again available, so we should switch back to it.
The ratings don't matter much here. The IBM course is a beginner-level course.
It does not belong where it is currently listed in OSSU. I believe it was selected mostly on the basis of its name.
The UBC course on the other hand is the last course in ther software development micromaster on Edx, is intended for a much more advanced audience, and is a better fit in that position in OSSU.
Proposal:
- Merge #1265
Alternatives:
- Find another alternative course
The evidence presented that this course is not rigorous enough is a single description on the course website that the course is a beginner course. Before changing courses, its prudent to do a more full comparison of them.
I just finished the original UBCx course on Software Engineering and can confirm that its contents are much different from Coursera's Software Engineering course.
UDCx Software Engineering:
- Agile and similar process methodologies
- Software specifications & requirements engineering
- Testing pipelines, testability, white & black box testing
- High-level object-oriented paradigms
- Applied object-oriented paradigms (appears to overlap with OSSU course Design Patterns
- Program construction and maintenance concepts such as refactoring, code smells, static analysis
IBM Software Engineering:
- Software Engineering introduction & methodologies
- Introduction to concepts in software development (cloud, front-end, teamwork, software stacks,...)
- Programming 101
- A little design, deployment and object-oriented design patterns
- "Job opportunities", a.k.a. practical stuff on how to get a software engineering job
Comparison: UDCx is intended to be a practical software engineering course for students who have already followed several programming courses. It teaches concepts and skills that help bridge the gap between "I know how to do programming assignments" and "I know how to program as part of a team in a real-world environment".
IBM Software Engineering is intended as an introduction before you even get to the programming. It matches IBM's curriculum goals: starting with practical job-related stuff before getting to the technical aspects. The course is very introductory and includes video's on "what is software" and "what is branching and looping in programming".
While some overlap exists, integrating IBM's course properly in the OSSU curriculum would mean putting it all the way in front by way of introduction. Such an introduction already exists in the courses "Introduction to Programming" and "Introduction to Computer Science". The IBM curriculum could be more aptly compared to the curriculum of a bootcamp or an applied programming degree - as such, it does not match OSSU's goals of having a curriculum that matches a university-level computer science degree.
It is only possible to compare course which are at least similar in some aspect. The two courses are not comparable in any way. They are just two different course teaching entirely different things. From what I can tell, the IBM course was chosen purely on the basis of its name.
Just saw @Pmanen's comment, as I was typing this. It summarizes the situation pretty accurately.
To highlight a point from his comment, the third week in the IBM course involve learning if/else statements, and writing hello world programs. We don't want that in the last core OSSU course involving programming.
IBM Software Engineering is intended as an introduction before you even get to the programming.
RFC period has elapsed. Comments have been addressed and all commenters have indicated approval. RFC is accepted.