This Course and Program Catalogue is effective from May 2024 to April 2025.

Not all courses described in the Course and Program Catalogue are offered each year. For a list of course offerings in 2024-2025, please consult the class search website.

The following conventions are used for course numbering:

  • 010-099 represent non-degree level courses
  • 100-699 represent undergraduate degree level courses
  • 700-999 represent graduate degree level courses

Course search


12 Results

CME 331.3: Microprocessor Based Embedded Systems

Covers the architecture and operation of microcontrollers used in embedded systems. The course focuses on hardware and software techniques used to program a microcontroller and interface it with external devices. Emphasis is placed on using both assembly language and C to program the microcontrollers. Microcontroller architecture is discussed in general with certain internal peripherals discussed in detail.

Prerequisite(s): (CMPT 214 or CMPT 116 or CMPT 141) and EE 232
Note: Students with credit for EE 331 will not receive credit for this course.


CME 332.3: Real Time Computing

Provides the foundations for the multi-disciplinary field of real-time systems. In addition to basic time-constrained design and analysis techniques, the course addresses the issues of hardware/software tradeoffs, static and dynamic scheduling algorithms, features of real-time operating system kernels, and common design problems in multitasking systems; topics are supplemented by examples of real-time applications.

Prerequisite(s): CME 331 and CME 341 (taken).
Note: Students with credit for EE 332 will not receive credit for this course.


CME 334.3: Network Architecture and Protocols

Focuses on the architecture of a communication network, with three main topic areas: (1) physical infrastructure to implement local and wide area networks, including transmission and receiving technologies, and supporting topologies; (2) standards and protocols for network operations, including methods for routing and data management; (3) network applications and emerging network technologies, including sensor networks, network security and privacy and Internet of Things.

Prerequisite(s): CME 466.3
Note: Students with credit for CME 451.3 or CMPT 434 will not receive credit for this course.


CME 341.3: Logic Design Using FPGAs

This course investigates techniques for designing large digital circuits with the Verilog Hardware Description Language (Verilog HDL). The course focuses on FPGAs; however, the techniques discussed are also applicable to the design of ASICs. The architectures of FPGAs are discussed in general with certain aspects of their internal operation discussed in detail. Emphasis is placed on connecting the Verilog HDL code to the hardware circuit that is constructed by the Verilog compiler and router.

Weekly hours: 3 Lecture hours and 3 Practicum/Lab hours
Prerequisite(s): (CMPT 214 (taken) or CMPT 116 or CMPT 141) and EE 232..
Note: Students with credit for EE 431 will not receive credit for this course.


CME 342.3: Introduction to Digital Integrated Circuits and System on Chip

An introduction to digital integrated circuits and system-on-chip design methodology. The course covers CMOS logic schematics and design layout, CMOS standard cell design flow, Verilog RTL design with examples, systemC overview, and basic SoC components and bus structures.

Prerequisite(s): EE 221.3
Note: Students with credit for EE 432 will not receive credit for this course.


CME 433.3: Digital Systems Architecture

Components and architecture complement each other in the design of digital systems implemented in ASIC (Application Specific Integrated Circuit), ASSP (Application Specific Standard Product), FPGA/CPLD (Field Programmable Gate Array/Complex Programmable Logic Device), Microprocessor, DSP (Digital Signal Processor) and SOC (System on Chip). CME 341 and CME 435 teach how to build a system from components. CME 433 teaches guiding principles to organize a system using a top down design approach.

Prerequisite(s):CME 331 and CME 341.


CME 435.3: Verification of Digital Systems

Covers the verification of digital circuits and systems with emphasis on SystemVerilog, a verification language. It starts with the basics, such as functional verification methodologies, and SystemVerilog fundamentals, and gradually builds to more complex examples and advanced topics. At the end of the course, a complete verification system is created using SystemVerilog.

Prerequisite(s): CME 341.


CME 465.3: Embedded Machine Learning

This course provides an overview of machine learning systems, leading to practical implementation and application for embedded hardware devices. Topics include supervised and unsupervised learning systems, performance evaluation metrics, feature engineering, dimensionality reduction, data fusion and hardware implementation. The students will implement, test and analyze a machine learning systems using both software and hardware techniques.

Weekly hours: 3 Lecture hours
Prerequisite(s): EE 216.3


CME 466.3: Design of an Advanced Digital System

A design course in the implementation of an advanced digital system using system-on-chip design techniques. The objective is to apply knowledge learned in previous courses to design, implement and test a complex digital system. Students will be guided through the design and implementation of both hardware and software. The design problem is chosen to be industrially relevant, and the design process adapts current methods.

Weekly hours: 3 Lecture hours and 3 Practicum/Lab hours
Restriction(s): Course only open to students in the Computer Engineering program
Prerequisite(s): CME 465.3


CME 495.6: Capstone Design Project

Emphasizes the application of a formal design process. Students, working in small groups, apply top-down design principles to a year-long project starting with a basic description of the product or system and culminating with an oral presentation of the final working design.

Weekly hours: 6 Practicum/Lab hours
Prerequisite(s): CME Program Core and 6 credit units from the CME Program Focus Areas.
Prerequisite(s) or Corequisite(s): 9 additional credit units from the CME Program Focus Areas.


CME 498.3: Special Topics

Offered occasionally to cover, in depth, topics that are not thoroughly covered in regularly offered courses.

Weekly hours: 3 Lecture hours


CME 898.3: Special Topics

Offered occasionally to cover, in depth, topics that are not thoroughly covered in regularly offered courses.

Weekly hours: 3 Lecture hours