| |
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)
|
|