Course Timetable
APSC 160 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 8:00 AM - 9:30 AM | CIRS 1250 | Seyyed Hosseini | ||
Instructor(s) |
|||||||
102 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | SCRF 100 | Rik Blok | ||
Instructor(s) |
|||||||
9AR | Term 1 | ||||||
|
|||||||
VE1 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | ORCH 3074 | |||
|
|||||||
202 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | FSC 1005 | Seyyed Hosseini | ||
Instructor(s) |
|||||||
204 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | GEOG 100 | Geoffrey Tien | ||
Instructor(s) |
CPSC 100 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 3:00 PM - 4:00 PM | FRDM 153 | Rik Blok | ||
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 | Tue Thu | 3:30 PM - 5:00 PM | SWNG 221 | Vsevolod Lynov | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | LIFE 2201 | 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. |
|||||||
102 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | LIFE 2201 | 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. |
|||||||
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | ESB 1013 | 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 | WESB 100 | 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. |
CPSC 107 - 2022W
Systematic Program Design
Fundamental computation and program structures. Continuing systematic program design from CPSC 103.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | DMP 310 | Meghan Allen | ||
Instructor(s) |
CPSC 110 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | MCLD 3008 | 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 | 2:00 PM - 3:30 PM | MATH 203 | 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. |
|||||||
103 | Term 1 | Mon Wed | 9:30 AM - 11:00 AM | SWNG 105 | Oluwakemi Ola | ||
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 | ORCH 1001 | Oluwakemi Ola | ||
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. |
|||||||
201 | Term 2 | Tue Thu | 12:30 PM - 2:00 PM | ANGU 291 | 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. |
|||||||
203 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | IBLC 185 | 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. |
|||||||
V01 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | HEBB 114 | Oluwakemi Ola | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | DMP 310 | 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:
|
|||||||
102 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | FSC 1005 | 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 | FSC 1005 | 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:
|
|||||||
201 | Term 2 | Tue Thu | 12:30 PM - 2:00 PM | SWNG 221 | Geoffrey Tien | ||
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 | SWNG 222 | Geoffrey Tien | ||
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 | ESB 1013 | Patrice Belleville | ||
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:
|
|||||||
204 | Term 2 | Tue Thu | 9:30 AM - 11:00 AM | HENN 201 | Geoffrey Tien | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | LIFE 2302 | Cinda Heeren | ||
Instructor(s) |
CPSC 210 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | CIRS 1250 | Steve Wolfman, Felix Grund | 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 | 1:00 PM - 2:00 PM | DMP 310 | Steve Wolfman, Felix Grund | 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 | 3:00 PM - 4:00 PM | WESB 100 | Steve Wolfman | ||
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
|
|||||||
104 | Term 1 | Fri | 4:00 PM - 5:00 PM | SWNG 121 | 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 | ESB 1013 | Steve Wolfman | 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
|
|||||||
202 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | DMP 310 | Meghan Allen | ||
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 | ESB 1013 | Steve Wolfman | 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
|
CPSC 213 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | FRDM 153 | Mike Feeley | ||
Instructor(s) |
|||||||
102 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | DMP 310 | Geoffrey Tien | ||
Instructor(s) |
|||||||
203 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | FSC 1005 | Jordon Johnson | ||
Instructor(s) |
|||||||
204 | Term 2 | Mon Wed Fri | 9:00 AM - 10:00 AM | ESB 1013 | Jordon Johnson | ||
Instructor(s) |
|||||||
205 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | LIFE 2201 | Jordon Johnson | ||
Instructor(s) |
CPSC 221 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | MATH 100 | Cinda Heeren | ||
Instructor(s) |
|||||||
102 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | Cinda Heeren | |||
Instructor(s) |
|||||||
201 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | FSC 1005 | Cinda Heeren | ||
Instructor(s) |
|||||||
202 | Term 2 | Mon Wed Fri | 4:00 PM - 5:00 PM | CHBE 101 | |||
|
|||||||
203 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | FSC 1005 | Cinda Heeren | ||
Instructor(s) |
CPSC 259 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 8:00 AM - 9:00 AM | FSC 1005 | Geoffrey Tien | ||
Instructor(s) |
CPSC 302 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 1:00 PM - 2:00 PM | FRDM 153 | Chen Greif | ||
Instructor(s) |
CPSC 303 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 2:00 PM - 3:00 PM | CEME 1202 | Alexandra Bunger | ||
Instructor(s) |
CPSC 304 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | SWNG 221 | Rachel Pottinger | Course Page | |
Instructor(s) Course Page |
|||||||
102 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | DMP 310 | Jessica Wong | Course Page | |
Instructor(s) Course Page |
|||||||
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | SWNG 121 | Raymond Ng | Course Page | |
Instructor(s) Course Page |
|||||||
202 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | CIRS 1250 | Jessica Wong | ||
Instructor(s) Extended Description The preliminary syllabus is here: https://www.students.cs.ubc.ca/~cs-304/2021W1/cpsc304_2021w1_syllabus.pdf |
CPSC 310 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | ORCH 3074 | Ivan Beschastnikh, Reid Holmes | 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:
|
|||||||
102 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | FNH 50 | Ivan Beschastnikh, Reid Holmes | 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:
|
|||||||
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | DMP 301 | Ivan Beschastnikh, Felix Grund | ||
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 | 2:00 PM - 3:30 PM | SWNG 107 | Ivan Beschastnikh, Felix Grund | ||
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 | 9:00 AM - 10:30 AM | FORW 519 | Ivan Beschastnikh, Felix Grund | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 10:00 AM - 11:00 AM | HENN 201 | |||
|
CPSC 312 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 12:00 PM - 1:00 PM | FRDM 153 | David Poole | Course Page | |
Instructor(s) Course Page 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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 4:00 PM - 5:00 PM | LSK 201 | Norm Hutchinson, Patrice Belleville | Course Page | |
Instructor(s) Course Page 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 | BIOL 1000 | Norm Hutchinson, Patrice Belleville | Course Page | |
Instructor(s) Course Page 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 | MATH 100 | Margo Seltzer, Patrice Belleville | ||
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 | IRC 6 | Margo Seltzer, Patrice Belleville | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | LSK 201 | Michiel van de Panne | Course Page | |
Instructor(s) Course Page 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 | DMP 310 | 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. |
CPSC 317 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 9:00 AM - 10:00 AM | SWNG 221 | Alan Wagner | ||
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:
|
|||||||
201 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | LSK 201 | 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 | 1:00 PM - 2:00 PM | ANGU 098 | 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:
|
CPSC 319 - 2022W
Software Engineering Project
The design, implementation, and test of a large software system, using a team approach.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 6:30 PM - 8:00 PM | DMP 110 | Jerry Jim | ||
Instructor(s) |
CPSC 320 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 2:00 PM - 3:00 PM | BIOL 1000 | Patrice Belleville | Course Page | |
Instructor(s) Course Page 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 | CHBE 101 | 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:
|
|||||||
103 | Term 1 | Mon Wed Fri | 11:00 AM - 12:00 PM | DMP 310 | 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:
|
|||||||
201 | Term 2 | Mon Wed Fri | 10:00 AM - 11:00 AM | SWNG 221 | Alan Hu | ||
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 | BIOL 1000 | Alan Hu | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | DMP 310 | Jordon Johnson | ||
Instructor(s) |
|||||||
102 | Term 1 | Tue Thu | 5:00 PM - 6:30 PM | CHBE 101 | Jordon Johnson | ||
Instructor(s) |
|||||||
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | CHBE 101 | Mehrdad Oveisi | ||
Instructor(s) |
CPSC 330 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
102 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | DMP 310 | Varada Kolhatkar | Course Page | |
Instructor(s) Course Page 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 | 2:00 PM - 3:30 PM | GEOG 100 | Giulia Toti | ||
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 | IRC 3 | 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. |
|||||||
203 | Term 2 | Tue Thu | 5:00 PM - 6:30 PM | DMP 310 | Amir Abdi | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | LIFE 2201 | Mark Schmidt, Andreas Lehrmann | Course Page | |
Instructor(s) Course Page 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 | LIFE 2302 | Mark Schmidt, Andreas Lehrmann | Course Page | |
Instructor(s) Course Page 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 | DMP 310 | Jeff Clune, Andreas Lehrmann | ||
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 | DMP 110 | Jeff Clune, Andreas Lehrmann | ||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Wed | 5:00 PM - 6:30 PM | DMP 110 | Izabelle Janzen | Course Page | |
Instructor(s) 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 | MCLD 2018 | Dongwook Yoon | ||
Instructor(s) Extended Description Either 211 or 210 will automatically suffice for the 344 pre-requisite. |
CPSC 349 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
001 | Term 1 & 2 | Thu | 3:30 PM - 5:00 PM | DMP 101 | Mark Greenstreet | ||
Instructor(s) |
CPSC 368 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | DMP 301 | Jessica Wong | Course Page | |
Instructor(s) Course Page |
CPSC 402 - 2022W
Numerical Linear Algebra
Investigation of the practical techniques of computational linear algebra. Orthogonal transformations and their application to the solution of linear equations, the eigenproblem, and linear least squares. Complete solution of the symmetric eigenproblem, including bisection and the QR method. Refinements of these techniques for sparse matrices.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 9:00 AM - 10:00 AM | IRC 1 | Yunhui He | ||
Instructor(s) |
CPSC 404 - 2022W
Advanced Relational Databases
Physical database design, indexing, relational query processing and optimization, transaction processing, concurrency control, crash recovery, data warehouses, data cubes, views, special topics.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | SWNG 222 | 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 | SWNG 221 | |||
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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | DMP 310 | Michael Friedlander | ||
Instructor(s) |
CPSC 410 - 2022W
Advanced Software Engineering
Specification, design, construction and validation of multi-version software systems.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | DMP 110 | Alex Summers | Course Page | |
Instructor(s) Course Page |
CPSC 411 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | DMP 110 | William J. Bowman | Course Page | |
Instructor(s) 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 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 8:00 AM - 9:30 AM | DMP 301 | Tony Mason | ||
Instructor(s) |
CPSC 418 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 3:00 PM - 4:00 PM | CEME 1202 | Mark Greenstreet | ||
Instructor(s) |
CPSC 420 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 1:00 PM - 2:00 PM | FRDM 153 | William Evans | ||
Instructor(s) |
CPSC 421 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | LIFE 2302 | Nick Harvey | Course Page | |
Instructor(s) Course Page |
CPSC 422 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | DMP 310 | Jordon Johnson | ||
Instructor(s) |
CPSC 424 - 2022W
Geometric Modelling
Digital representation of curves and surfaces, including splines, subdivision surfaces and meshes. Principles, algorithms and mathematical foundations for geometry representation in computer graphics, computer vision, fabrication, CAD/CAM, and medical imaging. Algorithms for acquisition, creation, representation, and processing of 3D shapes.
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | DMP 301 | Alla Sheffer | ||
Instructor(s) |
CPSC 425 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Wed | 5:00 PM - 8:00 PM | IRC 1 | |||
|
|||||||
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | FRDM 153 | Leonid Sigal | ||
Instructor(s) |
CPSC 427 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Wed | 3:00 PM - 4:00 PM | DMP 110 | |||
|
CPSC 430 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 12:30 PM - 2:00 PM | DMP 110 | Kevin Leyton-Brown | Course Page | |
Instructor(s) |
|||||||
102 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | DMP 301 | Giulia Toti | Course Page | |
Instructor(s) |
CPSC 436A - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:00 AM - 11:00 AM | MCLD 2002 | Reto Achermann, Thomas Pasquier | Course Page | |
Instructor(s) Course Page Extended Description Please refer to the course website for an extended description of the course. |
CPSC 436N - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | DMP 110 | Vered Shwartz | Course Page | |
Instructor(s) |
CPSC 436R - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed Fri | 11:00 AM - 12:00 PM | DMP 110 | Nick Harvey | Course Page | |
Instructor(s) Course Page |
CPSC 436S - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Wed Fri | 10:30 AM - 12:00 PM | MCLD 2002 | Karina Mochetti | ||
Instructor(s) |
CPSC 440 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 3:30 PM - 5:00 PM | SWNG 122 | Danica Sutherland | ||
Instructor(s) |
CPSC 444 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue | 3:30 PM - 5:30 PM | CEME 1202 | Izabelle Janzen | ||
Instructor(s) |
CPSC 445 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | DMP 301 | Jiarui Ding | Course Page | |
Instructor(s) Course Page |
CPSC 447 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue | 2:00 PM - 5:00 PM | MCML 166 | Tamara Munzner | Course Page | |
Instructor(s) |
CPSC 490A - 2022W
Student Directed Seminars - CMP INT & DESIGN
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 5:30 PM - 7:00 PM | IONA B151 | |||
|
CPSC 491 - 2022W
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 | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | ||||||
|
CPSC 504 - 2022W
Data Management
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 11:00 AM - 12:30 PM | DMP 201 | Rachel Pottinger | Course Page | |
Instructor(s) |
CPSC 507 - 2022W
Software Engineering
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | DMP 201 | Reid Holmes | Course Page | |
Instructor(s) Course Page |
CPSC 508 - 2022W
Operating Systems
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 9:30 AM - 11:00 AM | ICCS 246 | Margo Seltzer | Course Page | |
Instructor(s) |
CPSC 516 - 2022W
Computational Geometry
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | DMP 201 | William Evans | ||
Instructor(s) |
CPSC 517 - 2022W
Sparse Matrix Computation
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 3:30 PM - 5:00 PM | ICCS 246 | Chen Greif | ||
Instructor(s) |
CPSC 521 - 2022W
Parallel Algorithms and Architectures
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | ICCS 246 | Mark Greenstreet | ||
Instructor(s) |
CPSC 522 - 2022W
Artificial Intelligence II
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 9:30 AM - 11:00 AM | ICCS 246 | David Poole | Course Page | |
Instructor(s) Course Page |
|||||||
2W1 | Term 2 | Mon Wed | 9:30 AM - 11:00 AM | David Poole | |||
Instructor(s) |
CPSC 532C - 2022W
Topics in Artificial Intelligence - HUMAN-CENTRED AI
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Thu | 9:30 AM - 12:30 PM | ICCS 246 | Cristina Conati | ||
Instructor(s) |
CPSC 532D - 2022W
Topics in Artificial Intelligence - STAT LEARN THRY
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 3:00 PM - 4:30 PM | ORCH 3004 | Danica Sutherland | Course Page | |
Instructor(s) Course Page 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 532G - 2022W
Topics in Artificial Intelligence - DISCOURSE IN NLP
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 3:30 PM - 5:00 PM | DMP 201 | Giuseppe Carenini | ||
Instructor(s) |
CPSC 532J - 2022W
Topics in Artificial Intelligence - NEVER-ENDING RL
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 2:00 PM - 3:30 PM | DMP 201 | Jeff Clune | ||
Instructor(s) |
CPSC 532L - 2022W
Topics in Artificial Intelligence - STRATEGIC MODELS
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Tue Thu | 2:00 PM - 3:30 PM | ICCS 246 | Kevin Leyton-Brown | Course Page | |
Instructor(s) |
CPSC 532M - 2022W
Topics in Artificial Intelligence - INTRO ML AND DM
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed Fri | 12:00 PM - 1:00 PM | LIFE 2201 | Mark Schmidt, Andreas Lehrmann | Course Page | |
Instructor(s) Course Page |
CPSC 532P - 2022W
Topics in Artificial Intelligence - PRIVACY IN ML
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Fri | 1:30 PM - 3:00 PM | ICCS 246 | Mi Jung Park | Course Page | |
Instructor(s) |
CPSC 532S - 2022W
Topics in Artificial Intelligence - VISION&LANGUAGE
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Tue Thu | 11:00 AM - 12:30 PM | ICCS 246 | Leonid Sigal | Course Page | |
Instructor(s) Extended Description Multimodal machine learning is a multi-disciplinary research field which addresses some of the core goals of artificial intelligence by integrating and modeling two or more data modalities (e.g., visual, linguistic, acoustic, etc.). This course will teach fundamental concepts related to multimodal machine learning, including (1) representation learning, (2) translation and mapping, and (3) modality alignment. While the fundamental techniques covered in this course are applicable broadly, the focus will on studying them in the context of joint reasoning and understanding of images/videos and language (text). In addition to fundamentals, we will study recent rich body of research at the intersection of vision and language, including problems of (i) generating image descriptions using natural language, (ii) visual question answering, (iii) retrieval of images based on textural queries (and vice versa), (iv) generating images/videos from textual descriptions, (v) language grounding and many other related topics. On a technical side, we will be studying neural network architectures of various forms, including convolutional neural networks (CNNs), recurrent neural networks (RNNs), memory networks, attention models, neural language models, structures prediction models. |
CPSC 532V - 2022W
Topics in Artificial Intelligence - NLP COMMONSENSE
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
201 | Term 2 | Mon Wed | 3:00 PM - 4:30 PM | DMP 301 | Vered Shwartz | ||
Instructor(s) |
CPSC 532W - 2022W
Topics in Artificial Intelligence - PROB PROG
Section | Term | Days | Time | Location | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|---|
101 | Term 1 | Mon Wed | 11:00 AM - 12:30 PM | DMP 201 | Frank Wood | Course Page | |
Instructor(s) Course Page Extended Description IntroductionProbabilistic programming lies at the intersection of machine learning, statistics, programming languages, and deep learning. Historically probabilistic programming has been about automating Bayesian statistical inference; more recently it has emerged as a candidate for the next toolchain for AI, particularly for unsupervised, semi-supervised, and reinforcement learning. Learning OutcomesBy the end of this course you will know how to (if you don’t already):
Skills and knowledge that you will reinforce or acquire:
|