## E L E C T R I C A L A N D C O M P U T E R E N G I N E E R I N G

### Notes

- The Department reserves the right, where pre-enrolment in a course is less than twenty, to cancel the course.
- In extraordinary cases, an instructor may override the prerequisite conditions listed below.
- The terms in which fourth-year courses are offered, and the selection of fourth-year courses, are occasionally changed, with updates appearing in a future edition of the Calendar.

### ECE 100s

Course ID: 015812

**Work-term Reflections**

This course requires a two-page report where students reflect on the experience gained during the first co-op term. Students identify the requirements in their job where they were able to practice engineering, how theory learned in academic terms was applied to solve problems in the work place, and significant contributions they made during their work term. If students did not secure a co-op position, they are to reflect on how they used their time to update their skills. The report template is accessed online and is submitted online.

*[Note: This course is graded as CR/NCR. Offered: F,S]*

*Prereq: Computer and Electrical Engineering students*

Course ID: 015813

**Work-term Reflections**

This course requires a two-page report where students reflect on the experience gained during the second co-op term. Students identify the requirements in their job where they were able to practice engineering, how theory learned in academic terms was applied to solve problems in the work place, and significant contributions they made during their work term. If students did not secure a co-op position, they are to reflect on how they used their time to update their skills. The report template is accessed online and is submitted online.

*[Note: This course is graded as CR/NCR. Offered: W,S]*

*Prereq: Computer and Electrical Engineering students*

Course ID: 015814

**Work-term Reflections**

This course requires a two-page report where students reflect on the experience gained during the third co-op term. Students identify the requirements in their job where they were able to practice engineering, how theory learned in academic terms was applied to solve problems in the work place, and significant contributions they made during their work term. If students did not secure a co-op position, they are to reflect on how they used their time to update their skills. The report template is accessed online and is submitted online.

*[Note: This course is graded as CR/NCR. Offered: F,W]*

*Prereq: Computer and Electrical Engineering students*

Course ID: 015815

**Work-term Reflections**

This course requires a two-page report where students reflect on the experience gained during the fourth co-op term. Students identify the requirements in their job where they were able to practice engineering, how theory learned in academic terms was applied to solve problems in the work place, and significant contributions they made during their work term. If students did not secure a co-op position, they are to reflect on how they used their time to update their skills. The report template is accessed online and is submitted online.

*[Note: This course is graded as CR/NCR. Offered: F,S]*

*Prereq: Computer and Electrical Engineering students*

Course ID: 015816

**Work-term Reflections**

This course requires a two-page report where students reflect on the experience gained during the fifth co-op term. Students identify the requirements in their job where they were able to practice engineering, how theory learned in academic terms was applied to solve problems in the work place, and significant contributions they made during their work term. If students did not secure a co-op position, they are to reflect on how they used their time to update their skills. The report template is accessed online and is submitted online.

*[Note: This course is graded as CR/NCR. Offered: S]*

*Prereq: Computer and Electrical Engineering students*

Course ID: 013166

**Classical Mechanics**

Forces in nature and Newton's laws, dynamics and circular motion, work, energy, and conservation of energy. Linear momentum and linear impulse, rotational dynamics. Oscillations; simple harmonic motion. Wave motion; traveling waves and standing waves. [Offered: F]

*Prereq: Level at least 1A Computer Engineering or Electrical Engineering or Software Engineering*

Course ID: 013167

**Electricity and Magnetism**

Electrostatics: electric field, flux, Gauss's Law, potential and potential energy. Capacitors: dielectric, capacitance, electric energy storage. Resistors: charge flow, current, resistance. Magnetostatic: magnetic force, magnetic fields, Ampere's Law. Inductors: magnetic flux, inductance, magnetic materials, magnetic energy storage. Time-varying fields: Faraday's Law, mutual inductance, simple motors and generators. [Offered: W,S]

*Prereq: ECE 105; Level at least 1B Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: NE 241, PHYS 112 or 112L*

Course ID: 015291

**Discrete Mathematics and Logic 1**

Introduction to discrete mathematics, including propositional/Boolean logic, syntax and semantics, proof theory, and model theory; set theory, relations and functions, combinatorics (counting techniques, permutations, and combinations), graph theory. Applications in electrical, computing, and software engineering. [Offered: W, S]

*Prereq: ECE 150, MATH 117; Level at least 1B Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: ECE 103, 155, MATH 229, 239, 249*

Course ID: 015817

**Materials Chemistry for Engineers**

This course will help students understand the relationship between the microstructure of common semiconductor and optoelectronic materials, and the electrical, optical, and magnetic properties exhibited by the materials. Topics include structure of atoms, models of the atom, electronic configuration, band theory, atomic bonding, dielectric properties, optical transparency, magnetic properties, molecular bonding, metals and alloys, and activation energy. [Offered: F,W]

*Prereq: Level at least 2A Computer or Electrical or Software Engineering.*

*Antireq: CHEM 120*

Course ID: 013168

**Digital Circuits and Systems**

Number systems and Boolean arithmetic. Boolean algebra and simplification of Boolean functions. Combinational circuits. Sequential circuits; design and implementation. Hardware description languages. Timing analysis. Implementation technologies. [Offered: W,S]

*Prereq: Level at least 1B Computer Engineering or Electrical Engineering or Software Engineering*

Course ID: 013169

**Linear Circuits**

Analysis of linear circuits. Voltage, current, resistance, capacitance, inductance, voltage source, current source, dependent sources, Ohm's Law, Kirchhoff's Laws, nodal analysis, mesh analysis, circuit transformations, operational amplifier circuits, time response, sinusoidal steady-state response. Preparing for, conducting, and reporting of laboratory experiments. [Offered: W,S]

*Prereq: Level at least 1B Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: AE/CIVE/ENVE/GEOE 123, GENE 123, ME 123, MTE 120, NE 140*

Course ID: 004750

**Fundamentals of Programming**

Software design process in a high-level programming environment. Programming fundamentals, language syntax, simple data types, control constructs, functions, parameter passing, recursion, classes, arrays and lists, list traversals, introduction to searching and sorting algorithms, basic object-oriented design, polymorphism and inheritance, simple testing and debugging strategies, pointers and references, basic memory management. [Offered: F]

*Prereq: Level at least 1A Computer Engineering or Electrical Engineering.*

*Antireq: CIVE 121, MTE 121/GENE 121, NE 113, SYDE 121*

Course ID: 013170

**Engineering Design with Embedded Systems**

Introduction to embedded systems, review of engineering design and analysis principles, software development life cycle, integrated development environments, use of software requirements and specifications, unified modelling language and documentation, event handling, simulation, project management, project scheduling, testing, verification, and maintenance considerations. [Offered: W,S]

*Prereq: ECE 150; Level at least 1B Computer Engineering or Electrical Engineering.*

Course ID: 015292

**Engineering Profession and Practice**

Introduction to electrical and computer engineering with an emphasis on the profession of engineering, and engineering design. Topics include engineering design, safety, risk analysis, engineering data analysis, project management, sustainability, business, entrepreneurship, and intellectual property. Additional topics include co-op fundamentals for engineering students, professional development, and diversity training with a goal of understanding the roles and responsibilities of the professional engineer in society. [Offered: F]

*Prereq: Level at least 1A Computer Engineering or Electrical Engineering.*

*Antireq: ECE 100A*

Course ID: 015628

**Engineering Economics and Impact on Society**

This course teaches engineering economics and the impact of engineering on the society at large. Important concepts of engineering economics including cash flow diagrams, present worth, quantification of impact costs, and rate of return analysis are presented. This course discusses real-life engineering cases that cover the above aspects, and provide a broad perspective on the issues. Energy supply scenarios and the environment, global energy use and supply, and environmental impacts of engineering projects are discussed. [Offered W, S]

*Prereq: Level at least 1B Computer or Electrical Engineering*

Course ID: 015989

**Project Studio**

A design project integrating content from physics, math, and programming courses. Topics include engineering design process, problem definition, risk analysis, design specification, system modelling and analysis, engineering data analysis, project management, and prototyping. Students work in teams to build and test a prototype. Safety orientation training including WHMIS assessment, is included in this course. [Offered: F]

*Prereq: Level 1A Computer Engineering or Electrical Engineering*

### ECE 200s

Course ID: 015629

**Probability Theory and Statistics 1**

Ensemble model of randomness. Conditional probability, independence, and Bayes' theorem. Random variables, probability distribution functions. Expected values. Collections of random variables, joint and marginal probability distributions, and correlation. Introduction to random processes. [Offered: F, S]

*Prereq: ECE 103, (ECE 205 or MATH 211), MATH 119; Level at least 2B Computer or Electrical Engineering.*

*Antireq: ECE 306, 316*

Course ID: 004752

**Numerical Methods**

Application of computational methods to engineering problems. Number systems, errors and error propagation. Roots of nonlinear equations. Introduction to numerical linear algebra. Interpolation and numerical integration. Introduction to numerical solutions of ordinary differential equations, optimization. Emphasis will be placed on algorithm development. [Offered: F, W]

*Prereq: Level at least 2A Computer Engineering or Electrical Engineering.*

*Antireq: AMATH 342, CS 370, 371, ECE 204A, 204B, MTE 204*

Course ID: 014941

**Numerical Methods 1**

Application of computational methods to engineering problems. Number systems, errors and error propagation. Roots of nonlinear equations. Introduction to numerical linear algebra. Interpolation and numerical integration. [Offered: F, W]

*Department Consent Required*

*Prereq: Level at least 2A Computer Engineering or Electrical Engineering.*

*Antireq: ECE 204*

Course ID: 014942

**Numerical Methods 2**

Application of computational methods to engineering problems. Introduction to numerical solutions of ordinary differential equations, optimization. [Offered: F, S]

*Department Consent Required*

*Prereq: Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: ECE 204*

Course ID: 006891

**Advanced Calculus 1 for Electrical and Computer Engineers**

Fourier series. Ordinary differential equations. Laplace transform. Applications to linear electrical systems. [Offered: F,W]

*Prereq: 2A Electrical Engineering or Computer Engineering*

*(Cross-listed with MATH 211)*

Course ID: 006892

**Adv Calculus 2 for Electrical Engineers**

Triple integrals, cylindrical and spherical polar coordinates. Divergence and curl, applications. Surface integrals, Green's, Gauss' and Stokes' theorems, applications. Complex functions, analytic functions, contour integrals, Cauchy's integral formula, Laurent series, residues. [Offered: F,S]

*Prereq: 2B Electrical Engineering or Computer Engineering*

*(Cross-listed with MATH 212)*

Course ID: 013171

**Signals and Systems**

Discrete, continuous and periodic signals, time- and frequency-domain analysis of continuous- and discrete-time linear systems, periodic signals and Fourier series, non-periodic signals, and Fourier transforms. [Offered: F,S]

*Prereq: (ECE 140, 240; Level at least 2B Computer Engineering or Electrical Engineering) or (ECE 140, MATH 213; Level at least 3A Software Engineering)*

Course ID: 015300

**Discrete Mathematics and Logic 2**

Formal logics, methods, and associated tools, and their uses in specifying, synthesizing, and verifying computing systems. Predicate logic. Temporal logic. Relational logic. Set theory. Proof theory. Model theory. Graph theory. Formal models of computation. Applications in computer and software engineering. [Offered: F, S]

*Prereq: ECE 108; Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: CS 245/245E, SE 212*

Course ID: 004755

**Digital Computers**

Computer organization. Memory units, control units, I/O operations. Assembly language programming, translation and loading. Arithmetic logic units. Computer case studies. [Offered: F, W]

*Prereq: ECE 124; (CS 115 or 135 or 137 or 145 or ECE 150); Level at least 2A Computer Engineering or Electrical Engineering or Software Engineering or Computer Science/Digital Hardware Option*

Course ID: 013172

**Embedded Microprocessor Systems**

Microprocessor system architecture, bus systems, memory systems, peripherals, parallel interfaces, serial interfaces, analog interfaces, data transfer, synchronization, error detection/correction, testing and debugging. [Offered F, W, S]

*Prereq: (ECE 124, 222; Level at least 2B Computer Engineering or 2B Electrical Engineering) or (ECE 124, 222; Level at least 3A Software Engineering).*

*Antireq: MTE 325*

Course ID: 016002

**Semiconductor Physics and Devices**

Introduction to the physical principles and electrical behavior of semiconductor materials and devices; electronic band structure, charge carriers, doping, carrier transport, pn-junctions, metal-oxide-semiconductor capacitors, transistors, and bipolar junction devices. [Offered: F,S]

*Prereq: ECE 106, 109; Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: NE 242*

Course ID: 013173

**Electronic Circuits 1**

Introduction to electronic signal processing; second-order circuits; operational amplifier circuits; diode device and circuits; metal-oxide-semiconductor (MOS) biasing networks; load-line analysis; diode and MOS small-signal equivalent circuits; single-stage small-signal MOS amplifiers; complementary metal-oxide-semiconductor (CMOS) logic circuits. [Offered: F, W]

*Prereq: ECE 106, 140, MATH 119; Level at least 2A Computer Engineering or Electrical Engineering or Software Engineering.*

*Coreq: (ECE 205 or MATH 211 or MATH 213)*

Course ID: 013174

**Electronic Circuits 2**

Electronic circuits and their limitations, including; differential pairs, biasing, the cascode configuration and active loads. Differential and multistage amplifiers. Feedback, stability and compensation. CMOS logic circuits. [Offered: F, S]

*Prereq: ECE 240, (ECE 205 or MATH 211); Level at least 2B Computer Engineering or Electrical Engineering.*

*Coreq: ECE 207.*

*Antireq: ECE 340*

Course ID: 004759

**Algorithms and Data Structures**

Data structures, abstract data types, recursive algorithms, algorithm analysis, sorting and searching, and problem-solving strategies. [Offered: F,W]

*Prereq: Level at least 2A Computer Engineering or Electrical Engineering.*

*Antireq: CS 234, 240/240E, 341, SE 240*

Course ID: 015301

**Systems Programming and Concurrency**

Processes and threads (pthreads); system calls; concurrency (semaphore, mutex, monitors, and barrier synchronization); user-level memory management. Performance and correctness of concurrent systems. Deadlock detection and recovery; file systems. [Offered: F, S]

*Prereq: ECE 250; Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: CS 343, 350, ECE 254, SE 350*

Course ID: 013175

**Operating Systems and Systems Programming**

Concepts of operating systems and systems programming; utility programs, subsystems, multiple-program systems; processes, interprocess communication, synchronization, and concurrency; memory management, segmentation, and paging; loading and linking, libraries; resource allocation, scheduling, performance evaluation; I/O systems, storage devices, file systems; protection, security, and privacy. [Offered: F,S]

*Prereq: ECE 103, 150, 155, 250; Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: CS 343, 350, MTE 241, SE 350*

Course ID: 015302

**Electromechanical Energy Conversion**

Power systems and their fundamental components and models. Introduction to the principles of electromechanical energy conversion, including transformers and rotating machines, in particular (direct current) dc, induction and synchronous machines. [Offered: F, S]

*Prereq: ECE 106; Level at least 2B Computer Engineering or Electrical Engineering.*

*Antireq: ECE 261, 361, ME 269, MTE 320*

### ECE 300s

Course ID: 015294

**Probability Theory and Statistics**

Ensemble model of randomness. Conditional probability, independence, and Bayes' theorem. Random variables, probability distribution functions. Expected values. Collections of random variables, joint and marginal probability distributions, and correlation. Introduction to Statistics. Confidence intervals. Estimation. Chi-squared test. p-values. [Offered: W, S]

*Prereq: ECE 103, (ECE 205 or MATH 211), MATH 119; Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: ECE 316*

Course ID: 015630

**Probability Theory and Statistics 2**

This course provides in depth knowledge of statistics motivated by electrical and computer engineering applications. Use of modern statistical software tools is introduced. Topics include sufficient statistics, exponential families, hypothesis testing, error estimation, confidence intervals, chi-square tests, analysis of variance, regression, correlation, decision theory, and Bayesian and non-Bayesian statistics. [Offered: F, W]

*Prereq: ECE 203; Level at least 3B Computer or Electrical Engineering.*

*Antireq: STAT 330, 331, 332*

Course ID: 004784

**Digital Signal Processing**

Fourier representations in discrete and continuous time. Discrete Fourier transform and fast Fourier transform algorithms. Sampling theory. Sampling and quantization errors. Transform analysis of linear time-invariant systems. Filter design. Discrete Hilbert transform. Introduction to filter banks and discrete wavelet transform. [Offered: F]

*Prereq: (Level at least 3B Computer Engineering or Electrical Engineering) or (MATH 213, STAT 206; Level at least 3B Software Engineering).*

*Antireq: ECE 413*

Course ID: 004769

**Communication Systems**

Introduction to random processes, power spectral density. Thermal noise and the white noise model. Amplitude and angle modulation, generation and detection schemes. Sampling and reconstruction, quantization. Digital baseband transmission. Overview of digital passband communications. [Offered: W, S]

*Prereq: ECE 203, 207, (ECE 205 or MATH 211); Level at least 3A Computer Engineering or Electrical Engineering*

Course ID: 015295

**Computer Architecture**

Organization and performance of uniprocessors, pipelined processors, dynamically scheduled processors, parallel processors and multiprocessors; memory and cache structures; multiprocessor algorithms and synchronization techniques; special-purpose architectures. [Offered: F]

*Prereq: CS 354 or ECE 222; Level at least 3B Computer Engineering or Electrical Engineering or Software Engineering or Computer Science/Digital Hardware Option.*

*Antireq: ECE 429*

Course ID: 004786

**Digital Hardware Systems**

Design and modelling of digital hardware systems using a hardware description language. Development process. Impact of implementation technologies. Performance analysis and optimization. Functional verification. Timing analysis. Power analysis and optimization. Faults and testability. Reliability and fault tolerance.[Offered: W, S]

*Prereq: (ECE 222 or MTE 241); (ECE 124 or MTE 262) or (SYDE 192 and SYDE 192L); Level at least 3A Computer Engineering or Electrical Engineering or Mechatronics Engineering or Software Engineering or Systems Design Eng or Computer Science/Digital Hdw Op*

Course ID: 013177

**Electronic Devices**

Review of band theory and doped semiconductors in thermal equilibrium, charge neutrality, mass action law, recombination and transport mechanisms, Boltzmann relations. Device theory and modelling of p-n junction diode and derivation of dc and ac characteristics, charge storage effects. Principles, device theory, and modelling of metal-oxide semiconductor field-effect transistors (MOSFETs), and the derivation of threshold voltage, dc current characteristics, small signal ac models. Principles of bipolar transistor and derivation of dc and ac terminal characteristics, equivalent circuits. [Offered: F]

*Prereq: ECE 109; Level at least 3B Computer Engineering or Electrical Engineering*

Course ID: 015296

**Electronic Circuits 2**

Electronic circuits and their limitations including, metal-oxide-semiconductor (MOS) and bipolar junction transistor (BJT) differential pairs, biasing, the cascode configuration and active loads. Differential and multistage amplifiers. Feedback, stability, and compensation. [Offered: W, S]

*Prereq: Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: ECE 242, NE 344*

Course ID: 015297

**Real-Time Operating Systems**

Memory and virtual memory and caching; I/O devices, drivers, and permanent storage management; process scheduling; queue management in the kernel; real-time kernel development. Aspects of multi-core operating systems. [Offered: W, S]

*Prereq: ECE 252; Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: CS 350, ECE 254, SE 350*

Course ID: 013178

**Compilers**

Programming paradigms, compilation, interpretation, virtual machines. Lexical analysis, regular expressions, and finite automata. Parsing, context-free grammars, and push-down automata. Semantic analysis, scope and name analysis, type checking. Intermediate representations. Control flow. Data types and storage management. Code generation.

*[Note: Electrical Engineering students with at least 80% in ECE 108 will be granted an override for ECE 208 prerequisite on the understanding that they will need to make up missed material from ECE 208 on their own. Offered: F]*

*Prereq: ECE 250; One of CS 245/245E or ECE 208 or SE 212*

Course ID: 013179

**Database Systems**

Data models, file systems, database system architectures, query languages, integrity and security, database design.

*[Note: Electrical Engineering students with at least 80% in ECE 108 will be granted an override for ECE 208 prerequisite on the understanding that they will need to make up missed material from ECE 208 on their own. Offered: F]*

*Prereq: ECE 250; One of CS 245/245E or ECE 208 or SE 212.*

*Antireq: CS 348/448*

Course ID: 013180

**Computer Networks**

This course is a comprehensive introduction to computer networks. The focus is on the concepts, the protocols, and the fundamental design principles that have contributed to the success of the internet. Topics include history of the Internet, transmission media and technologies, switching and multiplexing, protocols and layering, wired and wireless LAN (local-area networks), congestion/flow/error control, routing, addressing, internetworking (Internet) including TCP (transmission control protocol). [Offered: F]

*Prereq: One of BME 213, ECE 203, MTE 201, NE 215, STAT 206, SYDE 212*

Course ID: 015298

**Power Systems and Smart Grids**

Fundamentals of power systems, analysis techniques including power flow and symmetrical fault analyses, and the basics of distribution systems and smart grids. [Offered: F]

*Prereq: Level at least 3B Engineering.*

*Antireq: ECE 361, 362*

Course ID: 013181

**Power Systems and Components**

This course is an introduction to basic modeling and analysis techniques in electricity generation, transmission and distribution, including basic concepts in nonlinear system analysis. Functional descriptions and modeling of generators, transformers, transmission lines, motors and other loads are discussed. Power flow analysis techniques are studied in detail, from the basic equations to their use in power networks. Fault analysis and basic protection concepts are also discussed. [Offered: F]

*Prereq: ECE 106, 140; Level at least 3B Computer Engineering or Electrical Engineering.*

*Antireq: ECE 260, 360*

Course ID: 015299

**Radio Frequency and Microwave Circuits**

Review of transmission line and scattering matrix representation of radiofrequency (RF) circuits, multiport RF networks, modern RF and microwave planar technology, lumped and distributed microstrip circuits, microwave couplers, Hybrids, resonators, filters, Low-noise amplifiers (LNAs), RF oscillators and mixers, computer-aided design (CAD) tools for RF circuits, hybrid and monolithic RF circuits. [Offered: F]

*Prereq: ECE 375 and (ECE 206 or MATH 212); Level at least 3B Computer Engineering or Electrical Engineering.*

*Antireq: ECE 473*

Course ID: 013187

**Electromagnetic Fields and Waves**

Maxwell's equations; plane waves; time-harmonic fields; waves at planar boundaries; boundary conditions; reflection and transmission; transmission lines; electric fields in matter; magnetic fields in matter. [Offered W, S]

*Prereq: ECE 106, (ECE 206 or MATH 212); Level at least 3A Computer Engineering or Electrical Engineering*

Course ID: 004779

**Analog Control Systems**

Introduction to control systems. Advantages of closed-loop feedback systems. The role of the system mathematical model. Block diagrams and signal flow graphs. The basic control system design problem, stability in control systems. Frequency response analysis techniques. Root-locus analysis. Elementary lead-lag compensation. [Offered: W, S]

*Prereq: (ECE 207; Level at least 3A Computer Engineering or Electrical Engineering) or (MATH 213; Level at least 3A Software Engineering).*

*Antireq: ME 360, MTE 360, SE 380, SYDE 352*

### ECE 400s

Course ID: 015303

**Thermal Physics**

Temperature and thermodynamic equilibrium. Work, internal energy and heat; first law, with examples. Kinetic theory of gases. Basic probability theory. Microscopic states and entropy. Absolute temperature, reversibility and the second law. Thermodynamic Functions and Maxwell's relations. Phase transitions. Third Law. Other applications of thermodynamics. [Offered: F, S]

*Prereq: (ECE 105, 106) or (PHYS 112 or 122); (ECE 205 or MATH 211) or ((MATH 227 or 237 or 247) and (MATH 228 or AMATH 250 or 251)).*

*Antireq: CHEM 254, MTE 309, ME 250, 354, PHYS 358, SYDE 381*

Course ID: 015304

**Geometrical and Physical Optics**

Electromagnetic waves and the nature of light. Geometrical optics, aberrations. Physical optics: interference, Fraunhofer and Fresnel diffraction, polarization. Optical instruments. [Offered: S]

*Prereq: (One of PHYS 112, 122) or (ECE 105, 106); (One of MATH 108, 119, 128, 138, 148).*

*Antireq: PHYS 226, 246, 256*

Course ID: 015305

**Introduction to Quantum Mechanics**

Introduction to quantization, wave-particle duality and the uncertainty principle. The Schroedinger equation and solvable examples. Topics include stationary states of particle-in-a-box, harmonic oscillator and the hydrogen atom. Quantization of angular momentum and spin. Introduction to approximation methods including time-independent perturbation theory. Modern applications of quantum mechanics. [Offered: W]

*Prereq: ECE 105, 106, MATH 117, (ECE 205/MATH 211 or MATH 213).*

*Antireq: AMATH 373, CHEM 356, NE 232, PHYS 233, 234*

Course ID: 010053

**Algorithm Design and Analysis**

Design and analysis of efficient, correct algorithms. Advanced data structures, divide-and-conquer algorithms, recurrences, greedy algorithms, dynamic programming, graph algorithms, search and backtrack, inherently hard and unsolvable problems, approximation and randomized algorithms, and amortized analysis. [Offered: W]

*Prereq: One of BME 122, ECE 250, MTE 140, SYDE 223.*

*Antireq: CS 341, 466, SYDE 423*

Course ID: 010055

**Cryptography and System Security**

Introduction to cryptology and computer security, theory of secure communications, points of attack, conventional cryptographic systems, public key cryptographic systems, standards, firewalls, wireless system security, applications. [Offered: W]

*Prereq: ECE 358; Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: CO 487, CS 458*

Course ID: 004785

**Wireless Communications**

Overview of wireless communications including standards. Characterization of mobile radio propagation channels. Signal representations. Transmission and reception techniques for wireless channels. Fundamentals of cellular communications and multiple-access schemes. [Offered: S]

*Prereq: ECE 306, 318, Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 013432

**Advanced Topics in Networking**

This course introduces advanced topics in networking with a focus on applications and wireless technologies. Topics include: Cellular networks (2G, 3G, 4G and beyond), applications (Domain Name System [DNS], Simple Mail Transfer Protocol[SMTP], Post Office Protocol [POP], Internet Message Access Protocol [ IMAP], Hypertext Transfer Protocol [HTTP]) and socket programming, Content-centric networks (content delivery networks, peer-to-peer protocols, data centers, etc.), protocols for multimedia applications (Session Initiation Protocol [SIP], Real-time Transport Protocol [RTP], RTP Control Protocol [RTCP]), emerging technologies (Internet of Things, sensors, software defined networks), policy issues (network neutrality, who controls the Internet?). [Offered W]

*Prereq: ECE 358, Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: CS 456*

Course ID: 013433

**Image Processing**

This course introduces the basic theories and methodologies of digital image processing. Topics include intensity transformations for image enhancement, two-dimensional discrete Fourier transform, spatial and frequency domain linear image filtering, nonlinear image filtering, binary image processing, edge detection, image segmentation, and digital video processing basics. [Offered: W]

*Prereq: Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: SYDE 575*

Course ID: 013435

**Embedded Computer Systems**

Specification and design of embedded systems, specification languages, hardware/software co-design, performance estimation, co-simulation, verification, validation, embedded architectures, processor architectures and software synthesis, system-on-a-chip paradigm, retargetable code generation and optimization, verification and validation, environmental issues and considerations. [Offered: W]

*Prereq: (ECE 254 or SE 350), (ECE 224 or MTE 325), ECE 327; Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: SYDE 524*

Course ID: 013436

**Radio Frequency Integrated Devices and Circuits**

An introduction to the theory and practice of Radio Frequency (RF) Integrated Circuit design. Physics and modelling of RF integrated components such as resistor, inductor, capacitor (RLC) passives, diodes, metal oxide semiconductor field-effect transistors (MOSFETs), high electron mobility transistors, hetero-junction bipolar transistors. RF integrated components properties and representation such as short channel effects, noise parameters, transit frequency (ft), maximum frequency of oscillation (fmax), and quality factor. [Offered: S]

*Prereq: (ECE 242 or 340); Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 013437

**Fabrication Technologies for Micro and Nano Devices**

Processes for micro and nanoelectronic fabrication. Semiconductor crystal growth. Thin films by chemical and physical vapor deposition. Epitaxial growth. Plasma-assisted and wet-chemical etch processes. Nano-structured material synthesis. Junction formation. Dielectric layer growth. Photolithography. Patterning on the nano-scale. Fabrication processes for transistors, complementary metal-oxide semiconductor (CMOS), and thin film devices. Micro-electro-mechanical systems (MEMS) technology. Process techniques for nanoelectronic devices. [Offered: W]

*Prereq: ECE 109; Level at least 4A Computer Engineering or Electrical Engineering.*

*Antireq: NE 343*

Course ID: 013438

**Integrated Analog Electronics**

Analog electronics exploits the physical behaviour of electronic devices to create electronic systems. The performance of single and multiple transistor amplifying stages are studied. Followed by a study of biasing, current mirror, and output stages, which are then combined in the study of operational amplifier circuits. Frequency response and feedback are then reviewed leading to a detailed study of stability and compensation for multistage and operational amplifiers. The course finishes with a look at selected topics from A/D (analog-to-digital) converters, oscillators, and phase-locked loops. [Offered: W]

*Prereq: (ECE 242 or 340); Level at least 4A Computer Engineering or Electrical Engineering.*

*Antireq: MTE 421*

Course ID: 013439

**Integrated Digital Electronics**

Review of the Metal-Oxide Semiconductor (MOS) transistor: Static and dynamic behavior, short channel effects, scaling trends, Simulation Program with Integrated Circuit Emphasis (SPICE) models. Complementary Metal-Oxide Semiconductor (CMOS) inverter; combinational CMOS circuit design - logic styles for low power, high performance circuits; sequential CMOS circuit design - flip-flops, pipelines, Schmitt trigger; CMOS arithmetic circuits; interconnect parasitic; clocking and timing considerations in digital Very Large Scale Integration (VLSIs). [Offered: S]

*Prereq: Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 004413

**Software Requirements Specification and Analysis**

Introduces students to the requirements definition phase of software development. Models, notations, and processes for software requirements identification, representation, analysis, and validation. Cost estimation from early documents and specifications.

*[Note: Lab is not scheduled and students are expected to find time in open hours to complete their work.]*

*Prereq: ECE 250; Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: SE 463*

*(Cross-listed with CS 445)*

Course ID: 004414

**Software Design and Architectures**

Introduces students to the design, implementation, and evolution phases of software development. Software design processes, methods, and notation. Implementation of designs. Evolution of designs and implementations. Management of design activities.

*[Note: Lab is not scheduled and students are expected to find time in open hours to complete their work.]*

*Prereq: ECE 250; Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: CS 430, SE 464*

*(Cross-listed with CS 446)*

Course ID: 004416

**Software Testing, Quality Assurance, and Maintenance**

Introduces students to systematic testing of software systems. Software verification, reviews, metrics, quality assurance, and prediction of software reliability and availability. Related management issues.

*[Note: Lab is not scheduled and students are expected to find time in open hours to complete their work.*

*Prereq: ECE 250; Level at least 3A Computer Engineering or Electrical Engineering.*

*Antireq: SE 465*

*(Cross-listed with CS 447)*

Course ID: 004801

**Distributed Computing**

Principles of distributed computing; architectures and middleware; servers, processes, and virtualization; upper-layer network protocols, interprocess communication and remote procedure calling; concurrency, synchronization and distributed algorithms, dependable distributed systems and fault tolerance. [Offered: S]

*Prereq: (ECE 252 or SE 350); Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Coreq: ECE 358 Software Engineering only.*

*Antireq: CS 454, 654*

Course ID: 004802

**Embedded Software**

Concepts, theory, tools, and practice to understand, design, and write embedded software. This course covers computing elements, structures in embedded software, resource access protocols, uniprocessor scheduling, programming-language support, languages for MDD (model-driven development), worst-case execution time analysis, and overview of embedded distributed systems. [Offered: S]

*Prereq: ECE 350 or SE 350; Level at least 4A Electrical Engineering or Computer Engineering or Software Engineering*

Course ID: 013441

**Co-operative and Adaptive Algorithms**

The course starts by addressing the ill-structured problems and need for computational intelligence methods. It introduces the concepts of heuristics and their use in conjunction with search methods, solving problems using heuristics and metaheuristics, constraints satisfaction. The course also introduces the concepts of co-operation and adaptations and how they are influencing new methods for solving complex problems. The course starts by illustrating how the concepts of co-operation and adaptation are manifested in nature and how such models are inspiring new types of solutions methods. Topics to be covered include search algorithms, game playing, constraints satisfaction, meta-heuristics, evolutionary computing methods, swarm intelligence, ant-colony algorithms, particle swarm methods, adaptive and learning algorithms and the use of these algorithms in solving continuous and discrete problems that arise in engineering applications. [Offered: S]

*Prereq: Level at least 4A Computer Engineering or Electrical Engineering or Mechatronics Engineering or Software Engineering*

Course ID: 013442

**Fundamentals of Computational Intelligence**

Fundamentals and recent advances in computational intelligence. Building accurate models with collected data or rules bases. Model-based prediction and classification. Concepts in machine learning, supervised and unsupervised learning, artificial neural networks, deep learning, feature extraction, feature selection, dimensionality reduction, classification and clustering, support vector machines. Approximate reasoning based on fuzzy set theory. Performance metrics to assess the validity of produced models. Multiple examples and case studies such as autonomous driving, intelligent manufacturing, natural language understanding, speech recognition, computer vision, stock market prediction, disease early detection and diagnosis. [Offered: W]

*Prereq: Level at least 4A Biomedical Engineering or Computer Engineering or Electrical Engineering or Management Engineering or Mechanical Engineering or Mechatronics Engineering or Software Engineering or Systems Design Eng.*

*Antireq: CS 486, SYDE 522*

Course ID: 016244

**Reinforcement Learning**

Introduction to reinforcement learning (RL) theory and algorithms for learning decision-making policies in situations with uncertainty and limited information. Topics include Markov decision processes, classic exact/approximate RL algorithms such as value/policy iteration, Q-learning, State-action-reward-state-action (SARSA), Temporal Difference (TD) methods, policy gradients, actor-critic, and Deep RL such as Deep Q-Learning (DQN), Asynchronous Advantage Actor Critic (A3C), and Deep Deterministic Policy Gradient (DDPG). [Offered: S]

*Prereq: One of BME 213, ECE 203, MTE 201, STAT 206, STAT 230, STAT 240, SYDE 212.*

*Antireq: ECE 493, Probablistic Reasoning and Reinforcement Learning*

Course ID: 013443

**Computer Security**

Introduction to computer security. Models of security. Elementary cryptography. Software security, vulnerabilities, threats, defenses and secure-software development processes. Threats to networks and defenses. Security issues at the application layer. Secure design principles, techniques and security evaluation. Privacy, ethics and legal issues. [Offered: S]

*Prereq: ECE 252 or SE 350; Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering.*

*Antireq: CS 458*

Course ID: 013471

**Programming for Performance**

Profiling computer systems; bottlenecks, Amdahl's law. Concurrency: threads and locks. Techniques for programming multicore processors; cache consistency. Transactional memory. Streaming architectures, vectorization, and SIMD. High-performance programming languages. [Offered: W]

*Prereq: ECE 252 or SE 350; Level at least 4A Electrical Engineering or Computer Engineering or Software Engineering*

Course ID: 013445

**Electrical Distribution Systems**

This course provides the students an understanding of the operation, analysis, and design of electric power distribution systems, starting with estimation of the loads on the network to the detail design of the distribution system networks. The primary objective of the course is to provide students with the skills to understand the analytical and design methods and modern tools for solution of problems associated with electric distribution system engineering. [Offered: S]

*Prereq: Level at least 4A Engineering*

Course ID: 004806

**Design and Applications of Power Electronic Converters**

Principles of power conditioning. Switching characteristics of power semiconductor devices. Computer simulation of power electronic circuits. Analysis, design, and applications of power converters. [Offered: S]

*Prereq: Level at least 4A Engineering.*

*Antireq: MTE 420*

Course ID: 004807

**High Voltage Engineering and Power System Protection**

The course provides the fundamentals concepts of generation and measurements of high voltage ac, dc, and impulses. Briefly introduces the students to basic conduction and breakdown mechanisms of insulating materials. The scope of this course also includes understanding the basic protection system, studying the principles for protecting different elements and studying different technologies used in designing protective relays. Exposure to several state-of-art high voltage testing techniques of power system components will ensure that students have knowledge of the industrial solutions to the management of the problems associated with overvoltage and the protection mechanisms used. [Offered: W]

*Prereq: Level at least 4A Engineering*

Course ID: 012581

**Power Systems Analysis, Operations, and Markets**

This course provides a basic understanding of the main issues relevant to the operation, analysis, and management of power grids, and gives an introduction to the functioning of electricity markets. The course covers the following main technical and economic issues relevant to system operators, utilities and analysts: power system economic operations; short-term operation of power systems; power flow; introduction to optimal power flows; overview of electricity markets; fault calculations; and basic concepts in power system stability and control. [Offered: W]

*Prereq: Level at least 4A Engineering*

Course ID: 004811

**Radio and Wireless Systems**

Modern transmitter and receiver architectures, Noise and linearity in radio and wireless systems, Design considerations of RF/microwave subsystems, radio and wireless system designs, CAD tools for radio and wireless systems, Antennas, Radio wave propagation models, Indoor radio, Satellite communication, Personal communication systems (PCSs). [Offered: W]

*Prereq: ECE 375 and (ECE 206 or MATH 212); Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 013188

**Radio-Wave Systems**

Review of Maxwell's equations and uniform plane waves. Electromagnetic wave propagation, reflection and transmission through different uniform media, metallic waveguides, multilayer structures, radiation theory, transmitting and receiving antenna, antenna arrays and applications, simple radio-wave propagation models, radio transmission systems and wireless networks. [Offered: S]

*Prereq: ECE 375 and (ECE 206 or MATH 212); Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 011045

**Photonic Devices and Systems**

Review of Maxwell's equations and electromagnetic plane waves, dielectric waveguides, optical fibers, lasers and photonic transmitters, photodetectors and photonic receivers, optical amplifiers, and photonic systems and networks. [Offered: W]

*Prereq: ECE 375 and (ECE 206 or MATH 212); Level at least 4A Computer Engineering or Electrical Engineering*

Course ID: 004813

**Digital Control Systems**

Performance specifications for design. Dynamic system modelling and basic system identification. Dealing with basic nonlinear effects. Sampled data systems. Discrete-time system stability and dynamic performance. Digital control system design: emulation methods, z-domain, frequency domain, pole placement. Implementation of digital controllers. [Offered: S]

*Prereq: (ECE 380 or MTE 360 or SYDE 352; Level at least 4A Computer Engineering or Electrical Engineering or Systems Design Engineering) or (ECE 207, SE 380; Level at least 4A Software Engineering).*

*Antireq: ECE 484*

Course ID: 011332

**Digital Control Applications**

Dynamic system modelling: linear, nonlinear, state-space, sample data systems, computer simulation, system identification. Discrete system stability and dynamic performance. Nonlinear system analysis, limit cycles. Digital control system design: emulation methods, z-domain, frequency domain, pole placement. Implementation of digital controllers. Laboratory projects in computer control of mechatronic and other systems. [Offered: F]

*Prereq: (MTE 360; Level at least 4A Mechatronics Eng) or (ME 360; Mechanical Eng./Mechatronics Option) or (SYDE 352; Systems Design Eng/Mechtr Option).*

*Antireq: ECE 481*

Course ID: 004816

**Robot Dynamics and Control**

Introduction to the study of robotics focusing on the mechanics and control of serial manipulators. Topics include rigid body motion, forward and inverse kinematics, differential kinematics, forward and inverse dynamics, trajectory generation, motion planning, and feedback control. [Offered: S]

*Prereq:(ECE 380;Level at least 4A Comp or Elect Eng)or(SE 380;Level at least 4A Software Eng)or(MTE 360;Level at least 4A Mechatronics Eng)or(ME 360;Level at least 4A Mech Eng/Mechtr Opt)or(SYDE 352;Level at least 4A Sys Design Eng)*

*.Antireq:ME 547*

Course ID: 011333

**Multivariable Control Systems**

Review of feedback control design fundamentals; SISO controller parameterizations; the fundamental effect of MIMO interaction; introduction to state-space models in continuous and discrete time; SISO techniques for MIMO design; optimal control; model-predictive control design; state estimation; decoupling, MIMO PID control design; applications in areas such as aerospace systems. [Offered: W]

*Prereq:(ECE 380;Level at least 4A Comp or Elect Eng)or(SE 380;Level at least 4A Software Eng)or(MTE 360;Level at least 4A Mechatronics Eng)or(ME 360;Level at least 4A Mech Eng/Mechtr Opt)or(SYDE 352;Level at least 4A Sys Design Eng)*

Course ID: 010059

**Special Topics in Electrical and Computer Engineering**

Special courses on advanced topics will be offered from time to time, when resources are available. For current offerings, inquire at the ECE Undergraduate Office or check the ECE website.

*[Note: Some offerings may include a laboratory component. Offered: W,S]*

*Department Consent Required*

*Prereq: Level at least 4A Computer Engineering or Electrical Engineering or Mechatronics Engineering or Nanotechnology Engineering or Software Engineering*

Course ID: 015999

**Autonomous Vehicles**

Autonomous driving system overview; computer vision basics, deep learning for perception, motion modelling and state estimation, localization and mapping, object tracking, behavioral planning and reinforcement learning, path planning and vehicle control, safety and verification and validation, adoption and impact. [Offered: W]

*Prereq: Level at least 3B Computer Engineering or Electrical Engineering*

Course ID: 013183

**Engineering Design Project**

Team-oriented design-project which comprises a significant design experience based on the knowledge and skills acquired by students in previous courses and on co-operative work terms. Development of the design specification and plan documents, followed by the initial design work. [Offered: F, W, S]

*Prereq: ECE 390; Level at least 4A Computer Engineering or Electrical Engineering.*

Course ID: 013184

**Engineering Design Project**

Completion of the design cycle started in ECE 498A and communication of the engineering design work. Submission of a written final report. Lecture-style technical presentation by group members. Poster-style technical presentation with group members available to discuss the project. [Offered: F, W, S]

*Prereq: ECE 498A; Level at least 4B Computer Engineering or Electrical Engineering.*

Course ID: 010040

**Engineering Project**

An engineering project requiring the student to demonstrate initiative and assume responsibility. The student will arrange for a faculty supervisor prior to registration. Students can propose their own topic. A project report is required at the end of the term.

*[Note: The project is approved by a departmental course coordinator. Offered: F, W, S]*

*Department Consent Required*

*Prereq: Level at least 4A Computer Engineering or Electrical Engineering*