You are reading the 2026/27 Academic Calendar. The 2025/26 version remains in effect until August 31, 2026 and is available here.

Computer Engineering, Faculty of Applied Science

CPEN_V: Computer Engineering


  1. CPEN_V 211 (5) Computing Systems I

    Boolean algebra; combinational and sequential circuits; organization and operation of microcomputers, memory addressing modes, representation of information, instruction sets, machine and assembly language programming, systems programs, I/O structures, I/O interfacing and I/O programming, introduction to digital system design using microcomputers. Credit will be granted for only one of CPEN_V 211, CPEN_V 312, EECE_V 256, EECE_V 259 or EECE_V 355. [4-2-2*]. Prerequisite: APSC_V 160. This course is not eligible for Credit/D/Fail grading.

  2. CPEN_V 212 (4) Computing Systems II

    Abstractions at the hardware-software interface and their low-level implementation. Procedure invocation, dynamic dispatch, and related exploits; library linkage, virtual memory, heap management, garbage collection, and caches; interrupts, signals, and processes; threads, locks, and cache coherence; files, devices, and network topology. [3-2-0] Prerequisite: CPEN 211 and one of CPEN 221, CPEN 223, CPSC 259. This course is not eligible for Credit/D/Fail grading.

  3. CPEN_V 221 (4-5) Software Construction I

    Design, implementation, reasoning about software systems: abstraction and specification of software, testing, verification, abstract data types, object-oriented design, type hierarchies, concurrent software design. [3-2-2*]. Prerequisite: APSC_V 160. This course is not eligible for Credit/D/Fail grading.

  4. CPEN_V 223 (4) Software Design for Engineers I

    Introduction to robust software design: static typing, procedural specifications, unit testing, black-box & white-box tests, user- defined data types (representations, invariants, abstraction functions), data abstractions, communicating design (e.g., UML). [3-2-0]. Prerequisite: APSC_V 160. This course is not eligible for Credit/D/Fail grading.

  5. CPEN_V 281 (3) Technical Communication

    Written and oral communication in engineering. Technical description, report preparation, business correspondence, and oral presentation of technical material. Restricted to students in second year of Electrical and Computer Engineering programs. Credit will be granted for only one of ELEC_V 281, CPEN_V 281, BMEG_V 201 or APSC_V 201. [3-0-0]. Prerequisite: One of APSC_V 176, ENGL_V 110, ENGL_V 111, ENGL_V 112, ENGL_V 120, ENGL_V 121, WRDS_V 150. This course is not eligible for Credit/D/Fail grading.

  6. CPEN_V 291 (6) Computer Engineering Design Studio I

    Design projects involving hardware (electronic devices and circuits, microcomputers) and software. [2-6-0]. Prerequisite: CPEN_V 211. Corequisite: ELEC_V 201. This course is not eligible for Credit/D/Fail grading.

  7. CPEN_V 300 (1-12) Special Topics in Computer Engineering

    Lectures or projects on subjects of current interest. This course is not eligible for Credit/D/Fail grading.

  8. CPEN_V 311 (4) Digital Systems Design

    Advanced combinational and sequential electronic system design. Hardware specification, modelling, and simulation using hardware description languages (HDLs) and CAD tools. Design with programmable logic including FPGA's. Applications include complex state machines, microcontrollers, arithmetic circuits, and interface units. [3-3-0]. Prerequisite: One of CPEN_V 211, CPEN_V 312. This course is not eligible for Credit/D/Fail grading.

  9. CPEN_V 312 (3) Digital Systems and Microcomputers

    Data representation in digital computers; boolean algebra; the design and optimization and implementation of combinatorial and sequential circuits; modern digital circuit technologies; memory and programmable logic devices; organization and operation of microcomputers; data/address bus organization; input-output interfacing. Credit will be granted for only one of CPEN_V 312, CPEN_V 211. [3-2*-0]. Prerequisite: One of ELEC_V 201, ELEC_V 204, ELEC_V 203, MECH_V 221. This course is not eligible for Credit/D/Fail grading.

  10. CPEN_V 320 (4) Software Construction II

    Contemporary concepts and techniques for developing interactive software applications: client-server architectures; session oriented systems; security and scalability; models of application deployment.[3-2-0]. Prerequisite: All of CPEN_V 221, CPSC_V 221. This course is not eligible for Credit/D/Fail grading.

  11. CPEN_V 321 (4) Software Engineering

    Engineering practices for the development of non-trivial software-intensive systems including requirements specification, software architecture, implementation, verification, and maintenance. Iterative development. Recognized standards, guidelines, and models. Credit will only be granted for only one of CPSC_V 310, CPEN_V 321. [3-2-0]. Corequisite: CPEN_V 322. This course is not eligible for Credit/D/Fail grading.

  12. CPEN_V 331 (4) Operating Systems

    Operating systems, their design and their implementation. Process concurrency, synchronization, communication and scheduling. Device drivers, memory management, virtual memory, file systems, networking and security. [3-3-0] Prerequisite: CPEN 212 and CPEN 221. This course is not eligible for Credit/D/Fail grading.

  13. CPEN_V 333 (3-4) Software Design for Engineers II

    Use of operating systems abstractions; real-time systems; principles of concurrent and multi-threaded programming; information structures; introduction to object oriented analysis; design, and modelling using UML; software testing. [3-2-0]. Prerequisite: One of CPSC_V 259, CPEN_V 223. This course is not eligible for Credit/D/Fail grading.

  14. CPEN_V 355 (4) Machine Learning with Engineering Applications

    Foundations and concepts of data science and machine learning with applications to engineering problems. [3-0-2] Prerequisite: One of MATH_V 152, MATH_V 221 and one of MATH_V 318, MATH_V 302, STAT_V 302, STAT_V 321, ELEC_V 321 and one of CPEN_V 221, CPEN_V 223, CPSC_V 259. Credit cannot be obtained for both CPEN_V 355 and CPSC_V 340. This course is not eligible for Credit/D/Fail grading.

  15. CPEN_V 391 (6) Computer Engineering Design Studio II

    Design and implementation of a hardware platform and software design and implementation at the operating system and application layers. Project management skills. Effective presentations. Going-forward, credit will be given for only one of CPEN_V 291, CPEN_V 391. [2-6-0]. Prerequisite: All of CPEN_V 212, CPSC_V 221, ELEC_V 201. This course is not eligible for Credit/D/Fail grading.

  16. CPEN_V 400 (1-8) Topics in Computer Engineering

    Lectures or projects on subjects of current interest.

  17. CPEN_V 411 (4) Computer Architecture

    Modern processors, GPUs, and memory hierarchies; quantitative principles and instruction set design; pipelining, superscalar issue, out-of-order execution, branch prediction and speculation; memory hierarchies, caches, virtual addressing, prefetching, coherence, and consistency; multicores, VLIW, on-chip networks, and other advanced architectures. Credit will be granted for only one of CPEN_V 411 or CPSC_V 313. [3-0-2]. Prerequisite: CPEN_V 211 and CPEN_V 212. This course is not eligible for Credit/D/Fail grading.

  18. CPEN_V 412 (4) Microcomputer Systems Design

    Microprocessor and system buses; advanced I/O methods; priority interrupts; event/exception handling; serial I/O; computer networking; memory system design; interaction of hardware and software, microprocessor comparison, testability issues, safety critical systems. [3-2-0]. Prerequisite: CPEN_V 311 and one of CPEN_V 211, CPEN_V 312. This course is not eligible for Credit/D/Fail grading.

  19. CPEN_V 416 (4) Gate-Model Quantum Computing

    A software-based introduction to gate model quantum computing algorithms. Basic elements of quantum computation; analysis and software implementation of Groverís algorithm, Shorís algorithm, quantum compilation, variational algorithms, Hamiltonian simulation, noise characterization. [3-0-1] Prerequisite: One of CPEN_V 221, CPEN_V 223, CPSC_V 259, CPSC_V 221, PHYS_V 210, and one of MATH_V 152, MATH_V 221, MATH_V 223. This course is not eligible for Credit/D/Fail grading.

  20. CPEN_V 421 (4) Software Project Management

    Advanced project planning, cost estimation and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics. Analysis of options and risk. Tools. Case studies. [3-0-2]. Prerequisite: One of CPEN_V 321, CPSC_V 310. This course is not eligible for Credit/D/Fail grading.

  21. CPEN_V 422 (4) Software Testing and Analysis

    Different levels of testing including unit, integration, system, performance and regression levels. Requirements flowdown. Problem tracking. Coverage criteria. Static methods. Tools support. Specialized techniques. Assessment of correctness, reliability, safety. [3-2-0]. Prerequisite: One of CPEN_V 221, CPEN_V 321, CPSC_V 210, CPSC_V 310. This course is not eligible for Credit/D/Fail grading.

  22. CPEN_V 423 (4) Software Architecture

    Software architecture as a bridge from requirements to implementation. Architectural description and patterns. Iterative development. Use of commercial off-the-shelf products. [3-2-0]. Prerequisite: One of CPEN_V 221, CPEN_V 321, CPSC_V 310. This course is not eligible for Credit/D/Fail grading.

  23. CPEN_V 431 (4) Design of Distributed Software Applications

    Communications, processes, naming, synchronization, consistency and replication, fault tolerance, middleware, and security technologies for distributed applications. [3-2-0]. Prerequisite: One of CPEN_V 331, CPSC_V 313 and one of CPEN_V 221, CPSC_V 210. This course is not eligible for Credit/D/Fail grading.

  24. CPEN_V 432 (4) Real-time System Design

    Multi-tasking; interrupt-driven systems; task scheduling; schedulability analysis; inter-process communication and synchronization; resource management; performance measurement; hardware/software integration; hardware/software tradeoffs; system reliability. [3-0-2]. Prerequisite: One of CPEN_V 333, CPEN_V 331, CPSC_V 313. This course is not eligible for Credit/D/Fail grading.

  25. CPEN_V 441 (4) Human Computer Interfaces in Engineering Design

    Practical issues for interfaces for modern software. Task analysis, user modelling, usability engineering, representations, metaphors, prototyping tools. Applications: interactive multimedia systems, engineering, scientific visualization, engineering design. [3-1-2*]. Prerequisite: CPSC_V 221 and one of CPEN_V 221, CPSC_V 210, CPEN_V 333. This course is not eligible for Credit/D/Fail grading.

  26. CPEN_V 442 (4) Introduction to Cybersecurity

    Security risks, threats, and vulnerabilities from technical perspectives; cryptography; software and web security; access control, assurance, accountability; usable privacy and security; engineering of secure systems; cryptocurrencies. [3-2-0]. Prerequisite: One of CPEN_V 333, CPEN_V 331, CPSC_V 313. This course is not eligible for Credit/D/Fail grading.

  27. CPEN_V 455 (4) Deep Learning

    Fundamentals of deep learning, including architectures (e.g., MLPs, CNNs, RNNs, Transformers, and GNNs) and learning algorithms under different paradigms (supervised / unsupervised / reinforcement learning). Emphasis on design principles and motivating applications. Recommended pre-requisite: CPEN_V 355 or CPSC_V 340. [3-0-2] Prerequisite: One of MATH_V 152, MATH_V 221 and one of MATH_V 318, MATH_V 302, STAT_V 302, STAT_V 321, ELEC_V 321 and one of CPEN_V 221, CPEN_V 223, CPSC_V 259. This course is not eligible for Credit/D/Fail grading.

  28. CPEN_V 481 (3) Economic Analysis of Engineering Projects

    Time-money relationships; economic analysis of alternatives including the effects of interest rates, inflation, depreciation, taxation and uncertainty; cost estimation and budgeting; financial analysis of engineering operations. [3-0-0]. This course is not eligible for Credit/D/Fail grading.

  29. CPEN_V 491 (5-10) Computer Engineering Capstone Design Project

    Design, analysis, and implementation of solutions in response to a real-world computer engineering problem, provided by industry, research laboratories, or other suitable entities. Includes coverage of topics such as project management. [2-6-0] or [2-6-0; 2-6-0] Prerequisite: All of CPEN_V 331, CPSC_V 320 and one of CPEN_V 311, CPEN_V 322; and one of CPEN_V 291, CPEN_V 391. This course is not eligible for Credit/D/Fail grading.

  30. CPEN_V 497 (1-3) Research Experience in Computer Engineering

    Directed research experience. Communication of research ideas. Pass/Fail. Prerequisite: Third-year standing. This course is not eligible for Credit/D/Fail grading.

  31. CPEN_V 499 (3-6) Undergraduate Thesis

    Project in electrical engineering or computer engineering involving design, experimental and/or computer simulation work as selected from topics supplied by faculty members. An individual project thesis is to be prepared according to specifications available from the departmental office. [0-6-0] or [0-12-0]. This course is not eligible for Credit/D/Fail grading.

  32. CPEN_V 502 (3) Architecture for Learning Systems

    Credit will only be given for one of CPEN_V 502 or EECE_V 592. This course is not eligible for Credit/D/Fail grading.

  33. CPEN_V 511 (3) Advanced Computer Architecture

    Credit will only be given for one of CPEN_V 511 or EECE_V 527. This course is not eligible for Credit/D/Fail grading.

  34. CPEN_V 512 (3) Parallel and Reconfigurable Computing

    Credit will only be given for one of CPEN_V 512 or EECE_V 528. This course is not eligible for Credit/D/Fail grading.

  35. CPEN_V 513 (3) CAD Algorithms for Integrated Circuits

    Credit will only be given for one of CPEN_V 513 or EECE_V 583. This course is not eligible for Credit/D/Fail grading.

  36. CPEN_V 514 (3) Quantum Information and Computation

    [3-0-0]. This course is not eligible for Credit/D/Fail grading.

  37. CPEN_V 521 (3) Topics in Software Engineering

    Credit will only be given for one of CPEN_V 521 or EECE_V 511. This course is not eligible for Credit/D/Fail grading.

  38. CPEN_V 522 (3) Software Verification and Testing

    Credit will only be given for one of CPEN_V 522 or EECE_V 514. This course is not eligible for Credit/D/Fail grading.

  39. CPEN_V 523 (3) Software Project Management

    Credit will only be given for one of CPEN_V 523 or EECE_V 543 or CPEN_V 421. This course is not eligible for Credit/D/Fail grading.

  40. CPEN_V 524 (3) Principles of Mobile Application Development and Analysis

    This course is not eligible for Credit/D/Fail grading.

  41. CPEN_V 533 (3) Error Resilient Computing Systems

    Credit will only be given for one of CPEN_V 533 or EECE_V 513. This course is not eligible for Credit/D/Fail grading.

  42. CPEN_V 534 (3) Trade-offs in Designing Computer Systems

    [3-0-0]. This course is not eligible for Credit/D/Fail grading.

  43. CPEN_V 541 (3) Human Interface Technologies

    Credit will only be given for one of CPEN_V 541 or EECE_V 518. This course is not eligible for Credit/D/Fail grading.

  44. CPEN_V 542 (3) Cybersecurity

    Credit will only be given for one of CPEN_V 542 or EECE_V 512. This course is not eligible for Credit/D/Fail grading.

  45. CPEN_V 642 (3-9) Cybersecurity Research Seminar

    Prerequisite: by permission of the instructor. This course is not eligible for Credit/D/Fail grading.


UBC Crest The official logo of the University of British Columbia. Urgent Message An exclamation mark in a speech bubble. Caret An arrowhead indicating direction. Arrow An arrow indicating direction. Arrow in Circle An arrow indicating direction. Arrow in Circle An arrow indicating direction. Chats Two speech clouds. Facebook The logo for the Facebook social media service. Information The letter 'i' in a circle. Instagram The logo for the Instagram social media service. Linkedin The logo for the LinkedIn social media service. Location Pin A map location pin. Mail An envelope. Menu Three horizontal lines indicating a menu. Minus A minus sign. Pencil A pencil indicating that this is editable. Telephone An antique telephone. Plus A plus symbol indicating more or the ability to add. Search A magnifying glass. Twitter The logo for the Twitter social media service. Youtube The logo for the YouTube video sharing service.