Search

Group words with double-quotes ".
Back
1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(EITHER, 3-1S-0)

Social, ethical, professional, economic, and legal issues in the development and deployment of computer technology in society. Prerequisites: Any introductory-level Computing Science course or SCI 100, and any 200-level course.

3 units (fi 6)(EITHER, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or 275. This course may not be taken for credit if credit has been obtained in MIS 419 or BTM 419.

3 units (fi 6)(EITHER, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or CMPUT 275. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.

3 units (fi 6)(EITHER, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or CMPUT 275. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or 275. This course may not be taken for credit if credit has been obtained in MIS 419 or BTM 419.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or CMPUT 275. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or 275. This course may not be taken for credit if credit has been obtained in MIS 419 or BTM 419.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or CMPUT 275. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.

3 units (fi 6)(EITHER, 3-0-3)

A complementary course to introductory software engineering focused on a user-centered approach to software design. The main themes are how humans interact with physical and information environments, and how to design software with human's information needs and their cognitive capacities in mind. Topics include the user-centered design cycle, and evaluation methods for discovering usability problems in interface design. Prerequisite: CMPUT 301.

3 units (fi 6)(EITHER, 3-0-0)

This course is focused on algorithmic problems, where a solution involves properly understanding a written description, designing an efficient algorithm to solve the problem, and then correctly implementing the solution. Students will use previous knowledge in algorithms, data structures, and mathematical reasoning to solve problems in addition to learning new algorithms and data structures. Lectures are shared with CMPUT 403. Credit cannot be obtained for both CMPUT 303 and CMPUT 403. Prerequisites: CMPUT 201 or 275, and 204.

3 units (fi 6)(EITHER, 3-1S-0)

The second course of a two-course sequence on algorithm design. Emphasis on principles of algorithm design. Categories of algorithms such as divide-and-conquer, greedy algorithms, dynamic programming; analysis of algorithms; limits of algorithm design; NP-completeness; heuristic algorithms. Prerequisites: CMPUT 204; one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181; and one of MATH 225, 227, or 228.

Effective: 2026-09-01 CMPUT 304 - Algorithms II

3 units (fi 6)(EITHER, 3-1S-0)

The second course of a two-course sequence on algorithm design. Emphasis on principles of algorithm design. Categories of algorithms such as divide-and-conquer, greedy algorithms, dynamic programming; analysis of algorithms; limits of algorithm design; NP-completeness; heuristic algorithms. Prerequisites: CMPUT 204; one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181; and one of MATH 102, 125, 126, or 127.

Effective: 2026-09-01 CMPUT 304 - Algorithms II

3 units (fi 6)(EITHER, 3-1S-0)

The second course of a two-course sequence on algorithm design. Emphasis on principles of algorithm design. Categories of algorithms such as divide-and-conquer, greedy algorithms, dynamic programming; analysis of algorithms; limits of algorithm design; NP-completeness; heuristic algorithms. Prerequisites: CMPUT 204; one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181; and one of MATH 102, 125, 126, or 127.

3 units (fi 6)(EITHER, 3-0-3)

An introductory course on the theory and applications of computer based 3D modeling and animation. The course will cover a selection of topics from overview of tools supporting modeling and animation, automatically generating 3D models, and animation of skeleton based models through algorithms and software. Applications of 3D modeling and animation in games, virtual/augmented environments, movies, and emerging video transmission algorithms will be discussed. Prerequisites: CMPUT 206, or CMPUT 204 and one of MATH 225 or 227.

3 units (fi 6)(EITHER, 3-0-3)

An introductory course in video data processing, with implementations in programming languages, like Python, C and MATLAB, using libraries like OpenCV. Topics in this course may include video capture, video compression, tracking, video content understanding, real-time video conferencing and surveillance. Time permitting, advanced topics like video mining, 3D modeling, and motion capture-based video coding, video-based 3D scene understanding could be discussed. Prerequisites: CMPUT 201 and 206; one of MATH 102, 125, or 127; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

3 units (fi 6)(EITHER, 3-0-3)

An introductory course in video data processing, with implementations in programming languages, like Python, C and MATLAB, using libraries like OpenCV. Topics in this course may include video capture, video compression, tracking, video content understanding, real-time video conferencing and surveillance. Time permitting, advanced topics like video mining, 3D modeling, and motion capture-based video coding, video-based 3D scene understanding could be discussed. Prerequisites: CMPUT 201 and 206; one of MATH 102, 125, 126, or 127; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

3 units (fi 6)(EITHER, 3-0-3)

Algorithms and software paradigms for robot programming; mathematical modeling of robot arms and rovers including kinematics, and an introduction to dynamics and control; sensors, motors and their modeling; basics of image processing and machine vision; vision-guided motion control. Prerequisite: CMPUT 201 and CMPUT 204, or CMPUT 275; and permission of the Department. Corequisite: CMPUT 340 or CMPUT 418, or ECE 240.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to computer communication networks; protocols for error and flow control; wired and wireless medium access protocols; routing and congestion control; internet architecture and protocols; multimedia transmission; recent advances in networking. Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 229, E E 380, or ECE 212; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

Effective: 2026-09-01 CMPUT 313 - Computer Networks

3 units (fi 6)(EITHER, 3-0-3)

Introduction to computer communication networks; protocols for error and flow control; wired and wireless medium access protocols; routing and congestion control; internet architecture and protocols; multimedia transmission; recent advances in networking. Prerequisites: CMPUT 201 and 204, or 275; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181. Corequisite: CMPUT 379.

Effective: 2026-09-01 CMPUT 313 - Computer Networks

3 units (fi 6)(EITHER, 3-0-3)

Introduction to computer communication networks; protocols for error and flow control; wired and wireless medium access protocols; routing and congestion control; internet architecture and protocols; multimedia transmission; recent advances in networking. Prerequisites: CMPUT 201 and 204, or 275; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181. Corequisite: CMPUT 379.

3 units (fi 6)(EITHER, 3-0-3)

A study of the theory, run-time structure, and implementation of selected non-procedural programming languages. Languages will be selected from the domains of functional, and logic-based languages. Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 229, E E 380, or ECE 212; and one of MATH 102, 125, or 127.

3 units (fi 6)(EITHER, 3-0-3)

A study of the theory, run-time structure, and implementation of selected non-procedural programming languages. Languages will be selected from the domains of functional, and logic-based languages. Prerequisites: CMPUT 201 and 204, or 275; and one of MATH 102, 125, 126, or 127.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to visual recognition to recognize objects and classify scenes or images automatically by a computer. Supervised and unsupervised machine learning principles and deep learning techniques will be utilized for visual recognition. Successful commercial systems based on visual recognition range from entertainment to serious scientific research: face detection and recognition on personal devices, social media. Prerequisites: CMPUT 175 or 275; one of MATH 100, 114, 117, 134, 144, or 154; one of MATH 102, 125, or 127; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

Effective: 2026-09-01 CMPUT 328 - Visual Recognition

3 units (fi 6)(EITHER, 3-0-3)

Introduction to visual recognition to recognize objects and classify scenes or images automatically by a computer. Supervised and unsupervised machine learning principles and deep learning techniques will be utilized for visual recognition. Successful commercial systems based on visual recognition range from entertainment to serious scientific research: face detection and recognition on personal devices, social media. Prerequisites: CMPUT 175 or 275; one of MATH 100, 114, 117, 134, 144, or 154; one of MATH 102, 125, 126, or 127; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

3 units (fi 6)(EITHER, 3-0-3)

CMOS technology, digital circuits, combinational logic, sequential logic, memory technologies, programmable logic devices, control logic design, register transfer logic, CPU design, hardware description languages. Prerequisite: one of CMPUT 229, E E 380 or ECE 212. Credit may be obtained in only one of CMPUT 329, E E 280 or ECE 210.

3 units (fi 6)(EITHER, 3-0-0)

Cryptography is the science of secure communications. This course is an introduction to computational methods for encrypting and deciphering messages, with an emphasis on computer implementation. Prerequisites: CMPUT 201 or 275, and CMPUT 272.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to the concepts and components involved in secure, networked, systems. The concepts of confidentiality, integrity, availability; shared and public key cryptography; authentication protocols; third-party authentication services; key agreement protocols; strong password protocols; digital signature schemes; non-repudiation; certificate authorities; random number generation; proof-of-work; network protocol and network services vulnerabilities; firewalls; malicious code; computer viruses and worms; intrusion detection. Prerequisite: CMPUT 201 or 275.

3 units (fi 6)(EITHER, 3-1S-3)

Computer arithmetic and errors. The study of computational methods for solving problems in linear algebra, non-linear equations, optimization, interpolation and approximation, and integration. This course will provide a basic foundation in numerical methods that supports further study in machine learning; computer graphics, vision and multimedia; robotics; and other topics in Science and Engineering. Prerequisites: CMPUT 204 or 275; MATH 214; one of MATH 102, 125, or 127; one of MATH 225 or 227; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

3 units (fi 6)(EITHER, 3-1S-3)

Computer arithmetic and errors. The study of computational methods for solving problems in linear algebra, non-linear equations, optimization, interpolation and approximation, and integration. This course will provide a basic foundation in numerical methods that supports further study in machine learning; computer graphics, vision and multimedia; robotics; and other topics in Science and Engineering. Prerequisites: CMPUT 204 or 275; one of MATH 209, 214, or 217; one of MATH 225 or 227; and one of STAT 151, 161, 181, 235, 265, SCI 151, or MATH 181.

3 units (fi 6)(EITHER, 3-0-3)

This course focuses on state-of-the-art AI and graphics programming for video games. Part 1 introduces C++, the language of choice for video game engines, emphasizing efficiency, safety, the Standard Template Library, and OpenGL. Part 2 on real time strategy deals with efficient pathfinding algorithms, planning, and scripting AI systems. Student projects give hands-on experience directly applicable to the video games industry. Prerequisites: CMPUT 201 or 275, and 204.

3 units (fi 6)(EITHER, 3-0-3)

This course focuses on building efficient video game engines using C++. Programming-specific topics include object-oriented programming, memory management, data efficiency, and the Standard Template Library. These topics are applied to design 2D game engines with object-oriented and/or entity-component system (ECS) methods. These engines are built upon concepts such as sprites, cameras, object collisions, and shaders. Student projects give hands-on experience directly applicable to the video games industry. Prerequisites: CMPUT 201 or CMPUT 275, and CMPUT 204.

3 units (fi 6)(EITHER, 3-0-0)

An introduction to algorithms and theory behind computer programs that solve puzzles (mazes, peg solitaire, etc.) or play games (chess, Go, Hex, etc.). This course is intended for a general audience. Prerequisite: any 200-level Computing Science course.

3 units (fi 6)(EITHER, 3-0-0)

Introduction to information retrieval focusing on algorithms and data structures for organizing and searching through large collections of documents, and techniques for evaluating the quality of search results. Topics include boolean retrieval, keyword and phrase queries, ranking, index optimization, practical machine-learning algorithms for text, and optimizations used by Web search engines. Prerequisites: CMPUT 201 and CMPUT 204, or 275. One of MATH 102, 125, or 127 is strongly recommended.

3 units (fi 6)(EITHER, 3-0-0)

Introduction to information retrieval focusing on algorithms and data structures for organizing and searching through large collections of documents, and techniques for evaluating the quality of search results. Topics include boolean retrieval, keyword and phrase queries, ranking, index optimization, practical machine-learning algorithms for text, and optimizations used by Web search engines. Prerequisites: CMPUT 201 and CMPUT 204, or CMPUT 275. One of MATH 102, 125, 126, or 127 is strongly recommended.

3 units (fi 6)(EITHER, 3-0-0)

This course provides an introduction to reinforcement learning, which focuses on the study and design of learning agents that interact with a complex, uncertain world to achieve a goal. The course will cover multi- armed bandits, Markov decision processes, reinforcement learning, planning, and function approximation (online supervised learning). The course will take an information-processing approach to the study of intelligence and briefly touch on perspectives from psychology, neuroscience, and philosophy. The course will use the University of Alberta MOOC on Reinforcement Learning. Any student who understands the material in this course will understand the foundations of much of modern probabilistic artificial intelligence (AI) and be prepared to take more advanced courses, or to apply AI tools and ideas to real-world problems. Prerequisites: CMPUT 175 or 275; one of CMPUT 267, 466, or STAT 265.

3 units (fi 6)(EITHER, 3-0-3)

This course provides an introduction to search and planning in artificial intelligence. The course covers deterministic single-agent and multi-agent problems. Students will learn how to model real-world problems as state-space search problems and how to solve such problems. The course covers algorithms for solving deterministic shortest path problems with factored and non-factored states, combinatorial optimization problems, constraint satisfaction problems, and multi- agent problems. Prerequisites: CMPUT 204 or 275, and CMPUT 272.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to the structure, components, and concepts behind modern general-purpose operating systems. Processes: process state transitions; operations on processes; interrupt processing; multiprocessor considerations; resource allocation; synchronization; critical sections and events; semaphores; deadlock: avoidance, detection, and recovery; memory management; virtual memory; paging and segmentation; page replacement strategies; working sets; demand paging; process scheduling; scheduling algorithms; file system functions; file organization; space allocation; virtual machines. Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 229, E E 380 or ECE 212.

3 units (fi 6)(EITHER, 3-0-3)

Graphics processing units (GPU) can be programmed like a coprocessor to solve non-graphics problems, including voice recognition, computational physics, convolutional neural networks, and machine learning. The many processing cores of a GPU support a high-degree of parallelism. Course topics include hardware architecture, algorithmic design, programming languages (e.g., CUDA, OpenCL), and principles of programming for GPUs for high performance. Prerequisites: CMPUT 201 or 275, and one of CMPUT 229, E E 380, or ECE 212.

3 units (fi 6)(EITHER, 3-0-3)

This course covers the implementation of RDBMSs and some non- relational data models, along with their query languages. Topics: compilation, execution, and optimization of SQL queries; concurrent execution of transactions; indexing; advanced constructs in SQL; semi-structured data models and query languages; distributed and parallel databases; NoSQL and cloud-based database systems. Prerequisites: CMPUT 201 and 204, or 275; and CMPUT 291.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to scalable computing paradigms suitable for data-intensive analytics, with a focus on abstractions, algorithms, and infrastructure for scaling data science, machine learning, and data engineering tasks using multiple machines. The concepts will be applied through a substantial, practical project involving collecting, manipulating, and analyzing large datasets, and discussing findings through scientific reports. Prerequisites: CMPUT 200, 201, 204, and 291, and one of CMPUT 191 or 195.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for new course offerings that may be offered in a given term. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

3 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

1.5 units (fi 6)(VAR, VARIABLE)

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites for each section may differ and are defined by the instructor in the course outline.

3 units (fi 6)(EITHER, 3-1S-3)

All phases of software development are reviewed from a process perspective. Best practices in software project and product development and management are introduced. Architectural and technological impacts on management. Group projects require specification and initial design or redesign of a software system. Prerequisite: CMPUT 301.

3 units (fi 6)(EITHER, 3-1S-3)

All phases of software development are reviewed from a process perspective. Best practices in software project and product development and management are introduced. Architectural and technological impacts on management. Group projects require specification and initial design or redesign of a software system. Prerequisite: CMPUT 301. Credit may be obtained in only one of CMPUT 401, BTM 419, or MIS 419.

3 units (fi 6)(EITHER, 3-1S-3)

All phases of software development are reviewed from a process perspective. Best practices in software project and product development and management are introduced. Architectural and technological impacts on management. Group projects require specification and initial design or redesign of a software system. Prerequisite: CMPUT 301. Credit may be obtained in only one of CMPUT 401, BTM 419, or MIS 419.

3 units (fi 6)(EITHER, 3-0-3)

Software quality issues are covered. Various types of software testing, ranging from unit testing to integration testing are discussed. Processes to ensure quality, such as reviews and continuous integration, are introduced. State-of-the-art software quality tools that analyze different artifacts within the software lifecycle are described. Prerequisite: CMPUT 301.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Software quality issues are covered. Various types of software testing, ranging from unit testing to integration testing are discussed. Processes to ensure quality, such as reviews and continuous integration, are introduced. State-of-the-art software quality tools that analyze different artifacts within the software lifecycle are described. Prerequisite: CMPUT 301.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Software quality issues are covered. Various types of software testing, ranging from unit testing to integration testing are discussed. Processes to ensure quality, such as reviews and continuous integration, are introduced. State-of-the-art software quality tools that analyze different artifacts within the software lifecycle are described. Prerequisite: CMPUT 301.

3 units (fi 6)(EITHER, 3-1S-0)

This course is focused on algorithmic problems that can be solved within at most several hours by well-prepared people, where a solution involves properly understanding a written description, designing an efficient algorithm to solve the problem, and then correctly implementing the solution. Students will use algorithms, data structures, and mathematical reasoning to solve problems. Lectures are shared with CMPUT 303. CMPUT 403 covers additional material relevant to advanced programming contests. Credit cannot be obtained for both CMPUT 303 and CMPUT 403. Prerequisites: CMPUT 201 or 275, and 204, and any 300-level Computing Science course.

3 units (fi 6)(EITHER, 3-0-3)

Introduction to modern web architecture, from user-facing applications to machine-facing web-services. Topics include: the evolution of the Internet, relevant technologies and protocols, the architecture of modern web-based information systems, web data exchange and serialization, and service-oriented middleware. Prerequisites: CMPUT 291 and 301.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Introduction to modern web architecture, from user-facing applications to machine-facing web-services. Topics include: the evolution of the Internet, relevant technologies and protocols, the architecture of modern web-based information systems, web data exchange and serialization, and service-oriented middleware. Prerequisites: CMPUT 291 and 301.

1.5 units (fi 6)(TWO TERM, 3-0-3)

Introduction to modern web architecture, from user-facing applications to machine-facing web-services. Topics include: the evolution of the Internet, relevant technologies and protocols, the architecture of modern web-based information systems, web data exchange and serialization, and service-oriented middleware. Prerequisites: CMPUT 291 and 301.

3 units (fi 6)(EITHER, 3-0-3)

2D and 3D transformation; 3D modeling and viewing; illumination models and shading methods; texture mapping; ray tracing. Prerequisites: CMPUT 204 or 275, 301; one of CMPUT 340, 418 or equivalent knowledge, and MATH 214.

3 units (fi 6)(EITHER, 3-0-3)

2D and 3D transformation; 3D modeling and viewing; illumination models and shading methods; texture mapping; ray tracing. Prerequisites: CMPUT 204 or CMPUT 275; and CMPUT 340.

3 units (fi 6)(EITHER, 3-0-3)

A project-based course dealing with the design and implementation of mobile robots to accomplish specific tasks. Students work in groups and are introduced to concepts in sensor technologies, sensor data processing, motion control based on feedback and real-time programming. Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 340, 418 or equivalent knowledge; MATH 214.