Skip to content. Skip to navigation
McGill Home SOCS Home
Personal tools
You are here: Home Prospective Students Undergraduate Choosing the right major in Computer Science or Software Engineering
Why CS?
Program List
How to Choose
Introductory Courses
McGill Transfer
Grad School
Med School
Personal Advice

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.

Deciding between a BSc, BA or BA&Sc degree

  • Bachelor of Science - B.Sc. (Faculty of Science)

    Most of our students choose a B.Sc. degree program. The B.Sc. degree is suitable for you if:

    • you are coming from a high school program outside of Quebec and you have enjoyed both Mathematics and Science; or
    • you are coming from any Science CEGEP program from within Quebec.

    There are three main programs available in the B.Sc. program:

    • Major in Computer Science (also available with a Computer Games Option)
    • Honours in Computer Science
    • Major in Software Engineering

    The Major in Computer Science contains core required courses, plus a wide choice of higher-level complementary courses. If you choose this program, you will get a good general background in foundational and applied Computer Science and you will get to choose from a wide variety of complementary courses that you will let you explore some more advanced topics. With the correct choice of courses you could prepare yourself for employment or for further graduate studies.

    The Honours program requires more courses than the Major, plus there are some core courses which have a special Honours version. An Honours program gives you a deeper and more comprehensive education in Computer Science.

    Note that there is a lot of flexibility in the B.Sc. programs and you can combine your Computer Science studies with other disciplines by doing a joint degree or by taking a minor in many other fields. (see the Combining Studies page)

    The Major in Software Engineering also contains a core of Computer Science courses, but also contains more courses pertaining to the principled development of software. A more detailed explanation of the difference between the Computer Science and Software Engineering majors is given further on.

    If you decide on a B.Sc. degree in Computer Science or Software Engineering, then you should choose "Faculty of Science" on your application form and choose the Physical, Earth, Math and Computer Sciences group. The only exception is that the Computer Science and Biology Joint Major is in the Biological, Biomedical and Life Sciences group.

    For detailed B.Sc. program information, see the Program Listing Page.

  • Bachelor of Arts - B.A. (Faculty of Arts)

    Some students choose to complete a B.A. degree. In fact, it is possible to get quite a strong training in Computer Science within the B.A. degree program by taking both the Computer Science Major Concentration along with the Supplementary Minor in Computer Science. In terms of Computer Science content, this is almost the same at the B.Sc. major in Computer Science. You will be taking the same Computer Science classes and you will work in the same state-of-the-art computer labs as students in the B.Sc. program. In fact, in the classes and labs there are no distinctions between students in the B.A. program and students in the B.Sc. program - they are equal.

    The B.A. degree is suitable for you if your background does not include very much Science, but you do have a good background in Mathematics and you have an interest and aptitude for logical reasoning.

    If you decide on a B.A. degree, then you should choose "Faculty of Arts" on your application form.

    For detailed B.A. program information, see the Program Listing Page.

  • Bachelor of Arts and Science - B.A.& B.Sc. (Joint program offered by the Faculties of Arts and Science)

    There is one final possibility, and that is the combined B.A.&Sc. degree, which is jointly offered by the Faculty of Science and the Faculty of Arts. In the B.A.&Sc degree you can combine a 36-credit Major Concentration in Computer Science or Software Engineering with a Major Concentration or two Minor Concentrations from Arts. For example, you could combine your Computer Science studies with areas such Economics, Anthropology, Philosophy, Linguistics, Geography and many other possibilities.

    Another option is the Interfaculty or Honours program in Cognitive Science. This is currently the only major and honours programs in Cognitive Science available at McGill (there is Cognitive Science minor in the B.Sc. program).

    If you decide on a B.A.&Sc. degree, you should choose "Bachelor of Arts & Science" on your application form.

    For detailed B.A.&Sc. program information, see the Program Listing Page.

What is the difference between Computer Science and Computer Engineering?

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.

What is the difference between Computer Science and Software Engineering?

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.

What is the difference between a B.Sc. and B.S.E. degrees in Software Engineering?

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.

Interesting career information from the Association of Computing Machinery (ACM)

The 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: