// you’re reading...


The spirit of Software Engineering

Software Engineering by <a href='http://www.flickr.com/photos/canadianveggie/123383284/' title='Flickr: Software Engineering'>Canadian Veggie</a>

Software Engineering by Canadian Veggie

While Software Engineering vs. Computer Science does have it’s technical differences, there are also some differences that take place outside of the lecture halls. Since University is as much (if not more) about the experience of attending as the material learned, it might be a good idea to consider the overall package being offered.

The two things I’ve noticed to lack in the Computer Science program are:

The Iron Ring (in Canada)

Software Engineering, being an Engineering program, offers an Iron Ring at graduation. It’s like a degree that one could wear on their hand.

The graduating class’ unity

While Computer Science is generally much more flexible than Software Engineering, this also means that there is less structure. Engineering programs are typically done in rigid “classes” where the bulk of the lectures are attended by the same group of people for the duration of the program. The hardships of the undergrad studies foster a strong bond between the people who manage to make it through.

I was reminded of this spirit last week in Montreal, during CUSEC, when a group of SoftEng students was running through McGill, chanting Waterloo cheers, at 2 in the morning. Good times.

Read more


  1. Posted by Robert B | February 3, 2009, 8:22 pm

    This has been noticed by kids on the math side for quite some time. I certainly knew about it since first year, and it’s one of the token bits of info I use when explaining the difference between the two during campus days.

    I lament the loss of the class cohesion, but I do so enjoy the freedom of choice CS offers as a trade off.

    Reply to comment

  2. Posted by Blaise Alleyne | February 4, 2009, 4:21 am

    Conversely, the rigid structure of an engineering program hardly allows one to minor in English and philosophy, which is why I chose Computer Science at U of T.

    Reply to comment

  3. Posted by Prabhakar Ragde | February 8, 2009, 8:05 pm

    Hmm, Tony. A piece of metal, and chanting.

    Now, since you omitted to mention it, what have they given up for those things?

    Reply to comment

    Tony replied on: February 8th, 2009 at 8:11 pm

    I’m thinking of the flexibility to take really cool and interesting classes (both technical and artsy electives), but since I have mentioned that…

    While Computer Science is generally much more flexible than Software Engineering

    I’m gonna go with: their souls, as Engineering programs kill their students from the inside.

    Reply to comment

  4. Posted by Prabhakar Ragde | February 8, 2009, 8:26 pm

    Heh. A CS program will do that too, if you’re not careful.

    The bonding thing is great, if it works. If you don’t like the tenor of the cohort, or certain people in it… well, you’re stuck with them for eight terms.

    And even when the bonding thing works, I think it encourages a sort of us-versus-them mentality that can be harmful. It’s a closed universe. You don’t get new people dropping in and bringing new viewpoints.

    Reply to comment

  5. Posted by Burcu Dogan | March 13, 2009, 10:36 am

    But in the end of the day, software engineering and computer science have too less in common. CS programs became to large to be offered as a program I think. The whole program is like an introduction to the concept of the main fields in computer science. How could you learn about computer networks in a term? It’s too limited. CS lacks in focus.
    It’d be a lot better to see CS separated into fields like information sciences, computer networks, theory, software engineering, computer graphics, etc.

    Reply to comment

    Tony replied on: March 14th, 2009 at 12:22 am

    Computer Science is separated; at the graduate level. It’s unreasonable to expect kids to know that they might be interested in something like compilers, while still in high school (which might not even offer CS classes).

    Reply to comment

    Ted Avery replied on: March 27th, 2009 at 11:30 pm

    You can get those specializations through similar undergrad programs. I haven’t done much research into it but off-hand I know UOIT and Carleton both have Networking and Security programs, and there are specializations in computer science degrees such as digital media.

    Reply to comment

    Tony replied on: March 29th, 2009 at 1:13 am

    When you say “programs”, do you mean something along the lines of an option, or just a class? I know that Waterloo has a really interesting course in Security; though it would be intriguing to see such material go more in-depth than a single course.

    Reply to comment

    Ted Avery replied on: March 29th, 2009 at 1:23 am

    Like entirely different degrees, not officially computer science. I’m not in computer science, I just happened to stumble across this blog, but I’m in my second year of Information Technology – Networking & Security at UOIT. You get a Bachelor of Information Technology in the end. Here’s the site (it shows networking and security separately right now but they plan to merge the streams for next year): http://businessandit.uoit.ca/EN/main/96618/140839.html

    UOIT’s computer science also allows you to specialize in Digital Media or Digital Forensics: http://www.science.uoit.ca/index.php?option=com_content&task=view&id=44&Itemid=60

    And here is Carleton’s IT offering: http://www2.carleton.ca/admissions/programs/bachelor-of-information-technology/

    And York’s though it didn’t look too in depth to me: http://www.yorku.ca/web/futurestudents/programs/template.asp?id=452

    These are just programs I was looking at when I was trying to choose where to go, but I’m sure there are more, more specialized computer/tech related degrees seem to be popping up all the time.

    Reply to comment

    Tony replied on: March 29th, 2009 at 1:36 am

    “Hacker Research Lab” at UOIT; nice.

    Thx for the links. I should get back to writing summaries of CS programs at Canadian Universities, and this is definitely something worth mentioning.

    Reply to comment

  6. Posted by Nitin Reddy Katkam | August 24, 2009, 2:35 am

    Computer science is a pretty large field that deals with building systems that are tolerant of failure and coming up with more efficient algorithms.

    Software engineering is more about making software development economically viable.

    You should pick the major for what you intend to do after graduating.

    Reply to comment

  7. Posted by David | December 14, 2009, 1:34 am


    I am in grade 12 and I am looking to go to university for Computer Science, but I have recently thought about Software Engineering. I want to be a video game programmer, and I was wondering which program you guys thought would be better suited to an aspiring programmer?

    Thanks for the help.


    p.s. I have been looking at universities and I am not sure which one I like. I know I should look at the “whole package”, but I was wondering what you thought about the programs at each. Also, why did you choose Waterloo Tony?
    Thanks again.

    Reply to comment

    Tony replied on: December 14th, 2009 at 3:22 pm

    Computer Science and Software Engineering are fairly similar. You should check out the forums, I think you’ll find a lot of useful information there.

    Reply to comment

  8. Posted by Choosing between Computer Science and Computer Engineering | CompSci.ca/blog | December 27, 2009, 6:21 pm

    [...] Originally, I was thinking of comparing Computer Science to Software Engineering, but there was too much overlap to make a good example. Though this previous article could be of interest — The spirit of Software Engineering. [...]

  9. Posted by Brandon | September 30, 2020, 7:17 am

Post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>