How to Choose
Choosing the right major in Computer Science or Software Engineering
There are many possible options for studying Computer Science or Software Engineering at McGill. The School of Computer Science offers many programs, all of which are listed here. On this page we provide you with some clear guidance on how to pick the right degree program for you. If, after reviewing all of the material, you have some specific questions, then ask us for some personal advice.
The School of Computer Science (in the Faculty of Science) offers degrees in Computer Science, whereas the Faculty of Engineering offers a degree in Computer Engineering. It is important for you to understand the difference, so that you can apply to the correct Faculty.
A Computer Science degree is more suitable for students more focused on the foundations of computer science and the development of software, or students who would like to combine their studies with mathematics or physics or with a wide variety of minors in Science, Management, Marketing or Arts. Within a Computer Science degree you have a lot of flexibility to learn about many areas of foundational and applied topics as it relates mostly to software. As just one example, you could choose selections of courses to prepare for a career in games development.
The important point is that you will have a lot of flexibility to create an academic program that really interests you.
A Computer Engineering degree is suitable for students who want core engineering courses and prefer to specialize more in computer hardware than in computer software. The Engineering degree programs have significantly less flexibility for combined studies and many fewer courses relating to software.
Students interested in a Computer Science degree should apply to either the Faculty of Science or Faculty of Arts, as outlined above.
The School of Computer Science, in the Faculty of Science, offers two majors - a Major in Computer Science and a Major in Software Engineering. We have professors who are specialists in both areas, with lots of exciting courses to choose from. So, which major is better for you? In fact, both programs share some common core courses which provide the foundations of computer science.
The main difference is that the Software Engineering program contains a larger set of required courses concerning the principled design and development of software. See our Software Engineering page for more information.
If you are entering McGill from a high school, you may not have to decide which you prefer right away. You can start with the introductory courses that are common to both programs and then decide which you prefer.
If you are entering McGill from CEGEP, then you will be asked to specify a major when you apply. However, there is still quite a bit of flexibility and you will have some time to decide which you prefer. If you are accepted to McGill in the Faculty of Science you can change your major from Computer Science to Software Engineering (or vice versa) when you actually register at McGill, and you can even change it after you have taken some introductory courses.
Remember, to leave your options open to choose between a Computer Science major
or a Software
Engineering major, make sure you apply to the Faculty of Science. Only the
Faculty of Science offers both of these programs.
If you have decided that you would like to pursue a degree in Software Engineering, you still have to decide if you would prefer the B.Sc. in Software Engineering, offered through the School of Computer Science in the Faculty of Science, or the B.S.E. in Software Engineering offered through the Faculty of Engineering. What is the difference?
This is actually quite an important decision since the programs are offered in two different Faculties and it is much trickier to switch between Faculties than to switch between majors within one Faculty.
Both the B.Sc. and B.S.E programs in Software Engineering share a common core of software engineering courses, and you will be with the same students in many of these core courses. The big difference is in what courses you must take outside of this common core.
The B.Sc. degree is structured so that you have quite a bit of flexibility to take more courses about software or general Computer Science. You also have the option to follow 7 or 8 elective courses which gives you the opportunity to take further higher-level software courses or to pursue a minor program in another field. With the B.Sc. degree you will learn all about Software Engineering and whatever else interests you. You will have the opportunity to take a wide range of classes with both foundational and practical applications. In addition, you can choose your complementary and elective courses to learn more about computer applications or to broaden your studies in Arts, Sciences or Management.
For students coming from CEGEP, the B.Sc. degree fits into 90 credits and can be completed in three years.
The B.S.E degree is structured so that in addition to courses specific to Software Engineering, you must also take many engineering-specific courses that are common to the Engineering degrees, plus more courses related to hardware. For example, students in the B.S.E. program must take required courses such as Fundamentals of Electrical Engineering, Circuit Analysis, Fundamentals of Signals and Systems, and so on. Since the Engineering courses require quite a few credits, there is less flexibility for studying more software courses and many fewer electives. The inclusion of all of these extra Engineering courses also means that students must take more total credits. For students coming from CEGEP, the B.S.E. degree is 112-114 credits, meaning that it takes at least 3 1/2 years to complete. Students graduating from this program are eligible for registration as professional engineers, since the program has been accredited by the Canadian Engineering Accreditation Board.
Students in both programs have a wide variety of job opportunities and access to internship opportunities. Students in the B.Sc. program have more flexibility to choose their programs and can, for example, select courses that also prepare them for a career in games programming or to study a minor in Management or Marketing.
Students who wish to take the B.Sc. degree in Software Engineering should indicate the "Faculty of Science" on their application form.ACM is one of the most important professional organizations for Computer Science and Software Engineering. This organization also provides very valuable information about Computing Degrees and Careers.
Here are some important entries in their web site: