Course Timetable
APSC 160 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 1 | Mon Tue Wed | 9:00 AM - 11:00 AM | |||
|
CPSC 100 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 2 | Tue Thu | 1:30 PM - 5:00 PM | 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. |
CPSC 103 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 | Tue Thu | 11:00 AM - 2:30 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 - 2024S
Systematic Program Design
Fundamental computation and program structures. Continuing systematic program design from CPSC 103.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
V01 | Term 1 & 2 | Mon Wed | 1:30 PM - 3:30 PM | Meghan Allen | ||
Instructor(s) |
CPSC 121 - 2024S
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 |
---|---|---|---|---|---|---|
V01 | Term 1 & 2 | Mon Wed | 10:00 AM - 12:00 PM | 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:
|
||||||
921 | Term 2 | Mon Wed Fri | 9:30 AM - 12:00 PM | 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:
|
CPSC 210 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 2 | Tue Thu | 9:30 AM - 1:00 PM | Paul Carter | ||
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 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 2 | Tue Thu | 9:00 AM - 12:30 PM | Jordon Johnson | ||
Instructor(s) Extended Description Help students develop a model of computation that is rooted in what really happens when a program executes. |
CPSC 221 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 | Mon Wed Fri | 1:30 PM - 4:00 PM | Geoffrey Tien | ||
Instructor(s) |
CPSC 304 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 2 | Tue Thu | 1: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 |
CPSC 310 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 1 & 2 | Tue Thu | 9:30 AM - 11:00 AM | Chris Kerslake | ||
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 317 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 | Tue Thu | 11:00 AM - 2:30 PM | Maryam Raiyat Aliabadi | ||
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 320 - 2024S
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 |
---|---|---|---|---|---|---|
921 | Term 2 | Mon Wed Fri | 9:30 AM - 12: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 330 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 | Mon Wed Fri | 10:00 AM - 1: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. |
||||||
912 | Term 1 | Mon Wed Fri | 2:00 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 430 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 | Mon Wed Fri | 10:00 AM - 12:30 PM | Firas Moosvi | ||
Instructor(s) |
||||||
921 | Term 2 | Mon Wed Fri | 1:30 PM - 4:00 PM | Firas Moosvi | ||
Instructor(s) |
CPSC 455 - 2024S
Applied Industry Practices
Hands-on project, mentored by industry experts, integrating skills relevant to early career in the computing industry: technical skills, communication, teamwork, networking and portfolio building.
Section | Term | Days | Time | Instructor(s) | Webpage | Details |
---|---|---|---|---|---|---|
901 | Term 1 & 2 | Sat | 10:00 AM - 3:30 PM | Ian McLean, Firas Moosvi | ||
Instructor(s) |
CPSC 491 - 2024S
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 |
---|---|---|---|---|---|---|
911 | Term 1 & 2 | Steve Wolfman | ||||
Instructor(s) |