11.3 Electrical and Computer Engineering
In accordance with Senate's Policy Regarding Inactive Courses, the course descriptions for courses which have not been offered in the previous three academic years and which are not scheduled to be offered in the current academic year have been removed from the following listing. For information about any of these inactive courses, please contact the Head of the Department. (or the Associate Dean (Undergraduate Studies) of the Faculty in the case of ENGI courses).
Electrical and Computer Engineering courses are identified by a four-digit numbering system, the first two digits signifying the following:
The first digit denotes the academic term during which the course is normally offered.
The second digit denotes the primary areas of study, namely:
0: Design |
1: Mathematics |
2: Controls |
3: Circuits |
4: Software |
5: Digital Hardware |
6: Signals & Communications |
7: Electromagnetism |
8: Power & Machines |
9: Special Topics |
Electrical and Computer Engineering courses are designated by ECE.
Non-departmental Engineering courses are designated by ENGI.
ECE 3300 Circuit Analysis
(same as the former ENGI 3821) begins with a review of basic circuit analysis including dependent sources, then considers wye-delta transformation, bridge circuits, transient analysis of first- and second -order circuits, sinusoidal steady state analysis, phasor diagrams, sinusoidal steady-state power, complex power and maximum power transfer.
ECE 3400 Foundations of Programming
(same as the former ENGI 3891) introduces fundamental concepts in object-oriented programming and develops vocational programming skills in C++. Topics include abstraction, types, contracts, object-oriented design, C++ language features including key elements of the standard library and practical programming and debugging skills.
ECE 3500 Digital Logic
(same as the former ENGI 3861) includes number systems and Boolean algebra; minimization techniques for Boolean functions; basic combinational logic circuit analysis and design; flip-flops, state machine design and implementation; decoders, multiplexors, registers, counters; simple arithmetic and logic units (ALUs); digital system design of small systems.
ECE 4110 Discrete Mathematics for Computer Engineering
(same as the former ENGI 4424) is an introduction to discrete mathematics including a selection of topics such as propositional logic, introductory predicate logic, mathematical reasoning, induction, sets, relations, functions, integers, graphs, trees, and models of computation.
ECE 4300 Electronic Circuits I
(same as the former ENGI 4854) provides an introduction to semiconductor electronic devices and circuits. Topics covered include internal structure of electronic devices; working principles, dc and small-signal models and analysis of p-n junction diodes, bipolar junction transistors and field effect transistors; introduction to digital electronics; differential and multistage amplifier circuits; Miller’s theorem; frequency response of discrete amplifiers; practical applications including power supplies, amplifiers and switching circuits. CAD tools are used to illustrate the analysis and design of electronic circuits.
ECE 4400 Data Structures
(same as the former ENGI 4892) examines fundamental data structures; recursive structures and generic programming techniques; modularity and reusability; time complexity and efficient data structures; procedural abstraction; data abstraction and precise documentation of data structures.
ECE 4500 Microprocessors
(same as the former ENGI 4862) includes microprocessor architecture; assembly language programming: addressing modes, table look up; memory mapped devices; interfacing techniques: parallel, serial; timing control; analog input and output, and computer displays.
ECE 4510 Microprocessors and Digital Logic
includes number systems, logic gates, Boolean algebra, Karnaugh maps and combinational logic design, sequential logic and state machines, microprocessor architectures, micro-processor programming, GPIO, analog input and output, and serial communication.
ECE 4600 Introduction to Systems and Signals
(same as the former ENGI 4823) begins with an introduction to systems and signals, and includes mechanical and electrical analogues; principles of linear superposition and time-invariance; definitions, properties, and use of the delta function; applications of complex variables and functions; impulse and step responses; input-output relations of continuous-time systems in terms of convolution and transfer functions; frequency response plots; the Fourier transform and applications; Laplace transforms with application to filtering, communications, and controls.
ECE 4800 Electromechanical Devices
(same as the former ENGI 4841) includes an introduction to fundamental principles of energy conversion; review of single-phase AC circuits; three-phase AC circuits; magnetic fields and circuits; transformer models, performance and applications; basic concepts of rotating machines; performance and control of DC motors.
ECE 5000 Electrical Engineering Design
(same as the former ENGI 5800) students work, normally in pairs, on small design projects that require them to follow a hierarchical design process including general product definition, specifications and requirements, functional-block diagrams, specification of functional blocks for circuit-level synthesis and implementation, system integration, simulation or modelling, testing and verification. The small projects are designed to encourage and motivate students to learn and practise the process of design. The course culminates in a large design project.
ECE 5010 Software Design
(same as the former ENGI 5895) examines the development process: requirement analysis, design, iterative development, design documentation; an introduction to the Unified Modelling Language: use cases, class diagrams and sequence diagrams; an introduction to software design patterns: creational patterns, structural patterns and behavioural patterns; object oriented, modular decomposition. The course includes a major design project.
ECE 5100 Probability and Random Processes
(same as the former ENGI 5420) includes basic concepts in probability, random variables, multiple random variables, descriptive statistics, random processes and selected applications for engineering.
the former ENGI 5420
twelve 1-hour tutorial sessions per semester
ECE 4600 or the former ENGI 4823
ECE 5200 Control Systems I
(same as the former ENGI 5821) includes an introduction to control systems with negative feedback; mathematical modelling and transfer functions of electromechanical systems; block diagram and signal flow graphs; controller realization; transient response analysis; Routh's stability criterion; basic control actions and response of control systems; root locus analysis and design; frequency response analysis; Bode diagram; gain and phase margins; compensator design in frequency domain; Nyquist stability criterion; digital implementations of analog compensators; and an introduction to PID controller tuning methods.
ECE 5300 Electronic Circuits II
(same as the former ENGI 5854) provides an introduction to circuits using operational amplifiers. Topics covered include operational amplifier configurations, analysis, and design; transient and frequency response of amplifier circuits; feedback amplifier analysis and design, stability and compensation techniques; noise and distortion in electronic circuits; analysis and design of data converters; and an introduction to analog filter design. CAD tools are used to illustrate the analysis and design of electronic circuits.
ECE 5400 Algorithms: Correctness and Complexity
(same as the former ENGI 5892, the former ENGI 6892) presents fundamental theories and practices for the design of correct and efficient computing systems, including specification of computing systems and their components, correctness with respect to specifications; methods of verification; algorithmic problem solving strategies (such as divide and conquer, dynamic programming); tractability and intractability of computational problems.
ECE 5500 Digital Systems
(same as the former ENGI 5865) includes concepts, language, tools, and issues pertaining to specification, modelling, analysis, simulation, testing and synthesis of digital systems, including PLD, FPGA, and ASIC devices. Industry standard CAD tools will be used in this course to facilitate system design and testing.
ECE 5610 Sensors and Instrumentation
involves modelling, analysis, and design of mechanical measurement systems. Topics covered include Laplace transforms, lumped parameter modelling of electro-mechanical systems, static and dynamic characteristics of sensors, sampling and anti-aliasing, classification and selection of sensors for motion and process, op-amps and signal conditioning and processing, and data acquisition system design.
ECE 5700 Basic Electromagnetics
(same as the former ENGI 5812) includes a review of relevant vector calculus, including the divergence, gradient and curl operators in Cartesian, cylindrical and spherical coordinates, divergence theorem, Stokes' theorem, and Laplace's and Poisson's equations. Topics in electrostatics include Coulomb's law, potential and energy, conductors, dielectrics, capacitance and electric field boundary conditions. Topics for magnetism include the steady magnetic field, the Biot-Savart law and Ampère's law.
ECE 6200 Industrial Controls and Instrumentation
(same as the former ENGI 6855) examines control and instrumentation system components; transducers and signal processing circuits, linear variable differential transformers, power oscillators; electromechanical actuators, solenoids, power drives; A/D and D/A conversion, standard PC interfaces; real-time operating systems; design of discrete-time feedback controllers on a PC platform; system integration, control system tweaking and troubleshooting; programming soft-PLC's using IEC61131.
ECE 6400 Software Development Practice
(same as the former ENGI 6893) introduces the student to software development processes, practices, and tools. It includes software project management using agile processes; development tools and practices; architectural level design; deployment and operations; and verification via static analysis, formal verification, and testing.
ECE 6500 Computer Architecture
(same as the former ENGI 6861) begins with a review of microprocessors and computer organization. Topics include fundamentals of computer design: performance metrics and cost; instruction set architecture; memory hierarchy design: cache, main memory and virtual memory; pipelining: hazards, parallelism; special purpose processors; multiprocessors and thread-level parallelism.
ECE 6600 Communication Principles
(same as the former ENGI 6871) begins with a review of signal representation and analysis and includes distortionless signal transmission, analog modulation (AM, FM and PM), super-heterodyne receiver, sampling theorem, pulse amplitude modulation (PAM), pulse code modulation (PCM), delta modulation.
ECE 6610 Communication Networks
(same as the former ENGI 6876) is an introduction to communication networks such as the telephone and computer networks. Topics include circuit and packet switching, network protocols and layered architecture, physical layer, data link layer, network layer, error control; local area networks, and internetworking.
ECE 6700 Electromagnetic Fields
(same as the former ENGI 6813) is a continuation of the topics started in ECE 5700, including a review of electrostatics and magnetostatics, Maxwell’s equations, Lorentz force, Poynting's theorem, plane waves, and applications including two-wire transmission lines.
ECE 6800 Rotating Machines
(same as the former ENGI 6843) examines the fundamentals of rotating machines; design of machine windings; polyphase and single phase induction motor theory and applications; synchronous machine theory; stability and control of synchronous generators; introduction to permanent magnet machines; introduction to AC motor drives.
ECE 6810 Power Electronics
(same as the former ENGI 6856) is an overview of power semiconductor switches, an introduction to energy conversion and control techniques and examination of controlled rectifiers; phase-controlled converters; switch-mode dc/dc converters; variable frequency dc/ac inverters; ac/ac converters; gate and base drive circuits; design of driver and snubber circuits; thermal models and heat sink design.
ECE 7000 Electrical Engineering Design Project I
(same as the former ENGI 7803) provides an opportunity for senior students to integrate the knowledge that they have acquired through the junior terms and apply it to solving an electrical engineering design problem. Students work in small teams with the assistance of a faculty mentor to define an appropriate design problem and propose a method of solution to the problem. The project is continued in ECE 8000.
ECE 7010 Computer Engineering Design Project I
(same as the former ENGI 7804) provides an opportunity for senior students to integrate the knowledge that they have acquired through the junior terms and apply it to solving a computer engineering design problem. Students work in small teams with the assistance of a faculty mentor to define an appropriate design problem and propose a method of solution to the problem. The project is continued in ECE 8010.
ECE 7200 Control Systems II
(same as the former ENGI 7825) examines state space models for multi-input/output systems; observability, controllability; state feedback without and with integral controller structure, state observers; quadratic optimal regulator and tracking control strategies; discrete-time state equations; and an introduction to optimal control.
ECE 7210 Process Control and Instrumentation
(same as the former ENGI 8680) begins with an introduction to feedback control systems, and instrumentation. Topics include modelling thermal, gas, liquid and chemical processes; sensors and transmitters, controller design and simulation in Matlab /Simulink, industrial feedback controllers; design of feedback control loops, tuning of feedback controllers; cascade, ratio, digital controller design; feedforward control; multivariable process control; fuzzy logic control and tuning, instrumentation electronics design, and process system identification using Matlab /Simulink.
ECE 7400 Concurrent Programming
(same as the former ENGI 7894) surveys parallel and distributed architectures and examines patterns of concurrent program design; correctness of concurrent programs: safety and liveness properties, proof of properties; synchronization using locks, semaphores, and monitors; communication using message passing and remote procedures; parallelization for high-performance computation and advanced topics such as scientific applications, distributed systems, model checking, and transaction processing.
ECE 7410 Image Processing and Applications
(same as the former ENGI 7854) presents fundamental theoretical and practical concepts of image processing and analysis. These concepts include image enhancement and filtering, frequency domain analysis, morphological image operations, image segmentation, and feature extraction. The course enables the use of these concepts to automatically process and analyze images and videos from various real-world applications such as biomedical imaging, visual surveillance, and robotics.
ECE 7420 Computer Security
(same as the former ENGI 7864) introduces students to key computer security concepts for applications, hosts, networks and the Web. Students will learn to employ the primitives provided by programming languages, cryptography, operating systems and network protocols for protecting engineered systems and their users.
ECE 7500 Introduction to VLSI Design
(same as the former ENGI 8863) is an introduction to ASICs and ASIC design methodology and includes basic concepts of digital logic design tools and ASIC technology libraries; partitioning for logic synthesis and VHDL coding; constraining designs, synthesizing, simulation and optimization; design for testability; layout and post-layout optimization and SDF generation; and static timing analysis.
ECE 7600 Introduction to Digital Signal Processing
(same as the former ENGI 7824) examines sampling theory; elementary discrete-time signals; discrete-time linear and time-invariant systems; linear constant-coefficient difference equations; the convolution sum; the discrete-time Fourier series; the discrete-time Fourier transform; the z-transform; the frequency response of discrete-time systems; the discrete Fourier transform; the efficient fast Fourier transform algorithm; an introduction to digital filter design techniques; and digital signal processing applications.
ECE 7620 Digital Communications
(same as the former ENGI 8879) is a review of baseband transmission and basic digital modulation schemes, detection (optimum receiver, matched filter, correlator), error performance, intersymbol interference (ISI), equalization, the concept of information and entropy, source coding including Huffman coding and linear predictive coding, channel coding including block and convolutional error correcting codes, modulation and coding trade-offs, bandwidth and power efficiency.
ECE 7800 Power System Analysis
(same as the former ENGI 7844) begins with an introduction to electric power systems. Topics include per unit quantities; transmission line parameters; modelling of power system components; single line diagrams; network equations formulation; bus impedance and admittance matrices; load flow analysis and control; design of reactive power compensation for power system performance enhancement; tap changing, auto and control transformers for power system application; economic dispatch and optimal power flow studies.
ECE 7810 Renewable Energy Systems
(same as the former ENGI 7856) examines the assessment of wind energy potential, wind turbine aerodynamics, types, modelling and control strategies; hybrid energy systems; energy storage; solar energy systems; photovoltaic, PV system engineering, stand-alone and grid connected systems, sizing and maximum power tracking; solar water pumping; micro-hydro systems and control; tidal power, wave energy converters, ocean thermal systems. Applications of hybrid energy system sizing software are also included in the course.
ECE 8000 Electrical Engineering Design Project II
(same as the former ENGI 8853) continues ECE 7000 and provides an opportunity for senior students to integrate the knowledge that they have acquired through the junior terms and apply it to solving an electrical engineering design problem. Students work in small teams with the assistance of a faculty mentor to complete detailed design, implementation and testing of an electrical engineering system to solve the problem as defined in ECE 7000.
ECE 8010 Computer Engineering Design Project II
(same as the former ENGI 8854) continues ECE 7010 and provides an opportunity for senior students to integrate the knowledge that they have acquired through the junior terms and apply it to solving a computer engineering design problem. Students work in small teams with the assistance of a faculty mentor to complete detailed design, implementation and testing of an computer engineering system to solve the problem as defined in ECE 7010.
ECE 8210 Supervisory Control and Data Acquisition
(same as the former ENGI 7680) examines data acquisition and intelligent field devices; distributed systems and fieldbus technology; programmable logic controllers and programming standards; operator control interface; supervisory control and data acquisition; and enterprise organization.
ECE 8400 Real-time Operating Systems
(same as the former ENGI 8894) examines real-time process scheduling; memory and device management; I/O communications; real-time systems; operating system and hardware concurrency issues; kernel architectures; device drivers; and a survey of available real-time operating systems and embedded platforms.
ECE 8410 Computer Vision
(same as Computer Science 4301, the former ENGI 8814) studies how to develop methods that enable a machine to "understand" or analyze images. The course introduces the fundamental problems in computer vision and the state-of-the-art approaches that address them. Topics include feature detection and matching, geometric and multi-view vision, structure from X, segmentation, object tracking and visual recognition.
ECE 8420 Cryptography
(same as the former ENGI 8868) examines the techniques used to provide security in communication networks and computer systems. The course focuses on topics in cryptography required to provide privacy, authentication, and integrity, including symmetric key ciphers, public key ciphers, message authentication, and digital signature schemes.
ECE 8600 Design of Digital Signal Processing Systems
(same as the former ENGI 8821) is a review of introductory digital signal processing (DSP) principles, including sampling theory and discrete-time systems and signals. Topics include transform analysis of DSP systems; issues in the implementation of DSP systems; design of IIR and FIR digital filters; computable transforms and their use in the frequency analysis of digital signals; and design of DSP systems for current and emerging applications of digital signal processing.
ECE 8610 Filter Synthesis
(same as the former ENGI 8826) introduces analog filters. Topics include transfer functions and frequency response of filters; design of first order passive and active filters; design and analysis of filter circuits such as biquad circuit, Sallen-Key circuit, multiple feedback circuit and state variable filter; RC-CR transformation; cascade design principle; design of Butterworth, Chebyshev and elliptic filters, Bessel-Thomson filters, switched capacitor filters; and the use of Matlab for design of analog filters.
ECE 8620 Wireless and Mobile Communications
(same as the former ENGI 8804, the former ENGI 8877) covers the fundamentals and main concepts of wireless and mobile communication systems focusing on the system level design and performance. Main topics to be covered include Introduction to Wireless Communication Systems, Wireless Channel Models, Frequency Reuse Concept, Wireless Multiple Access Techniques (TDMA, FDMA, CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Wireless Systems (GSM, 3G, LTE, etc.).
ECE 8630 Introduction to the Internet of Things
introduces the architectures, protocols, standards, and applications of the Internet of Things (IoT). Topics include: IoT concepts, architectures, and standards, communication and networking, computing and IoT data management, security and privacy, IoT applications, digital twins, and next generation cellular networks and their impact on IoTs. Through this course, students will be able to understand the key challenges of the IoT systems and develop proper conceptual and technological solutions to real-world problems.
ECE 8700 Antennas
(same as the former ENGI 7811) examines the fundamentals of electromagnetic radiation; potentials; small antennas and antenna parameters; thin linear wire antennas and antenna arrays; antenna impedance and ground effects; Friis transmission formula; and aperture antennas.
ECE 8800 Power System Operation
(same as the former ENGI 8845) examines symmetrical components; power system fault analysis; power system stability; and power system protection.
ECE 8900-8949 Special Topics in Computer Engineering
will have topics to be studied announced by the Department.
ECE 8950-8999 Special Topics in Electrical Engineering
will have topics to be studied announced by the Department.
AR = Attendance requirement as noted. CH = Credit hours: unless otherwise noted, a course normally has a credit value of 3 credit hours. CO = Co-requisite(s): course(s) listed must be taken concurrently with or successfully completed prior to the course being described. CR = Credit restricted: The course being described and the course(s) listed are closely related but not equivalent. Credit is limited to one of these courses. Normally, these courses cannot be substituted, one for the other, to satisfy program requirements. EQ = Equivalent: the course being described and the course(s) listed are equal for credit determination. Credit is limited to one of these courses. These courses can be substituted, one for the other, to satisfy program requirements. |
LC = Lecture hours per week: lecture hours are 3 per week unless otherwise noted. LH = Laboratory hours per week. OR = Other requirements of the course such as tutorials, practical sessions, or seminars. PR = Prerequisite(s): course(s) listed must be successfully completed prior to commencing the course being described. UL = Usage limitation(s) as noted. |