Appearance
SENG at UoG Is a Scam
October 16, 2022: I've added an update to my situation and fixed some typos. If you want to see the previous state of the post, please see the commit.
December 27, 2022: Removed a header and changed one word from the paragraph above when I migrated my blogs, nothing substantial was changed.
After a year of the Software Engineering (SENG) program at the University of Guelph, I can confidently say that the program offers no value over the Computer Science (CS) program if you have Co-op. SENG is a poor attempt at trying to mimic real-world development by an institution that has no connection in reality.
To copycat Voltaire
The Software Engineering program is not about software, nor about engineering and barely a sensible program
I hope in this post, I can offer some information to those who are considering the SENG program to not waste a year of time like me.
SENG is Not Engineering
SENG at UoG is a strange program. It is not an accredited engineering program in Ontario. The title of Engineers
is protected in Ontario, one must have a P.Eng degree and maintain a membership to Professional Engineers Ontario (PEO) to legally qualify as an Engineer
. Both the SENG and CS program at Guelph are offered as B.Comp (Bachelor of Computing), which means graduates cannot be legally called engineers.
The mess of calling software developers/programmers as software engineers can be partially blamed on the US. While the title of Professional Engineer is protected in the US, true to the US obsession of complicated laws, countless exception and scenarios made software companies calling their employees who program as software engineers a common occurrence.
To be clear, I don't think not being accredited is a disadvantage. P.Eng degrees require courses in general science like physics, chemistry, and additional courses that are more beneficial to actual engineers. Real engineers have code of ethics and maintain professionalism, in the software industry, we have neither. I think not being accredited at UoG as an advantage, it allows more flexibility for students to take more courses directly related to software development. The real problem is the industry (even in Canada) still uses the title of software engineers.
Why does any of this matter? Because there are accredited software engineering programs in Ontario, such as the one offered by the University of Ottawa. As stated above, I don't think it's better since you are forced to take courses in physics, general digital circuits, chemistry, ethics, and technical writing[1]. The issue of the SENG program at UoG is its name, it's not engineering, hence it should stop calling it as such.
SENG vs. CS
There is little difference between the SENG and CS programs at Guelph. SENG students are required to take 5 software design courses while they are not available to CS students. And more courses in theoretical computing are required for CS students, however, they provide crucial value and should not be missed regardless of your program.
Software Design Courses are Worthless
Software design courses might sound awesome at first. After all, for large systems, the architecture has profound effects on its correctness and efficiency. Most new progress in software comes from our new ways of thinking about software rather than theoretical computing. However, just like the name SENG, the name of software design is a lie. In no software design courses do you spend the majority of your time understanding architecture, instead, you learn about the software development process and work in teams pretending to be a professional by working on a project.
There are many facets where this is torturing. First, the courses go painfully slow, from one upper-year student
The first 3 design courses can be reduced down to 1.5.
Materials are repeated many times during the courses, and it is then presented again in the course System Analysis and Design in Applications (CIS*3750) and Software Engineering (CIS*3760), which both CS and SENG students are required to take. In total, you wasted about 2 years of your life learning simple concepts just to do it again.
Second, the teams are assigned in advance by chance. I do not know any programmer who likes non-deterministic events that they have zero control over. In the real world, if you're not adequate for a team, you will not pass the technical interview. In the university land, you are stuck with the team. The only thing you can do is pray to your preferred deity for RNG to favour you.
Third, marking is highly subjective and nonsensical. If you ever hated writing opinion-based essays in high school because we all know not opinions are equal, you will find yourself right at home since you will have to write lots of useless technical documents that are not technical with lots of subjective marking.
Only Co-op matters
In earlier, I stated that you should not consider SENG if you have Co-op, because all the things you would ever hope to learn in software design courses can be learned in Co-op. Compared to software design courses, you work on real projects with real implications with teams that have similar skill levels as you.
If you don't have Co-op, it can be argued that SENG has some value to you since you get a taste of project development along with the possibility of putting those projects on your resume. However, I would still argue it's a waste of time.
Nobody cares about your toy project in legacy C or Python that isn't related to production work. Programmers are expected to learn new languages and frameworks on their own and write non-trivial projects to practice those. It is simply a reality of the industry. If you still need to work on personal projects and learn technologies to help with that, what is the value of software design courses?
Final Remark
One of my friends said that software design courses should be called working with teams; I agree. Ask yourself, would you consider SENG at all if they are called that? That should be your answer to is SENG is a waste of time or not.
Personal Note
I will attempt to transfer to CS, while there is a chance of losing Co-op, I will be informed and offered a choice to maintain in SENG if I have to lose Co-Op.
Update
I was able to transfer to CS, and I am now in my 3rd year. I am happy with my decision. After a painful second year due to personal reasons, I am now doing my first Co-op term at Interac.
Example taken from the University of Ottawa program. ↩︎