## Undergraduate

#### Questions?

Please submit a help request on our Data Science **help portal**.

# Courses

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.

**Prerequisites**: One or more of Ontario Secondary School MCV4U, MHF4U, MDM4U, Mathematics 0109A/B, Mathematics 0110A/B, Mathematics 1229A/B, or equivalent**Offered in**: Fall (A), Winter (B), Summer (Z)

### **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.

**Prerequisites**: 1.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.

**Prerequisites**: Either 1) Computer Science 1027A/B, Computer Science 1037A/B, Computer Science 2101A/B, Computer Science 2121A/B or Digital Humanities 2221A/B in each case with at least 65%, and 1.0 course with at least 60% in each from: Applied Mathematics 1201A/B, Numerical and Mathematical Methods 1412A/B, Numerical and Mathematical Methods 1414A/B, Calculus 1000A/B, Calculus 1301A/B, Calculus 1500A/B, Calculus 1501A/B, Mathematics 1600A/B, the former Applied Mathematics 1412A/B, the former Applied Mathematics 1414A/B, the former Applied Mathematics 1413; or 2) Integrated Science 1001X with at least 60%**Offered in**: Fall (A), Winter (B)

### 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.

**Prerequisites**: Either 1) Computer Science 1027A/B, Computer Science 1037A/B, or Computer Science 2101A/B, in each case with a mark of at least 65% or 2) Integrated Science 1001X with at least 60%**Offered in**: Fall (A), Winter (B)

### 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.

**Antirequisite(s):**Software Engineering 2203A/B**Prerequisites**: Computer Science 2210A/B and Computer Science 2211A/B**Offered in**: Fall (A), Winter (B)

### 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.

**Antirequisite(s):**Mathematics 2151A/B, Mathematics 2155F/G**Prerequisites**: Either 1) Computer Science 1027A/B, Computer Science 1037A/B, or Computer Science 2101A/B, in each case with at least 65%, and 1.0 course with at least 60% in each from: Applied Mathematics 1201A/B, Numerical and Mathematical Methods 1412A/B, Numerical and Mathematical Methods 1414A/B, Calculus 1000A/B, Calculus 1301A/B, Calculus 1500A/B, Calculus 1501A/B, Mathematics 1600A/B, the former Applied Mathematics 1412A/B, the former Applied Mathematics 1414A/B, the former Applied Mathematics 1413; or 2) Integrated Science 1001X with at least 60%**Offered in**: Fall (A), Winter (B)

### 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.

**Antirequisite(s):**All other courses in Introductory Statistics (except Statistical Sciences 1023A/B and Data Science 1000A/B or the former Statistical Sciences 1024A/B): Biology 2244A/B, Economics 2122A/B, Economics 2222A/B, Geography 2210A/B, Health Sciences 3801A/B, MOS 2242A/B, Psychology 2810, Psychology 2820E, Psychology 2830A/B, Psychology 2850A/B, Psychology 2851A/B, Social Work 2207A/B, Sociology 2205A/B, Statistical Sciences 2035, Statistical Sciences 2141A/B, Statistical Sciences 2143A/B, Statistical Sciences 2244A/B, Statistical Sciences 2037A/B if taken prior to Fall 2010, former Psychology 2885 (Brescia), former Statistical Sciences 2122A/B, former Social Work 2205**Prerequisites**: A minimum mark of 60% in Statistical Sciences 2857A/B (or the former Statistical Sciences 2657A/B)**Offered in**: Winter (B)

### 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.

**Antirequisitie(s):**the former Computer Science 4414A/B, the former Statistical Sciences 3850F/G, the former Software Engineering 4460A/B .**Prerequisites**: ( Data Science 1200A/B or Computer Science 1026A/B or Computer Science 1027A/B or Computer Science 2120A/B or Digital Humanities 2220A/B or Engineering Science 1036A/B or Data Science 2000A/B or Integrated Science 2002B or Statistical Sciences 2864A/B ); ( Data Science 2000A/B or Integrated Science 2002B or Statistical Sciences 2857A/B or 0.5 course from the Introductory Statistics Course List); ( Mathematics 1600A/B or Numerical and Mathematical Methods 1411A/B or the former Applied Mathematics 1411A/B or Data Science 2100A ); ( Calculus 1000A/B or Calculus 1500A/B or Numerical and Mathematical Methods 1412A/B or the former Applied Mathematics 1412A/B or Data Science 2100A ). Note that Data Science 2000A/B, Integrated Science 2002B and Data Science 2100A can be used to fulfill multiple prerequisites**Offered in**: Fall (A), Winter (B)

### Computer Science 3346: **Artificial Intelligence I**

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

**Antirequisitie(s):**Computer Science 3121A/B**Prerequisites**: Either ( Computer Science 2210A/B and Computer Science 2211A/B ) or ( Software Engineering 2203A/B, Software Engineering 2205A/B and Software Engineering 2250A/B ); Computer Science 2209A/B, or registration in a BESc program in Computer Engineering, Mechatronic Systems Engineering, or Software Engineering.

### 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.

**Antirequisitie(s):**Science 3377A/B, SE 3351A/B**Prerequisites**: Computer Science 2212A/B/Y**Offered in**: Winter (B)

### 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.

**Antirequisitie(s):**Computer Science 3120A/B, Digital Humanities 3220A/B, and Software Engineering 3309A/B**Prerequisites**: Computer Science 2210A/B and Computer Science 2211A/B**Offered in**: Fall (A)

### 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.

**Prerequisites**: A minimum mark of 60% in Statistical Sciences 2858A/B or a minimum mark of 70% in one of Statistical Sciences 2035, Statistical Sciences 2141A/B, Statistical Sciences 2143A/B, Statistical Sciences 2244A/B, Biology 2244A/B, Economics 2222A/B, MOS 2242A/B, Psychology 2810 ; and enrollment in a module offered by the departments of Applied Mathematics; Mathematics; and Statistical and Actuarial Sciences**Offered in**: Fall (A)

### 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.

**Prerequisites**: A minimum mark of 60% in Statistical Sciences 2858A/B . Pre- or**Corequisite(s):**Statistical Sciences 2864A/B**Offered in**: Fall (A)

### 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.

**Prerequisites**: Computer Science 2210A/B and Computer Science 2211A/B ; Computer Science 2214A/B or Mathematics 2155F/G ; or registration in the fourth year of a BESc program in Computer Engineering.**Offered in**: Winter (B)

### 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.

**Prerequisites**: Statistical Sciences 3859A/B with at least 60%.**Offered in**: Winter (B)

### 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.

**Prerequisites**: A minimum mark of 60% in both Statistical Sciences 3843A/B and Statistical Sciences 3859A/B**Offered in**: Winter (B)

### 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.

**Prerequisites**: Statistical 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.

**Prerequisites**: Statistical 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.

**Prerequisites**: Statistical Sciences 2864A/B and Statistical Sciences 3859A/B**Offered in**: Fall (A)

### 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.

**Prerequisites**: Registration 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.

**Antirequisites**: Computer Science 3380F/G/Z, Computer Science 4470Y, Computer Science 4480Y, Computer Science 4490Z.**Prerequisites**: Computer Science 3331A/B and Computer Science 3340A/B; plus 1.5 courses from: Biochemistry 2280A, Chemistry 2213A/B, Computer Science 3319A/B, Computer Science 3346A/B; plus registration in the Honours Specialization in Bioinformatics (Biochemistry concentration) or the Honours Specialization in Bioinformatics (Computer Science concentration).**Offered in**: Annual (Z)

### 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.

**Antirequisites**: Actuarial Science 4997F/G/Z, Financial Modelling 4998F/G/Z .**Prerequisites**: Registration 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)