Comparing the BSE in Software Engineering to the BCS in Computer Science
BSE students take many of the same CS core courses as BCS students. In addition, Software Engineering (BSE) students also take computer engineering (CE) courses and the engineering core, thus satisfying the requirements to be a CEAB-accredited Engineering program. Like all engineering students, BSE students follow a rather regimented program and learn about the physical world. BCS students enjoy more flexibility.
Elisa Lou, one of our Software Engineering alumni (class of 2015), has also provided a student perspective on her blog.
Employment outcomes from the BASc in Computer Engineering, the BSE, and the BCS are broadly similar. What you get out of a university education depends less on your specific courses and more on what you put into your courses, your interaction with peers, and your work experience. However, the programs do differ. To help you choose which program is the best fit for you, here are some of my personal observations about cohorts and courses.
Cohort: The more regimented program comes with a cohort system and enables a capstone design project. Each year, Software Engineering aims to admit a new cohort of 125 students; cohorts take most of their core courses together and get to know each other well. In part because of the cohort system, Software Engineering students can work together to complete impressive design projects, including a commercialized TTC trip planner and a modern, lightweight outliner (Dynalist), and a bumblebee tracking app.
Courses: In terms of computer science content, BSE students must take two upper-year three-course sequences that are optional for BCS students: the software engineering course sequence on requirements, design, and validation (which is also open to both BCS and CE students) and the capstone design project (versions of which are available to CS students and mandatory for CE students). BSE students are also required to take specific upper-year CS courses1, while the BCS has a smaller set of core courses, plus a set of distribution requirements for their upper-year CS courses.
In terms of computer engineering, BCS students take a single course on computer organization and design, whereas BSE students take three courses offered by ECE: two courses on circuits and then a course on computer organization (i.e. processor design). BSE students are thus exposed to much more content about computer hardware than BCS students.
BSE students also take courses common to all engineering programs, including two physics courses, one chemistry course, and engineering economics. The BSE degree also trades a second statistics course for a course on differential equations and signals and systems. (The math content is otherwise quite similar between the BSE and the BCS.) Knowing differential equations and signals and systems enables BSE students to take a course in feedback control.
- Patrick Lam - Former Director of Software Engineering
1. Specifically: SE students must take CS349, user interfaces; CS348, databases; and CS343, concurrent and parallel programming. This covers the CS systems and applications areas. BCS students, on the other hand, have a choice between systems, applications, and theory areas, and need to cover at least two of those areas with at least one course.↩