Curriculum: Computer Engineering

Core courses and typical schedule

A typical schedule for this option is provided below. Please consult official degree requirements in the university calendar for more details.

(Honors, General)

NOTE:  Students may NOT change their requirement term at any time, contrary to the University Calendar.

Year 1 (Standard schedule)

Term 1, Fall Term 2, Spring Term 3, Summer
ENSC
151 – 4
Intro to Software Development for Engineers ENSC 180-3 Introduction to Engineering Analysis
CHEM 121-4 General Chemistry & Lab
MATH 152-3
Calculus II PHYS 121-3 Optics, Electricity, and Magnetism
ENSC 100W-3 Engineering, Science, and Society MATH 232-3
Applied Linear Algebra MATH 260 Introduction to Ordinary Differential Equations
ENSC 105W-3 Process, Form and
Convention in Professional Genres
PHYS 120-3
Mechanics and Modern Physics CMPL I First Complementary Studies Elective
ENSC 120-2 Introduction to Electronics Laboratory Instruments
       
MATH 151-3 Calculus I - or MATH 150        

Year 1 (Advanced schedule)

Term 1, Fall Term 2, Spring Term 3, Summer
ENSC
151 – 4
Intro to Software Development for Engineers ENSC 180-3 Introduction to Engineering Analysis
 
MATH 152-3
Calculus II
ENSC 100W-3 Engineering, Science, and Society MATH 232-3
Applied Linear Algebra
ENSC 105W-3 Process, Form and
and Convention in Professional Genres
PHYS 121-3
Optics, Electricity, and Magnetism
ENSC 120-2 Introduction to Electronics Laboratory Instruments*
CHEM 121-4 General Chemistry & Lab
MATH 151-3 Calculus I  CMPL I First Complementary Studies Elective
PHYS 120-3 Mechanics and Modern Physics
   

Year 2

Term 1, Fall Term 2, Spring Term 3, Summer
ENSC 204-1
Graphical Communication for Engineering
Co-op Term ENSC 225-4 Microelectronics
ENSC 220-4
Electric Circuits I
ENSC 254-4 Introduction to Computer Organization
ENSC 251-4 Software Design and Analysis for Engineers
ENSC 280-4 Engineering Measurement & Data Analysis
ENSC 252-4 Fundamentals in Digital Logic and Design
ENSC 320-4 Electric Circuits II
MATH 251-3 Calculus III CMPT 225-3
Data Structures & Programming
MATH 260 Introduction to Ordinary Differential Equations (If not taken in Summer of 1st year)
 

Year 3

Term 1, Fall Term 2, Spring Term 3, Summer
CMPT 276-3
Introduction to Software Engineering (3) CMPT 300-3
Operating Systems I
Co-op Term

ENSC 324-3 Electronic Devices ENSC 327-4 Communication Networks
ENSC 351-4

Embedded and Real Time System Software ENSC 350-4 Digital Systems Design
ENSC 380-3 Linear Systems ESD Elective I-3 First Engineering Science and Design Elective
MACM 201-3 Discrete Mathematics II MACM 316-3 Numerical Analysis I

Year 4

Term 1, Fall Term 2, Spring Term 3, Summer

Co-op Term




Cmpl II Second Complementary Elective ECON 103-4
Principles of Microeconomics
ENSC 405W-3 Project Documentation, User Interface Design, and Group Dynamics ENSC 406-2 Engineering Ethics, Law, and Professional Practice
ENSC 410-3  The Business of Engineering ENSC 429-4 Digital Signal Processing

ENSC 450-4 and/or ENSC 452-4 and/or ENSC 453-4

(two courses are required for constrained elective & one can be used as ESD elective)

VLSI Systems Design or 
Advanced Digital System Design or Programming for Heterogeneous Computing Systems
ENSC 440-3 Capstone Engineering Science Project
ESD Elective II-3 Second Engineering Science and Design Elective ESD Elective IV-3 Fourth Engineering Science and Design Elective
ESD Elective III-3 Third Engineering Science and Design Elective Scie I First Science Elective

Additional Requirements for Honors:

  • ENSC 498-1    Engineering Science Thesis Proposal
  • ENSC 499-9    Engineering Science Undergraduate Thesis

Electives:

Proposed Engineering Science and Design Electives

As part of the required 12 units of Engineering Science & Design Electives, students in the Computer Engineering Option must complete at least one of the following course sets:

  • ENSC 450 or 452 or 453 (whichever has not been taken),
    Students who have taken CMPT276 instead of CMPT275, should take two of the three ENSC constrained elective courses, namely ENSC 450, 452, 453 (whichever has not been taken) and these would not count towards their ESD electives.
  • CMPT 310
  • CMPT 354 and CMPT 454
  • CMPT 431
  • CMPT 361
  • CMPT 475 or CMPT 373
  • ENSC 427 and ENSC 428
  • ENSC 386, ENSC 383 and ENSC 488

The remaining engineering science and design units can by fulfilled using courses as below:

  1. any ESD course from the above course sets not already taken*
  2. any ENSC 300 or 400 level course*
  3. any of the following approved computing science 3rd and 4th year electives*
  • CMPT 305 Computer Simulation and Modelling
  • CMPT 307 Data Structures and Algorithms
  • CMPT 308 Computability and Complexity
  • CMPT 310 Artificial Intelligence Survey
  • CMPT 363 User Interface Design
  • CMPT 370 Information System Design
  • CMPT 375 Mathematical Foundations of Software Technology
  • CMPT 379 Principles of Compiler Design
  • CMPT 383 Comparative Programming Languages
  • CMPT 384 Symbolic Computing
  • CMPT 404 Cryptography and Cryptographic Protocols
  • CMPT 405 Design and Analysis of Computing Algorithms
  • CMPT 407 Computational Complexity
  • CMPT 408 Theory of Computing Networks/Communications
  • CMPT 409 Special Topics in Theoretical Computing Science
  • CMPT 411 Knowledge Representation
  • CMPT 412 Computational Vision
  • CMPT 414 Model-Based Computer Vision
  • CMPT 417 Intelligent Systems
  • CMPT 418 Computational Cognitive Architecture
  • CMPT 419 Special Topics in Artificial Intelligence
  • CMPT 441 Computational Biology
  • CMPT 456 Information Retrieval and Web Search
  • CMPT 459 Special Topics in Database Systems
  • CMPT 461 Image Synthesis
  • CMPT 464 Geometric Modelling in Computer Graphics
  • CMPT 466 Animation
  • CMPT 467 Visualization
  • CMPT 469 Special Topics in Computer Graphics
  • CMPT 470 Web-based Information Systems
  • CMPT 473 Software Quality Assurance
  • CMPT 474 Web Systems Architecture
  • CMPT 477 Introduction to Formal Verification

* A maximum of two 300-level courses may be included within the 12 units. ENSC 412 is intended as a breadth course for Faculty of Environment students. Engineering students may take ENV 412 as a breadth course but cannot take ENSC 412 as an ESD elective.