Skip to content. Skip to navigation
McGill Home SOCS Home
Personal tools
You are here: Home Academic Undergraduates Programs Software Engineering SE Comparison
SE Program
SE Comparison
SE Examples

 
Software Engineering in Science Software Engineering in Engineering
Degree Earned
A Bachelor of Science
Major in Software Engineering
A Bachelor of Software Engineering
Time to Completion
3 years (after CEGEP) 3.5-4 years (after CEGEP)
Summary
Flexible
Student can decide what areas to specialize in
Rigid schedule
Student specializes in advanced mathematics and hardware

Detailed Comparison

The major difference is the number and kind of courses you have to take in each of the programs. The table below compares the two programs in detail, listing the required courses and the complementary courses for each program.

In short, the major advantage of the B.Sc. in Software Engineering offered through the School of Computer Science in the Faculty of Science is its flexibility. It only prescribes 60-63 credits (out of the 90 required to graduate, which takes approximately 3 years), and therefore makes it possible to complement your software engineering studies with a minor in some other discipline, such as a minor in management, marketing, arts or other sciences. You may also choose to take further computer science courses to get more depth and breadth in your studies. The required courses focus mainly on software development related activities, such as programming techniques, programming languages, object-orientation, algorithms, complexity, software processes (requirements engineering and analysis, design), project planning, quality assurance. Many courses require extensive practical work, including, for example, participation in larger group projects, and use of state-of-the-art CASE tools, such as Integrated Development Environments, debuggers, profilers, modeling and project management tools.

These required courses are then complemented with several additional courses that the student chooses from a list of more specialized subjects, such as Artificial Intelligence, Distributed Systems, Computer Graphics, Robotics, and Games (for a complete list, see table below). Therefore, a student, once she/he is familiar with computer science and software engineering, can choose which areas she/he wants to specialize in.

The Software Engineering program offered through the Faculty of Engineering on the other hand is very rigid. It requires 112 credits after CEGEP, and the set of required courses is very large. In addition to requiring the same core courses as the B.Sc. in Software Engineering, the required courses contain several courses required by all engineers, such as more advanced math courses (advanced calculus, complex variables and transforms), as well as many mandatory courses on hardware (electrical engineering, circuit analysis, signals and systems, electronics), and general courses on the Engineering profession. Only 3 technical complementaries (9 credits) are available for students to explore topics of their own interest.

Course by Course Comparison


Software Engineering in Science Software Engineering in Engineering
Total Number of Credits
Required for Graduation
90, from which 60-63 are required or complementary
courses listed below. This leaves 27-30 credits
to do a minor in another field.
112
Common Required Courses
COMP: 202, 206, 250, 251, 302, 310 (ECSE-427)
ECSE: 429
MATH: 223 (270), 240 (363)
Additional Required Courses
Software
  • Introduction to Computer Systems (COMP-273)
  • Software Development (COMP-303)
  • Software Engineering Project (COMP-361)
Math
  • Intermediate Calculus (MATH-262)
  • Ordinary Differential Equations for Engineers (MATH-263)
  • Advanced Calculus (MATH-264)
  • Applied Linear Algebra (MATH-270)
Hardware
  • Electric Circuits 1 (ECSE 200)
  • Electric Circuits 2 (ECSE-210)
  • Design Principles and Methods (ECSE-211)
  • Introduction to Computer Engineering (ECSE 221)
  • Electrical Measurements Laboratory (ECSE-291)
  • Probability and Random Signals (ECSE-305)
  • Fundamentals of Signals and Systems (ECSE-306)
  • Computer Engineering (ECSE-322)
  • Introduction to Electronics (ECSE-330)
  • Parallel Computing (ECSE-420)
Engineering Profession
  • Communication in Engineering (CCOM-206)
  • Introduction to the Engineering Profession (FACC 100)
  • Engineering Professional Practice (FACC-400)
  • Engineering Economy (MIME-310)
Software
  • Introduction to Software Engineering (ECSE-321)
  • Software Engineering Practice (ECSE-428)
  • ECSE Design Project (ECSE-456)
  • ECSE Design Project 2 (ECSE-457)
  • Algorithm Design Techniques (COMP-360)
  • Database Systems (COMP-421)
Common Complementary Courses Fundamentals of Computer Graphics (COMP-557) / Computer Graphics (ECSE-532)
Computer Networks 1 (COMP-535) / Introduction to Telecommunication Networks (ECSE-414)
Theoretical Aspects: Computer Science (COMP-330)
Numerical Computing (COMP-350)
Concurrent Programming (COMP-409) / Parallel Computing (ECSE-420)
Artificial Intelligence (COMP-424)
Compiler Design (COMP-520)
Human-Computer Interaction (ECSE-424)
Additional Complementary Courses
Math
  • Calculus 3 (MATH-222)
  • Probability (MATH-323)
  • Statistics (MATH-324)
Software
  • Algorithm Design Techniques (COMP-360)
  • Introduction to Robotics and Intelligent Systems (COMP-417)
  • Database Systems (COMP-421)
  • Distributed Systems (COMP-512)
  • Modern Computer Games (COMP-521)
  • Modelling and Simulation (COMP-522)
  • Language-based Security (COMP-523)
  • Formal Verification (COMP-525)
  • Software Analysis (COMP-529)
  • Object-Oriented Software Development (COMP-533)
  • Fundamentals of Computer Vision (COMP-558)
 
Hardware
  • Digital System Design (ECSE-323)
  • Communications Systems 1 (ECSE-411)
  • Discrete Time Signal Processing (ECSE-412)
  • Communications Systems 2 (ECSE-413)
  • Fault Tolerant Computing (ECSE-422)
  • Computer Organization and Architecture (ECSE-425)
  • Microprocessor Systems (ECSE-426)
  • Sampled Data Control (ECSE-504)
  • Computer and Biological Vision (ECSE-529)
  • Logic Synthesis (ECSE-530)
Software
  • Discrete Optimization 1 (COMP-566)
  • Fundamentals of Distributed Algorithms (COMP-575)