Western offers a variety of courses in data science, computer science, and statistical sciences for students in all academic years and across a range of different backgrounds. For the exact requirements, please see the individual degree programs. Here we provide a list of relevant course offerings for the current / coming academic year (2021-22).

For official details on room locations, hours, and Instructor, please see the  Western Undergraduate Timetable Database Please be aware that not all courses are offered each year. To see the most accurate course listings, please refer to the  official Western Calendar .

Year 1

Data Science 1000: Data Science Concepts

Introductory Data Analysis and visualization using modern data science tools. Suitable for students without strong mathematical or programming background.

Computer Science 1026: Computer Science Fundamentals I

Design and analysis of algorithms and their implementation in Python. Intended for students with little or no background in programming to learn the necessary programming skills for Data Science.

  • Prerequisites: None
  • Offered in: Fall (A), Winter (B)

Year 2

Data Science 2000: Introduction to Data Science

Covers sampling + Bootstrap, causal inferences + randomization test, and model selection + cross-validation. Emphasizes practical data handling and programming skills in Python. Can be taken after DS1000 or – for students with stronger mathematical background – as the first DS class. Cross-listed as IS2002B.

  • Prerequisites1.0 courses from Mathematics, Calculus, or Applied Mathematics (numbered 1000 and higher) with a minimum mark of 60%.  Data Science 1000A/B  (with a minimum grade of 60%) can be used to meet 0.5 of the 1.0 mathematics course requirements
  • Offered in: Winter (B)

Data Science 2100: Mathematical Foundations of Data Science

Mathematical background for students wanting to take Data Science 3000, but missing background in linear algebra and calculus. Vector and matrix algebra, norms, linear dependence, inverses, vector spaces, eigenvectors and eigenvalues, Gradients, Hessians, basics of optimization. All concepts are explained in the context of data science examples.

  • Prerequisites: 1.0 courses from Mathematics, Calculus, or Applied Mathematics (1000 and higher) with a minimal grade of 60%.  Data Science 2000A/B or  Integrated Science 2002B can be used to fulfil 0.5 of the requirements
  • Offered in: Fall (A)

Computer Science 2210: Data Structure and Algorithms

Lists, stacks, queues, priority queues, trees, graphs, and their associated algorithms; file structures; sorting, searching, and hashing techniques; time and space complexity.

Computer Science 2211: Software Tools and Systems Programming

An introduction to software tools and systems programming. Topics include: understanding how programs execute (compilation, linking and loading); an introduction to a complex operating system (UNIX); scripting languages; the C programming language; system calls; memory management; libraries; multi-component program organization and builds; version control; debuggers and profilers. Extra Information: 3 lecture hours, 1 laboratory/tutorial hour.

Statistical Sciences 2857:  Probability and Statistics I

Probability axioms, conditional probability, Bayes' theorem. Random variables motivated by real data and examples. Parametric univariate models as data reduction and description strategies. Multivariate distributions, expectation and variance. Likelihood function will be defined and exploited as a means of estimating parameters in certain simple situations.

  • Prerequisites: 0.5 course from  Calculus 1000A/B,   Calculus 1500A/B, or Applied Mathematics 1412A/B, each with a minimum mark of 60%, plus 0.5 course from  Calculus 1301A/B  (minimum mark 85%),  Calculus 1501A/B  (minimum mark 60%), or Applied Mathematics 1414A/B (minimum mark 60%). The former Applied Mathematics 1413 with a minimum mark of 60% may also be used to meet this 1.0 course prerequisite
  • Offered in: Fall (A)

Computer Science 2212: Introduction to Software Engineering

A team project course that provides practical experience in the software engineering field. Introduction to the structure and unique characteristics of large software systems, and concepts and techniques in the design, management and implementation of large software systems.

Computer Science 2214:  Discrete Structures for Computing

This course presents an introduction to the mathematical foundations of computer science, with an emphasis on mathematical reasoning, combinatorial analysis, discrete structures, applications and modeling, and algorithmic thinking. Topics include sets, functions, relations, algorithms, number theory, matrices, mathematical reasoning, counting, graphs and trees.

Statistical Science 2858: Probability & Statistics II

An introduction to the theory of statistics with strong links to data as well as its probabilistic underpinnings. Topics covered include estimation and hypothesis testing, sampling distributions, linear regression, experimental design, law of large numbers and central limit theorem.

Year 3

Data Science 3000: Introduction to Machine Learning

Basic principles of machine learning (estimation, optimization, prediction, generalization, bias-variance trade-off, regularization) in the context of supervised (linear models, decision trees, deep neuronal networks) and unsupervised (clustering and dimensionality reduction) statistical learning techniques. The course emphasizes the ability to apply techniques to real data sets and critically evaluate their performance. Formerly taught as CS4414, SS3850, and SE4650.

Computer Science 3346: Artificial Intelligence I

Introduction to Artificial Intelligence; logic programming; heuristic search; knowledge representation; expert systems.

Computer Science 3377: Software Project Management

The software development life cycle; resourcing, scheduling and estimating techniques for software project management; project management organizational concerns, including project economic analysis, human resources, proposal development, risk management, software implementation, and technology-strategic alignment.

Computer Science 3319: Databases I

A study of relational databases. Theoretical concepts will be covered, including relational algebra and relational calculus. Commercially available database systems will be used to demonstrate concepts such as Structured-Query-Language (SQL), writing code to connect and query a database, query optimization, Atomicity-Consistency-Isolation-Durability (ACID) concepts, and database design.

Statistical Science 3843: Introduction to Study Design

A case study approach to how data are collected in science, social science and medicine, including the methods of designed experiments, sample surveys, observational studies and administrative records.

Statistical Science 3859: Regression

Simple and multiple linear regression models and their use to model data using computing including model specification and assumptions, inference and estimation, use of indicator variables, regression diagnostics, model building and selection. Introduction to forecasting and time series.

Computer Science 3340: Analysis of Algorithms I

Upper and lower time and space bounds; levels of intractability; graph algorithms; greedy algorithms; dynamic algorithms; exhaustive search techniques; parallel algorithms.

Statistical Science 3860: Generalized Linear Models

Estimation and tests for generalized linear models, including residual analysis and the use of statistical packages. Logistic regression, log-linear models. Additional topics may include generalized estimating equations, quasi-likelihood and generalized additive models.

Year 4

Statistical Science 4850: Advanced Data Analysis

Modern methods of data analysis including linear and generalized linear models, modern nonparametric regression, principal component analysis, multilevel modelling and bootstrapping.

Computer Science 4417: Unstructured Data

Management and analysis of unstructured data, with a focus on text data, for example transaction logs, news text, article abstracts, and microblogs. Overview of unstructured image, audio, and video data. Hands-on experience with modern distributed data management and analysis infrastructure.

  • Prerequisites Computer Science 3319A/B
  • Offered in: Winter (B)

Statistical Science 4844: Data Analytics Consulting

An introduction to data analytics consulting in the context of Problem, Plan, Data, Analysis and Conclusion, including interpersonal techniques; communication; teamwork; project management; copyright, intellectual property, compensation and negotiation; robust data analysis; and ethics. A large portion of the course will be conducted in a seminar format with student participation.

  • PrerequisitesStatistical Sciences 3859A/B with at least 60%. Registration in fourth year of the Honours Specialization in Data Science or Honours Specialization in Statistics modules.
  • Offered in: Winter (B)

Computer Science 4411: Databases II

Advanced database topics such as: query optimization and execution; advanced concurrency control and recovery concepts; distributed databases; XML databases; database security and privacy; databases in the cloud; information retrieval.

  • Prerequisites Computer Science 3319A/B or Computer Science 3120A/B
  • Offered in: Fall (A)

Computer Science 4442: Artificial Intelligence II

A selection from: first order logic and theorem proving; computational linguistics; computer vision; robotics; knowledge acquisition; machine learning.

  • Prerequisites Mathematics 1600A/B or Applied Mathematics 1411A/B, and Computer Science 3307A/B/Y or Software Engineering 3350A/B.
  • Offered in: Winter (B)

Statistical Science 4844: Advanced Statistical Computing

An introduction to data analytics consulting in the context of Problem, Plan, Data, Analysis and Conclusion, including interpersonal techniques; communication; teamwork; project management; copyright, intellectual property, compensation and negotiation; robust data analysis; and ethics. A large portion of the course will be conducted in a seminar format with student participation.

  • PrerequisitesStatistical Sciences 3859A/B with at least 60%. Registration in fourth year of the Honours Specialization in Data Science or Honours Specialization in Statistics modules.
  • Offered in: Fall (A), Winter (B)

Statistical Science 4864: Advanced Statistical Computing

Review of fundamental concepts in statistical computing, including programming, optimization methods and Monte Carlo simulations. A selection of advanced topics such as bootstrapping, robust methods, statistical graphics, Markov chain Monte Carlo, nonlinear regression, relational databases, time series analysis, and spatial statistics.

Statistical Science 4960: Business Skills

This course aims to develop important business skills that are often not emphasized in the formal education of quantitative financial professionals. The course focuses on four main topic areas: how businesses work, financial statement analysis, oral and written communications skills, and leadership and people management. Extra Information: 3 lecture hours.

  • PrerequisitesRegistration in fourth year of an Actuarial Science, Data Science, Statistics or Financial Modeling module .
  • Offered in: Fall (A)

Computer Science 4490Z (Thesis)

A project or research paper completed with minimal faculty supervision. An oral presentation plus a written submission will be required.

Statistical Science 4999: Project in Statistical Science (Thesis)

Data Science projects for Honor Specialization students in Data Science. The student will work on a project under faculty supervision. Credit for the course will involve a written report as well as an oral presentation.

  • AntirequisitesActuarial Science 4997F/G/Z,  Financial Modelling 4998F/G/Z .
  • PrerequisitesRegistration in the fourth year of the Honours Specialization in Actuarial Science, Statistics, or Financial Modelling. Students must have a modular course average of at least 80% and must find a faculty member to supervise the project
  • Offered in: Annual (Z)