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:
-
The study of 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, Honours, Liberal, and Minor programs in Computer Science;
-
Major in Computer Science: Artificial Intelligence Concentration;
-
Major, Honours, and Liberal programs in Software
Engineering;
-
Major in Computer Science: Computer Games 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)).
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 Faculty of Arts > Undergraduate > Browse Academic Units & Programs > Computer Science), or as part of a Bachelor of Arts and Science
(see Bachelor of Arts & Science > Undergraduate > Browse Academic Units & Programs > Computer Science).
The School's courses are available as electives to Engineering
students. Engineering students interested in a minor in Computer Science should
consult Faculty of Engineering > Undergraduate > Browse Academic Units & Programs > Minor Programs > Computer Science Courses and Minor Program.
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 (see ).