Computer Science
The following are considered Science programs in the B.A. & Sc.:
- Minor Concentration in Computer Science
- Major Concentration in Computer Science
- Major Concentration in Software Engineering
About Computer Science
Computer Science covers the theory and practice behind the design and implementation of computer and information systems. Fundamental to computer science are questions about how to describe, process, manage, and analyze information and computation. A fundamental building block is the study of algorithms. An algorithm presents a detailed sequence of actions solving a particular task. A computer program is the implementation of an algorithm in a specific programming language, which enables a computer to execute the algorithm. Software generally refers to a computer program or a set of related computer programs.
Based on the building blocks of computational thinking and programming, computer science is split into many different areas. Examples are:
- Algorithms and data structures
- Programming languages and methodology
- Theory of computation
- Software engineering (the design of large software systems)
- Computer architecture (the structure of the hardware)
- Communication between computers
- Operating systems (the software that shields users from the underlying hardware)
- Database systems (software that handles large amounts of data efficiently)
- Artificial intelligence and Machine Learning (algorithms inspired by human information processing)
- Computer vision (algorithms that let computers see and recognize their environment)
- Computer graphics
- Robotics (algorithms that control robots)
- Computational biology (algorithms and methods that address problems inspired by biology)
Computer science also plays an important role in many other fields, including biology, physics, engineering, business, music, and neuroscience, where it is necessary to process and reason about large amounts of data. Computer science is strongly related to mathematics, linguistics, and engineering.
A degree in computer science offers excellent job prospects. The use of computers and specialized software plays a crucial role in business, science, and our personal life. Computer science graduates are in high demand. Computer scientists find jobs in software development, consulting, research, and project management. As computer scientists often develop the software for a specific application domain (e.g., business, engineering, medicine), they must be prepared and willing to get to know their application area.
The School of Computer Science offers a wide range of programs. Most programs start with the same set of basic courses allowing students to decide on their exact program once they get a basic understanding of the discipline. Within the Faculty of Science, there are:
- Major in Computer Science: Computer Games Option;
- Major in Computer Science: Artificial Intelligence Option;
- Major and Honours in Mathematics and Computer Science (see Mathematics and Statistics (MATH));
- Major and Honours in Statistics and Computer Science (see Mathematics and Statistics (MATH));
- Major and Honours in Physics and Computer Science (see Physics (PHYS));
- Major and Honours in Computer Science and Biology (see Biology (BIOL));
- Major, Honours, Liberal, and Minor programs in Computer Science;
- Major, Honours, and Liberal programs in Software Engineering.
The School also offers a Major Concentration and Minor concentrations in Computer Science, and a Major Concentration in Software Engineering through the Faculty of Arts (see the Faculty of Arts' Computer Science page), or as part of a Bachelor of Arts and Science (see B.A.&Sc. Computer Science).
The School's courses are available as electives to Engineering students. Engineering students interested in a minor in Computer Science should consult the Computer Science Courses and Minor Program page of the Faculty of Engineering.
Most course instructors are faculty members of the School that do research in the areas they teach. The school favours interactive teaching practices where students get to know their professors and have the opportunity to do cutting-edge research. Some graduate courses in Computer Science are available to suitably qualified senior undergraduates. The School offers large computing labs in the Lorne Trottier Building, which is dedicated to undergraduate students.
All students planning to enter Computer Science programs are strongly encouraged to make an appointment with an academic advisor through the School's Undergraduate Student Affairs Office.
Internship Opportunities
Students who want to get practical experience in industry before graduation are encouraged to participate in one of the following internship programs:
- The Internship Year in Science (IYS) is offered for a duration of 8, 12, or 16 months. It will be reflected on the student's transcript and is included in the program name (Bachelor of Science – Internship Program).
- The Industrial Practicum (IP) has a duration of four months and is usually carried out starting in May. It will appear as a 0-credit, Pass/Fail course on the student's transcript. If a student completes two IPs, the program name will change to include the word "internship".
For more information on these opportunities, consult the Science Internships and Field Studies page or the Science Internship Program page on the Faculty site.
Research Opportunities
Computer science undergraduates have excellent opportunities to participate in research. Each summer, several awards are available, such as the NSERC Undergraduate Student Research Awards; these offer financial support for a research experience in an academic setting. Other research assistantship and volunteering opportunities in research labs are also available.
Students may also take undergraduate research project courses such as COMP 396 Undergraduate Research Project., COMP 400 Project in Computer Science, and COMP 401 Project in Biology and Computer Science. Students who have participated in substantial and broad undergraduate research may qualify for the Dean's Multidisciplinary Undergraduate Research List at graduation time. For more information, consult the Faculty of Science Dean's Multidisciplinary Undergraduate Research List.
Admissions
Students intending to pursue a program in Computer Science or Software Engineering should have a reasonable mathematical background and should have completed MATH 140 Calculus 1. (or MATH 150 Calculus A.), MATH 141 Calculus 2. (or MATH 151 Calculus B.), and MATH 133 Linear Algebra and Geometry., or their CEGEP equivalents. These three mathematics courses should have been completed with at least an average of B-. A background in computer science is not necessary as students may start their studies with the introductory course COMP 202 Foundations of Programming. or COMP 204 Computer Programming for Life Sciences. or COMP 208 Computer Programming for Physical Sciences and Engineering . For example, taking COMP 202 Foundations of Programming. in the Freshman year, or completing an equivalent course in CEGEP, would be an asset that would allow students to take more advanced courses earlier in their program.
More information about the admission process and programs is available on the School of Computer Science website at cs.mcgill.ca.
Location
Faculty of Science
School of Computer Science
McConnell Engineering Building, Room 318
3480 University Street
Montreal QC H3A 0E9
Telephone: 514-398-7071
Fax: 514-398-3883
Website: cs.mcgill.ca
Advising:
Undergraduate Student Affairs Office
McConnell Engineering Building, Room 320
3480 University Street
Montreal QC H3A 0E9
Telephone: 514-398-2211
Fax: 514-398-3883
Email: undergrad.cs@mcgill.ca