Sample Courses
ECE360 – Electronics
Continued progress in electronics has become a defining characteristic of the past several decades. Already acquainted with the basics of voltage and current, this course provides students a first glimpse at amplifiers and transistors - the fundamental building blocks of most every modern piece of electronics. A combination of in-class and laboratory work provides both analytical and hands-on skills.
ECE355 – Signal Analysis and Communications
Efficient information processing is a core requirement of any complex engineering system. This course develops a mathematical framework for such analysis by introducing two key concepts: signals and systems. We illustrate how diverse areas can be analyzed in the common framework of linear time invariant (LTI) systems. We explain why such systems are more naturally treated in the transform domain rather than time domain and introduce the theory of Fourier transforms. The application of these techniques to communication systems is treated in detail. Within the ECE curriculum this course is an important foundation for digital signal processing (DSP), systems control, multimedia systems and statistical signal processing.
ECE356 – Linear Systems and Control
This is the first control design course taken by Engineering Science students, building on mathematics learned in the first two years. A control system is a dynamical system that operates on the fundamental paradigm of the feedback loop. The goal of a control system design is to obtain a desired dynamic response despite the presence of disturbances. Feedback loops are ubiquitous in biological systems. In the first half of the course, students learn the fundamentals of modeling and stability analysis of control systems. In the second half, the most important design methods are taught.
ECE362 – Digital Signal Processing
From rendering an image in a video game to detecting the early onset of cancer, the signals that make up our world are increasingly being digitized. This course deals with the fundamental concepts in the creation, analysis and processing of digital signals and systems including how to seamlessly move between our "analog" world to the far more flexible "digital" world. This course forms the basis of much of multimedia systems, biological signal processing and communications.
ECE352 – Computer Organization
The world today works because of computing technology. Most of us carry several processors with us all of the time in our cell phones, our watches, personal games and other mobile devices. Computer Organization is about the internal structures of computing systems, how they compute, and how they are interfaced to the physical world. This course is an important foundation for subsequent studies in hardware and software, such as Computer Architecture, Digital Systems Design, Computer Security, Operating Systems, Optimizing Compilers and Computer Systems Programming.
ECE358 – Foundations of Computing
There are a lot of hard problems out there that people want to solve: allocate jobs to processors to minimize the total processing time, work out the maximum amount of data that can be sent from one location to another on a network, schedule exams to use as few rooms as possible and avoid conflicts, etc. In this course, we study advanced algorithm design techniques that can be used to solve some of these problems (greedy algorithms, dynamic programming, network flows, linear programming), tools to prove that some of these problems do not have efficient solutions (NP-hardness, polynomial time self-reducibility), and heuristic techniques to deal with NP-hard problems (approximation algorithms, randomization).