Course Timetable
APSC 160 - 2023W
Introduction to Computation in Engineering Design
Analysis and simulation, laboratory data acquisition and processing, measurement interfaces, engineering tools, computer systems organization, programming languages. Credit will only be given for one of: APSC 160, CPSC 301, or EOSC 211.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Seyyed Hosseini | ||||
Instructor(s) |
||||||
102 | Term 1 | Rik Blok | ||||
Instructor(s) |
||||||
9AR | Term 1 | |||||
|
||||||
VE1 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | |||
|
||||||
202 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | Seyyed Hosseini | ||
Instructor(s) |
||||||
204 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Oluwakemi Ola | ||
Instructor(s) |
CPSC 100 - 2023W
Computational Thinking
Meaning and impact of computational thinking. Solving problems using computational thinking, testing, debugging. How computers work. No prior computing experience required. Not for students with existing credit for or exemption from CPSC 107, CPSC 110 or APSC 160.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 3:00 PM - 4:00 PM | Oluwakemi Ola | ||
Instructor(s) Extended Description “Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are in a form that can be effectively carried out by an information-processing agent” [Cuny, Snyder, Wing 10]. Computational thinking and its outcomes (i.e., computers, software, and their usage) are increasingly shaping the world in which we live. In order to be productive citizens of the 21st century, UBC students need to have the opportunity to learn concepts such as how data can be processed to gain insights, how computers use their personal data, and why computational thinking enables some amazing tasks (e.g., finding directions, sharing videos, and communicating instantly) but is as yet so bad at others (e.g., translating documents between languages). CPSC 100 will give non-computer science majors key insights into (1) the building blocks necessary for computational thinking (2) applications of computational thinking and (3) how computational thinking and its applications impact the world around them. Students will explore the past, present, and future of computing including a student directed exploration of computing and computational thinking issues in the news. This course is targeted to first year students, but is open to all. |
||||||
201 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | Oluwakemi Ola | ||
Instructor(s) Extended Description “Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are in a form that can be effectively carried out by an information-processing agent” [Cuny, Snyder, Wing 10]. Computational thinking and its outcomes (i.e., computers, software, and their usage) are increasingly shaping the world in which we live. In order to be productive citizens of the 21st century, UBC students need to have the opportunity to learn concepts such as how data can be processed to gain insights, how computers use their personal data, and why computational thinking enables some amazing tasks (e.g., finding directions, sharing videos, and communicating instantly) but is as yet so bad at others (e.g., translating documents between languages). CPSC 100 will give non-computer science majors key insights into (1) the building blocks necessary for computational thinking (2) applications of computational thinking and (3) how computational thinking and its applications impact the world around them. Students will explore the past, present, and future of computing including a student directed exploration of computing and computational thinking issues in the news. This course is targeted to first year students, but is open to all. |
CPSC 103 - 2023W
Introduction to Systematic Program Design
Computation as a tool for systematic problem solving in non-computer-science disciplines. Introductory programming skills. Not for credit for students who have credit for, or exemption from, or are concurrently taking CPSC 110 or APSC 160. No programming experience expected.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Jessica Wong, Ian Mitchell | ||
Instructor(s) Extended Description When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites. |
||||||
102 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | Rik Blok | ||
Instructor(s) Extended Description When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites. |
||||||
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | Giulia Toti | ||
Instructor(s) Extended Description When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites. |
||||||
202 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Giulia Toti | ||
Instructor(s) Extended Description When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites. |
||||||
V01 | Term 2 | Mon Wed | 10:30 AM - 12:00 PM | Jessica Wong | ||
Instructor(s) Extended Description When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites. |
CPSC 107 - 2023W
Systematic Program Design
Fundamental computation and program structures. Continuing systematic program design from CPSC 103.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | |||
|
||||||
207 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | Rik Blok | ||
Instructor(s) |
CPSC 110 - 2023W
Computation, Programs, and Programming
Fundamental program and computation structures. Introductory programming skills. Computation as a tool for information processing, simulation and modelling, and interacting with the world.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Gregor Kiczales | ||
Instructor(s) Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
||||||
102 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | Gregor Kiczales | ||
Instructor(s) Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
||||||
104 | Term 1 | Mon Wed | 12:30 PM - 2:00 PM | |||
Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
||||||
CH1 | Term 1 | |||||
Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
||||||
201 | Term 2 | Tue Thu | 12:30 PM - 2:00 PM | Gregor Kiczales, Norm Hutchinson | ||
Instructor(s) Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
||||||
203 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | Gregor Kiczales, Norm Hutchinson | ||
Instructor(s) Extended Description Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more. The major goal of this course is to introduce students to the practice of systematic problem solving through the design of programs. The course will also help you understand more deeply how computation and programs work, and how they have the power to do what they do. Do you know how to design a computer animation? Or a multi-player game? Or how to combine information from sources like eBay and Google automatically? Or a game that runs on your phone? Do you know how to use the process of writing a computer program to better understand ecosystems or Translink schedules? This course will show you how—we will explore systems like these as part of our lab projects. The course presents an approach to systematic problem analysis and solution design, and prepares students for further course-based and/or independent learning of Computer Science skills and concepts. The course is designed to be interesting, accessible and useful to a wide range of students. No prior programming experience is assumed, and very little math and science background is required. This makes the course appropriate for all UBC students—CS majors and non-majors alike. |
CPSC 121 - 2023W
Models of Computation
Physical and mathematical structures of computation. Boolean algebra and combinations logic circuits; proof techniques; functions and sequential circuits; sets and relations; finite state machines; sequential instruction execution.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Seyyed Hosseini | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
102 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | Karina Mochetti | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
103 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | Karina Mochetti | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
104 | Term 1 | Mon Wed | 3:30 PM - 5:00 PM | |||
Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
201 | Term 2 | Tue Thu | 12:30 PM - 2:00 PM | Karina Mochetti | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
202 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Karina Mochetti | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
||||||
203 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | Karina Mochetti | ||
Instructor(s) Extended Description CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
|
CPSC 203 - 2023W
Programming, Problem Solving, and Algorithms
Analysis of increasingly complex algorithmic problems, using a modern programming language and a variety of approaches. Problem decomposition and abstraction guide explorations of topics from applied algorithms, for example Voronoi Diagrams, Markov Chains, Bin Packing, and Graph Search. Not for students with credit for, or currently enrolled in, CPSC 210 or CPEN 221.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | Firas Moosvi | ||
Instructor(s) |
CPSC 210 - 2023W
Software Construction
Design, development, and analysis of robust software components. Topics such as software design, computational models, data structures, debugging, and testing.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | Paul Carter | Course Page | |
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
||||||
102 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | Paul Carter | Course Page | |
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
||||||
103 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | Mehrdad Oveisi | ||
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
||||||
201 | Term 2 | Mon Wed Fri | 10:00 AM - 11:00 AM | Felix Grund | ||
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
||||||
202 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | Firas Moosvi | ||
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
||||||
203 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | Felix Grund | ||
Instructor(s) Extended Description The following broad topics will be covered. The main learning goals for each topic are also provided. Data Abstraction
Control Flow Models
Type Hierarchies, Polymorphism and Dispatching
Robust Data Abstractions
Object-Oriented Design
Design Patterns
|
CPSC 213 - 2023W
Introduction to Computer Systems
Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | Jordon Johnson | ||
Instructor(s) |
||||||
102 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | Mike Feeley | Course Page | |
Instructor(s) Course Page Extended Description Help students develop a model of computation that is rooted in what really happens when a program executes. |
||||||
203 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | Geoffrey Tien | ||
Instructor(s) |
||||||
204 | Term 2 | Mon Wed Fri | 9:00 AM - 10:00 AM | Geoffrey Tien | ||
Instructor(s) |
||||||
205 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | Jordon Johnson | ||
Instructor(s) |
CPSC 221 - 2023W
Basic Algorithms and Data Structures
Design and analysis of basic algorithms and data structures; algorithm analysis methods, searching and sorting algorithms, basic data structures, graphs and concurrency.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | Vsevolod (Seva) Lynov | ||
Instructor(s) |
||||||
102 | Term 1 | Mon Wed Fri | 3:00 PM - 4:00 PM | Geoffrey Tien | ||
Instructor(s) |
||||||
201 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | Vsevolod (Seva) Lynov | ||
Instructor(s) |
||||||
202 | Term 2 | Mon Wed Fri | 4:00 PM - 5:00 PM | Geoffrey Tien | ||
Instructor(s) |
||||||
203 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | Vsevolod (Seva) Lynov | ||
Instructor(s) |
CPSC 259 - 2023W
Data Structures and Algorithms for Electrical Engineers
Advanced procedural programming. Fundamental algorithms for sorting and searching. Data structures including lists, trees, and hash tables. Introduction to scripting languages and file input/output.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 8:00 AM - 9:00 AM | Geoffrey Tien | ||
Instructor(s) |
CPSC 302 - 2023W
Numerical Computation for Algebraic Problems
Numerical techniques for basic mathematical processes involving no discretization, and their analysis. Solution of linear systems, including analysis of round-off errors; norms and condition number; introduction to iterative techniques in linear algebra, including eigenvalue problems; solution to nonlinear equations.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 1:00 PM - 2:00 PM | Chen Greif | ||
Instructor(s) |
CPSC 303 - 2023W
Numerical Approximation and Discretization
Numerical techniques for basic mathematical processes involving discretization, and their analysis. Interpolation and approximation, including splines and least squares data fitting; numerical differentiation and integration; introduction to numerical initial value ordinary differential equations.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | Joel Friedman | ||
Instructor(s) |
CPSC 304 - 2023W
Introduction to Relational Databases
Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages,data warehouses, special topics.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Rachel Pottinger | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
||||||
102 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | Jessica Wong, Gittu George | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
||||||
103 | Term 1 | Wed Fri | 3:30 PM - 5:00 PM | Vsevolod (Seva) Lynov | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
||||||
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | Vsevolod (Seva) Lynov | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
||||||
202 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | Raymond Ng | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
CPSC 310 - 2023W
Introduction to Software Engineering
Specification, design, validation, evolution and construction of modern software systems, within the context of socially and professionally relevant domains such as ethics, intellectual property, and information security.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 8:00 AM - 9:30 AM | Reid Holmes | ||
Instructor(s) Extended Description CPSC 310 will be a challenging course that we have designed to integrate many of the ideas and concepts from your prior courses in order to help you to learn how to apply them to engineering modern software systems. The official course learning outcomes (CLOs) for CPSC 310 are:
|
||||||
102 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | Reid Holmes | ||
Instructor(s) Extended Description CPSC 310 will be a challenging course that we have designed to integrate many of the ideas and concepts from your prior courses in order to help you to learn how to apply them to engineering modern software systems. The official course learning outcomes (CLOs) for CPSC 310 are:
|
||||||
201 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | Katharine Kerr, Nicholas Bradley | Course Page | |
Instructor(s) Extended Description CPSC 310 will be a challenging course that we have designed to integrate many of the ideas and concepts from your prior courses in order to help you to learn how to apply them to engineering modern software systems. The official course learning outcomes (CLOs) for CPSC 310 are:
|
||||||
202 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Katharine Kerr, Nicholas Bradley | Course Page | |
Instructor(s) Extended Description CPSC 310 will be a challenging course that we have designed to integrate many of the ideas and concepts from your prior courses in order to help you to learn how to apply them to engineering modern software systems. The official course learning outcomes (CLOs) for CPSC 310 are:
|
||||||
203 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | Katharine Kerr, Nicholas Bradley | Course Page | |
Instructor(s) Extended Description CPSC 310 will be a challenging course that we have designed to integrate many of the ideas and concepts from your prior courses in order to help you to learn how to apply them to engineering modern software systems. The official course learning outcomes (CLOs) for CPSC 310 are:
|
CPSC 311 - 2023W
Definition of Programming Languages
Comparative study of advanced programming language features. Statement types, data types, variable binding, parameter passing mechanisms. Methods for syntactic and semantic description of programming languages.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 10:00 AM - 11:00 AM | Ronald Garcia | ||
Instructor(s) |
CPSC 312 - 2023W
Functional and Logic Programming
Principles of symbolic computing, using languages based upon first-order logic and the lambda calculus. Algorithms for implementing such languages. Applications to artificial intelligence and knowledge representation.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | David Poole | ||
Instructor(s) Extended Description In this course, we will streeeeetch our minds around two programming languages that you may find strange. Why bother doing that? You might go out and use these as your “home” programming languages for the rest of your career, but the real point is that stretching your concept of programs and programming will make you a better designer, programmer, and thinker. |
CPSC 313 - 2023W
Computer Hardware and Operating Systems
Instruction sets, pipelining, code optimization, caching, virtual memory management, dynamically linked libraries, exception processing, execution time of programs.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | Norm Hutchinson, Steve Wolfman | ||
Instructor(s) Extended Description In CPSC 213, you learned how computers execute programs and how common programming language constructs can be translated into assembly language. You also discussed how to deal with multiples processes and threads and how you can synchronize their operations. Finally, you discussed virtual memory. In this course, we will dig a bit deeper and examine how computers are designed and some techniques that are used to make them execute the programs we write as quickly as possible. At the end of this course you will be able to:
|
||||||
102 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | Norm Hutchinson, Steve Wolfman | ||
Instructor(s) Extended Description In CPSC 213, you learned how computers execute programs and how common programming language constructs can be translated into assembly language. You also discussed how to deal with multiples processes and threads and how you can synchronize their operations. Finally, you discussed virtual memory. In this course, we will dig a bit deeper and examine how computers are designed and some techniques that are used to make them execute the programs we write as quickly as possible. At the end of this course you will be able to:
|
||||||
203 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | Steve Wolfman | ||
Instructor(s) Extended Description In CPSC 213, you learned how computers execute programs and how common programming language constructs can be translated into assembly language. You also discussed how to deal with multiples processes and threads and how you can synchronize their operations. Finally, you discussed virtual memory. In this course, we will dig a bit deeper and examine how computers are designed and some techniques that are used to make them execute the programs we write as quickly as possible. At the end of this course you will be able to:
|
||||||
204 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | Steve Wolfman | ||
Instructor(s) Extended Description In CPSC 213, you learned how computers execute programs and how common programming language constructs can be translated into assembly language. You also discussed how to deal with multiples processes and threads and how you can synchronize their operations. Finally, you discussed virtual memory. In this course, we will dig a bit deeper and examine how computers are designed and some techniques that are used to make them execute the programs we write as quickly as possible. At the end of this course you will be able to:
|
CPSC 314 - 2023W
Computer Graphics
Human vision and colour; geometric transformations; algorithms for 2-D and 3-D graphics; hardware and system architectures; shading and lighting; animation.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Michiel van de Panne | ||
Instructor(s) Extended Description The course will provide an introduction to the theory and practice of computer graphics algorithms, including different aspects of modelling, rendering and basic animation. We will focus on the modern programmable graphics pipeline with vertex and fragment shaders. This course is the first in our sequence on computer graphics, followed by Modeling (CPSC 424) and Animation (CPSC 426) as well as several graduate CG courses. Topics to be covered include most or all of the following: geometric transformations; the rendering pipeline, including perspective projection, scan conversion, and hidden surface removal; lighting and illumination; texture mapping; colour models; geometry modeling and data structures; complex shading algorithms; ray-tracing; animation; graphics APIs; GPUs. |
||||||
201 | Term 2 | Mon Wed Fri | 10:00 AM - 11:00 AM | Dinesh Pai | ||
Instructor(s) Extended Description The course will provide an introduction to the theory and practice of computer graphics algorithms, including different aspects of modelling, rendering and basic animation. We will focus on the modern programmable graphics pipeline with vertex and fragment shaders. This course is the first in our sequence on computer graphics, followed by Modeling (CPSC 424) and Animation (CPSC 426) as well as several graduate CG courses. Topics to be covered include most or all of the following: geometric transformations; the rendering pipeline, including perspective projection, scan conversion, and hidden surface removal; lighting and illumination; texture mapping; colour models; geometry modeling and data structures; complex shading algorithms; ray-tracing; animation; graphics APIs; GPUs. |
CPSC 317 - 2023W
Introduction to Computer Networking
Computer networking, basic communication protocols, network infrastructure and routing. Common application-level protocols and principles associated with developing distributed applications.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 9:00 AM - 10:00 AM | Norm Hutchinson | ||
Instructor(s) Extended Description Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:
In particular the material will be framed by looking at the key strategies and models for addressing:
|
||||||
102 | Term 1 | Mon Wed Fri | 3:00 PM - 4:00 PM | |||
Extended Description Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:
In particular the material will be framed by looking at the key strategies and models for addressing:
|
||||||
201 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | Norm Hutchinson, Aastha Mehta | ||
Instructor(s) Extended Description Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:
In particular the material will be framed by looking at the key strategies and models for addressing:
|
||||||
202 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | Aastha Mehta | ||
Instructor(s) Extended Description Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:
In particular the material will be framed by looking at the key strategies and models for addressing:
|
CPSC 319 - 2023W
Software Engineering Project
The design, implementation, and test of a large software system, using a team approach.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 6:30 PM - 8:00 PM | Jerry Jim | ||
Instructor(s) |
CPSC 320 - 2023W
Intermediate Algorithm Design and Analysis
Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, and text processing algorithms.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | Mehrdad Oveisi, Anne Condon | ||
Instructor(s) Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
||||||
102 | Term 1 | Mon Wed Fri | 9:00 AM - 10:00 AM | Mehrdad Oveisi, Anne Condon | ||
Instructor(s) Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
||||||
103 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | |||
Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
||||||
201 | Term 2 | Mon Wed Fri | 10:00 AM - 11:00 AM | Susanne Bradley | ||
Instructor(s) Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
||||||
202 | Term 2 | Mon Wed Fri | 4:00 PM - 5:00 PM | Bruce Shepherd | ||
Instructor(s) Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
||||||
203 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | Susanne Bradley | ||
Instructor(s) Extended Description The topics that we will be discuss in this course fall into two main categories. First, we will look at techniques that we can use to design efficient data structures and algorithms. Second, we will learn tools that make it possible to prove the correctness and the efficiency of the algorithms and data structures that we designed. More specifically, we will look at the following broad topics (not necessarily in this order):
Much of the material is formal (mathematical) in nature, and hence proofs will constitute an important part of the course. At the end of the course, you will be able to:
|
CPSC 322 - 2023W
Introduction to Artificial Intelligence
Problem-solving and planning; state/action models and graph searching. Natural language understanding Computational vision. Applications of artificial intelligence.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | Jordon Johnson | ||
Instructor(s) |
||||||
102 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | Jordon Johnson | ||
Instructor(s) |
||||||
201 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | Mehrdad Oveisi | ||
Instructor(s) |
CPSC 330 - 2023W
Applied Machine Learning
Application of machine learning tools, with an emphasis on solving practical problems. Data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Andrew Roth | ||
Instructor(s) Extended Description This course covers application of machine learning tools, with an emphasis on solving practical problems. Also included in the course are data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. |
||||||
102 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | Varada Kolhatkar | ||
Instructor(s) Extended Description This course covers application of machine learning tools, with an emphasis on solving practical problems. Also included in the course are data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. |
||||||
201 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | Mathias Lécuyer | ||
Instructor(s) Extended Description This course covers application of machine learning tools, with an emphasis on solving practical problems. Also included in the course are data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. |
||||||
202 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Mehrdad Oveisi | ||
Instructor(s) Extended Description This course covers application of machine learning tools, with an emphasis on solving practical problems. Also included in the course are data cleaning, feature extraction, supervised and unsupervised machine learning, reproducible workflows, and communicating results. |
CPSC 340 - 2023W
Machine Learning and Data Mining
Models of algorithms for dimensionality reduction, nonlinear regression, classification, clustering and unsupervised learning; applications to computer graphics, computer games, bio-informatics, information retrieval, e-commerce, databases, computer vision and artificial intelligence.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) Extended Description We introduce basic principles and techniques in the fields of data mining and machine learning. These are some of the key tools behind the emerging field of data science and the popularity of the "big data" buzzword. These techniques are now running behind the scenes to discover patterns and make predictions in various applications in our daily lives. We'll focus on many of the core data mining and machine learning technologies, with motivating applications from a variety of disciplines. |
||||||
102 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) Extended Description We introduce basic principles and techniques in the fields of data mining and machine learning. These are some of the key tools behind the emerging field of data science and the popularity of the "big data" buzzword. These techniques are now running behind the scenes to discover patterns and make predictions in various applications in our daily lives. We'll focus on many of the core data mining and machine learning technologies, with motivating applications from a variety of disciplines. |
||||||
201 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | Jiarui Ding, Jeff Clune | ||
Instructor(s) Extended Description We introduce basic principles and techniques in the fields of data mining and machine learning. These are some of the key tools behind the emerging field of data science and the popularity of the "big data" buzzword. These techniques are now running behind the scenes to discover patterns and make predictions in various applications in our daily lives. We'll focus on many of the core data mining and machine learning technologies, with motivating applications from a variety of disciplines. |
||||||
202 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | Jiarui Ding, Jeff Clune | ||
Instructor(s) Extended Description We introduce basic principles and techniques in the fields of data mining and machine learning. These are some of the key tools behind the emerging field of data science and the popularity of the "big data" buzzword. These techniques are now running behind the scenes to discover patterns and make predictions in various applications in our daily lives. We'll focus on many of the core data mining and machine learning technologies, with motivating applications from a variety of disciplines. |
CPSC 344 - 2023W
Introduction to Human Computer Interaction Methods
Basic tools and techniques, teaching a systematic approach to interface design, task analysis, analytic and empirical evaluation methods.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 3:30 PM - 5:00 PM | |||
Extended Description Either 211 or 210 will automatically suffice for the 344 pre-requisite. |
||||||
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | Laura Cang | ||
Instructor(s) Extended Description Either 211 or 210 will automatically suffice for the 344 pre-requisite. |
CPSC 349 - 2023W
Honours Research Seminar
Students will attend a series of research seminars presented by faculty members, produce a thesis proposal, and choose their honours thesis supervisor. Available to Honours students. Majors students with satisfactory standing may also be permitted to enrol.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
001 | Term 1 & 2 | Thu | 3:30 PM - 5:00 PM | Mark Greenstreet | ||
Instructor(s) |
CPSC 368 - 2023W
Databases in Data Science
Overview of relational and non-relational database systems, role and usage of a database when querying data, data modelling, query languages, and query optimization.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | Jessica Wong | ||
Instructor(s) |
CPSC 404 - 2023W
Advanced Relational Databases
Physical database design, indexing, external mergesort, relational query processing and optimization, transaction processing, concurrency control, crash recovery, special topics.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Ed Knorr | Course Page | |
Instructor(s) Extended Description This course continues with database topics beyond CPSC 304. Whereas CPSC 304 focuses on using a relational database management system (RDBMS), CPSC 404 focuses on the internals and performance issues of an RDBMS. Topics include disks and the storage hierarchy, the I/O cost model, buffer pool management, disk scheduling, record layouts, metadata, system catalogs, tree-structured indexes, hash indexes, query evaluation, query optimization, transaction processing, concurrency, and crash recovery. Note that some of these important topics also have applicability to areas outside of database systems. |
||||||
201 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | Jianhao Cao | Course Page | |
Instructor(s) Extended Description This course continues with database topics beyond CPSC 304. Whereas CPSC 304 focuses on using a relational database management system (RDBMS), CPSC 404 focuses on the internals and performance issues of an RDBMS. Topics include disks and the storage hierarchy, the I/O cost model, buffer pool management, disk scheduling, record layouts, metadata, system catalogs, tree-structured indexes, hash indexes, query evaluation, query optimization, transaction processing, concurrency, and crash recovery. Note that some of these important topics also have applicability to areas outside of database systems. |
CPSC 406 - 2023W
Computational Optimization
Formulation and analysis of algorithms for continuous and discrete optimization problems; linear, nonlinear, network, dynamic, and integer optimization; large-scale problems; software packages and their implementation; duality theory and sensitivity.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | Michael Friedlander | ||
Instructor(s) |
CPSC 410 - 2023W
Advanced Software Engineering
Specification, design, construction and validation of multi-version software systems.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | |||
|
||||||
201 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | Caroline Lemieux, Alex Summers | ||
Instructor(s) |
CPSC 411 - 2023W
Introduction to Compiler Construction
A practical introduction to lexical analysis, syntactic analysis, type-checking, code generation and optimization. This will be used to design and implement a compiler for a small language.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | |||
Extended Description The goal of this course is to give students experience designing, implementing, and extending programming languages. Students will start from a machine language, the x86-64 CPU instruction set with Linux system calls (x64), and incrementally build a compiler for a subset of Racket to this machine language. In the process, students will practice building, extending, and maintaining a complex piece of software, and practice creating, enforcing, and exploiting abstractions formalized in programming languages. |
CPSC 416 - 2023W
Distributed Systems
Concepts and design of distributed systems. Communication architecture and models for interprocess communication. Process migration, naming, distributed file systems, fault tolerance, and concurrency control.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | Tony Mason | ||
Instructor(s) |
||||||
201 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | Arpan Gujarati | ||
Instructor(s) |
CPSC 418 - 2023W
Parallel Computation
Algorithms, architectures, and programming paradigms for parallel computation. Shared memory, message passing, and data parallel architectures and programming models. Parallel algorithms including reduce, scan, and sorting networks. Reasoning about the correctness of parallel programs. Performance analysis and measurement for parallel programs.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 1:00 PM - 2:00 PM | Mark Greenstreet | ||
Instructor(s) |
||||||
201 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | Mark Greenstreet | ||
Instructor(s) |
CPSC 420 - 2023W
Advanced Algorithms Design and Analysis
The study of advanced topics in the design and analysis of algorithms and associated data structures. Topics include algorithms for graph-theoretic; algebraic and geometric problems; algorithms on nonsequential models; complexity issues; approximation algorithms.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | William Evans | ||
Instructor(s) |
CPSC 421 - 2023W
Introduction to Theory of Computing
Characterizations of computability (using machines, languages and functions). Universality, equivalence and Church's thesis. Unsolvable problems. Restricted models of computation. Finite automata, grammars and formal languages.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | Joel Friedman | Course Page | |
Instructor(s) Extended Description This is a one-term introductory course to the theory of computing, covering: regular languages, Turing machines, undecidable problems, and NP-completeness. Specific topics covered varies from year to year. |
CPSC 422 - 2023W
Intelligent Systems
Principles and techniques underlying the design, implementation and evaluation of intelligent computational systems. Applications of artificial intelligence to natural language understanding, image understanding and computer-based expert and advisor systems. Advanced symbolic programming methodology.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | Jordon Johnson | ||
Instructor(s) |
CPSC 425 - 2023W
Computer Vision
Introduction to the processing and interpretation of images. Image sensing, sampling, and filtering. Algorithms for colour analysis, texture description, stereo imaging, motion interpretation, 3D shape recovery, and recognition.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | |||
|
||||||
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | Kwang Moo Yi | ||
Instructor(s) |
CPSC 427 - 2023W
Video Game Programming
Video game programming techniques and technologies, including rendering, animation, interaction, game AI, real-time software development for games; start-to-finish simple video-game design and implementation.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon | 3:00 PM - 5:00 PM | Helge Rhodin | ||
Instructor(s) |
||||||
201 | Term 2 | Wed | 3:00 PM - 4:00 PM | Chris Kerslake | ||
Instructor(s) |
CPSC 430 - 2023W
Computers and Society
Impact of computer technology on society; historical perspectives; social and economic consequences of large-scale information processing systems and automatic control; legal and ethical problems in computer applications. Computers and the individual: machine versus human capabilities, fact and fancy; problematic interface between man and machine.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | Hedayat Zarkoob, Giulia Toti | Course Page | |
Instructor(s) Course Page |
||||||
102 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | |||
|
||||||
201 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | Hedayat Zarkoob | ||
Instructor(s) |
CPSC 436A - 2023W
Topics in Computer Science - OS DESIGN & IMPL
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:00 AM - 11:00 AM | Thomas Pasquier | ||
Instructor(s) Extended Description Please refer to the course website for an extended description of the course. |
CPSC 436C - 2023W
Topics in Computer Science - CLOUD COMPUTING
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | Maryam Raiyat Aliabadi | ||
Instructor(s) |
||||||
201 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | Maryam Raiyat Aliabadi | ||
Instructor(s) |
CPSC 436E - 2023W
Topics in Computer Science - ENTREPRENEURSHIP
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Wed | 9:00 AM - 12:00 PM | Frank Wood | ||
Instructor(s) |
CPSC 436N - 2023W
Topics in Computer Science - NLP
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Vered Shwartz | ||
Instructor(s) |
CPSC 436R - 2023W
Topics in Computer Science - RANDOMIZED ALGS
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | Nick Harvey | ||
Instructor(s) |
CPSC 436S - 2023W
Topics in Computer Science - COMP SECURITY
Selected topics in a specific area within Computer Science. May be taken more than once for credit with permission of the department.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Wed Fri | 10:30 AM - 12:00 PM | Robert Xiao | ||
Instructor(s) |
CPSC 440 - 2023W
Advanced Machine Learning
Advanced machine learning techniques focusing on probabilistic models. Deep learning and differentiable programming, exponential families and Bayesian inference, probabilistic graphical models and other generative models, Monte Carlo and variational inference methods.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | Danica Sutherland | ||
Instructor(s) |
CPSC 444 - 2023W
Advanced Methods for Human Computer Interaction
Design and evaluation methodologies and theories; formal models of the user including visual, motor, and information processing; advanced evaluation methods including laboratory experiments and field studies; HCI research frontiers.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue | 3:30 PM - 5:30 PM | |||
|
CPSC 445 - 2023W
Algorithms in Bioinformatics
Sequence alignment, phylogenetic tree reconstruction, prediction of RNA and protein structure, gene finding and sequence annotation, gene expression, and biomolecular computing.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | |||
|
CPSC 447 - 2023W
Introduction to Visualization
Design and implementation of static and interactive visualizations. Selection of appropriate visualization methods for given combinations of data type and intended analysis task. Assessment of visual representations according to design and perceptual principles.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Thu | 2:00 PM - 5:00 PM | Tamara Munzner | ||
Instructor(s) |
CPSC 490A - 2023W
Student Directed Seminars - CS PEDAGOGY
Self-directed, collaborative studies, in a group-learning environment, initiated and coordinated by senior undergraduate students with the supervision of a faculty advisor. Course structure, enrolment and delivery methods will comply with the "Handbook for Student Directed Seminars".
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | |||||
|
CPSC 491 - 2023W
Interactive Digital Media Practicum
Design and implementation of interactive digital media systems using modern processes and tools. Projects provided by external clients or vetted entrepreneurial pitches are developed by interdisciplinary teams composed of one CPSC 491 student and multiple Master of Digital Media students.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | |||||
|
CPSC 501 - 2023W
Theory of Automata, Formal Languages and Computability
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | Joel Friedman | Course Page | |
Instructor(s) Extended Description This is a one-term introductory course to the theory of computing, covering: regular languages, Turing machines, undecidable problems, and NP-completeness. Specific topics covered varies from year to year. CPSC 501 is the same as CPSC 421, except that the CPSC 501 students have an additional presentation/report. |
CPSC 504 - 2023W
Data Management
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 12:00 PM - 1:30 PM | Rachel Pottinger | ||
Instructor(s) |
CPSC 508 - 2023W
Operating Systems
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Reto Achermann | ||
Instructor(s) |
CPSC 509 - 2023W
Programming Language Principles
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Ronald Garcia | ||
Instructor(s) |
CPSC 517 - 2023W
Sparse Matrix Computation
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | Chen Greif | ||
Instructor(s) |
CPSC 521 - 2023W
Parallel Algorithms and Architectures
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 1:00 PM - 2:00 PM | Mark Greenstreet | ||
Instructor(s) |
CPSC 522 - 2023W
Artificial Intelligence II
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | David Poole | ||
Instructor(s) |
CPSC 524 - 2023W
Computer Graphics: Modelling
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 10:00 AM - 11:30 AM | Alla Sheffer | ||
Instructor(s) |
CPSC 532C - 2023W
Topics in Artificial Intelligence - HUMAN-CENTRED AI
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Thu | 9:30 AM - 12:30 PM | Cristina Conati | ||
Instructor(s) |
CPSC 532D - 2023W
Topics in Artificial Intelligence - STAT LEARN THRY
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Danica Sutherland | ||
Instructor(s) Extended Description When should we expect machine learning algorithms to work? What kinds of assumptions do we need to be able to be able to rigorously prove that they will work? This course will cover the mathematical foundations of machine learning. |
CPSC 532L - 2023W
Topics in Artificial Intelligence - STRATEGIC MODELS
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | Kevin Leyton-Brown | ||
Instructor(s) |
CPSC 532V - 2023W
Topics in Artificial Intelligence - NLP COMMONSENSE
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 3:00 PM - 4:30 PM | Vered Shwartz | ||
Instructor(s) |
CPSC 532Y - 2023W
Topics in Artificial Intelligence - CAUSAL ML
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 11:00 AM - 12:30 PM | Mathias Lécuyer | ||
Instructor(s) |
CPSC 533R - 2023W
Topics in Computer Graphics - VISUAL AI
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | Helge Rhodin | ||
Instructor(s) Extended Description Computer Graphics (CG) enables artists to realize their creative visions. Technically, one is concerned with efficiently simulating light transport for photorealistic rendering, finding the right parametrization for the shape and appearance of objects, and making these digital models accessible to the artist. Creating digital content is a tedious process, which is alleviated by Computer Vision (CV) by reconstructing real scenes from natural images. |
CPSC 533V - 2023W
Topics in Computer Graphics - LEARNING TO MOVE
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 1:30 PM - 3:00 PM | Michiel van de Panne | ||
Instructor(s) Extended Description This course is about learning to control the movement of humans, animals, and robots, with application to character animation, computer vision, robotics, and biological motor control. The bulk of the course will focus on reinforcement learning (RL), which has seen many advances over the past five years. Topics to be covered include motion control problems, sequential decision problems, RL fundamentals, dynamic programming, tabular methods, deep Q-learning, policy gradient methods, common policy gradient algorithms (A2C, A3C, TRPO, PPO), common Q-learning algorithms (DDPG, SAC, TD3), model-based RL and model-predictive control, imitation learning, RL and representation learning, sim-to-real, RL frameworks, forward/inverse kinematics and dynamics, linear quadratic regulators, and advanced topics in RL. |
CPSC 533Y - 2023W
Topics in Computer Graphics - DEEP VIS. GEOM.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 9:30 AM - 11:00 AM | Kwang Moo Yi | ||
Instructor(s) |
CPSC 536E - 2023W
Topics in Algorithms and Complexity - GRAPH DRAWING
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | William Evans | ||
Instructor(s) |
||||||
201 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | William Evans | ||
Instructor(s) |
CPSC 536M - 2023W
Topics in Algorithms and Complexity - OPTIM THEORY
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | Michael Friedlander | ||
Instructor(s) |
CPSC 536S - 2023W
Topics in Algorithms and Complexity - SUBMODULAR OPT
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 1:00 PM - 2:30 PM | Bruce Shepherd | ||
Instructor(s) |
CPSC 536W - 2023W
Topics in Algorithms and Complexity - QUANTUM COMP
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 9:30 AM - 11:00 AM | Daochen Wang | ||
Instructor(s) |
CPSC 538B - 2023W
Topics in Computer Systems - DISTSYS
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | Ivan Beschastnikh | ||
Instructor(s) |
CPSC 538G - 2023W
Topics in Computer Systems - REAL-TIME COMP.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:30 PM - 4:00 PM | Arpan Gujarati | ||
Instructor(s) |
CPSC 538L - 2023W
Topics in Computer Systems - CAUSAL ML
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 11:00 AM - 12:30 PM | Mathias Lécuyer | ||
Instructor(s) Extended Description Machine learning ecosystems run on vast amounts of personal information which are digested into models used for understanding and prediction. However, these ML models have been shown to leak information about users. Differential Privacy enables privacy-preserving statistical analyses on sensitive datasets with provable privacy guarantees. As such, it is seeing increasing interest from both academia and industry. In this course we will explore Differential Privacy theory, and its application to machine learning, from individual models to end-to-end applications. The learning objectives for this class are to:
This is a seminar course with a majority of the lecture time devoted to student-led paper presentations and discussions, although there will be some lectures. |
CPSC 538M - 2023W
Topics in Computer Systems - SYSTEMS SECURITY
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | Aastha Mehta | ||
Instructor(s) Extended Description This is a graduate course covering topics on security and privacy techniques for software systems in the web, cloud, mobile, and edge. |
CPSC 538P - 2023W
Topics in Computer Systems - SYSTEMS SECURITY
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 9:30 AM - 11:00 AM | Thomas Pasquier | ||
Instructor(s) |
CPSC 538S - 2023W
Topics in Computer Systems - ACCOUNTABLE SYS
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon | 2:00 PM - 5:00 PM | Thomas Pasquier | ||
Instructor(s) |
CPSC 539B - 2023W
Topics in Programming Languages - DEPENDENT TYPES
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 2:00 PM - 3:30 PM | William J. Bowman | Course Page | |
Instructor(s) Extended Description Dependent type systems are advanced type systems that enable program verification and mechanized formal mathematics through well-typed programming. In this course, we'll learn the basics of what dependent types are, how to use them for verify simple programs and mathematical results, and how they're implemented. |
CPSC 539L - 2023W
Topics in Programming Languages - AUTOMATEDTESTING
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | Caroline Lemieux | ||
Instructor(s) |
CPSC 539S - 2023W
Topics in Programming Languages - PROGRAMVERIFIERS
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | Alex Summers | ||
Instructor(s) |
CPSC 540 - 2023W
Machine Learning
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) |
||||||
102 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) |
||||||
1W1 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) |
||||||
1W2 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | Mark Schmidt, Jeff Clune | ||
Instructor(s) |
||||||
T1C | Term 1 | Thu | 10:00 AM - 11:00 AM | |||
|
CPSC 542S - 2023W
Topics in Numerical Computation - OPT FOR ML
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Mark Schmidt | ||
Instructor(s) |
||||||
2W1 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | Mark Schmidt | ||
Instructor(s) |
CPSC 543 - 2023W
Physical User Interface Design and Evaluation
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon | 10:00 AM - 12:00 PM | Karon MacLean | ||
Instructor(s) |
CPSC 544 - 2023W
Human Computer Interaction
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 10:00 AM - 11:30 AM | Karon MacLean | ||
Instructor(s) Extended Description This course is cross-listed with CPSC 344. As for 344, it requires enrolment in a tutorial section, which meets twice/week in addition to the lecture. See registration page for available times. |
CPSC 545 - 2023W
Algorithms for Bioinformatics
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 3:00 PM - 4:30 PM | Jiarui Ding | ||
Instructor(s) |
CPSC 550 - 2023W
Machine Learning II
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | Danica Sutherland | ||
Instructor(s) |
CPSC 554C - 2023W
Topics in Human-Computer Interaction - HUMAN-CENTRED AI
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Thu | 9:30 AM - 12:30 PM | Cristina Conati | ||
Instructor(s) |
CPSC 554K - 2023W
Topics in Human-Computer Interaction - DFP PROJECT
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
201 | Term 2 | Wed | 9:30 AM - 1:30 PM | |||
|
CPSC 554X - 2023W
Topics in Human-Computer Interaction - ML & SIGNALS
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | Robert Xiao | ||
Instructor(s) |
DSCI 320 - 2023W
Visualization for Data Science
Analysis, design, and implementation of static and interactive visual representations; visualization literacy; data communication; exploratory Data Analysis; application of theoretical principles to visualization development.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 9:30 AM - 11:00 AM | Oluwakemi Ola | ||
Instructor(s) |
DSCI 430 - 2023W
Fairness, Accountability, Transparency and Ethics (FATE) in Data Science
Ethical application of data science and machine learning algorithms. Application of ethical theories in real-world case studies. Data ownership, collection, and validity. Algorithm auditing, fairness and transparency. Reducing unfairness in algorithms. Deployment of predictive models and dissemination of results.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 3:30 PM - 5:00 PM | Giulia Toti | ||
Instructor(s) |