ECE Courses

Course Number Key:
Course Level:
Please note a number of course numbers are changed effective Fall 2016 to conform to the following:
1xx: First year undergraduate.
2xx: Second year undergraduate.
3xx: Advanced undergraduate (junior or senior level).
4xx: Graduate.
Course Subject:
x0x: Communications
x1x: Signal Processing
x2x: Control
x3x: Applied Physics
x4x: Electronics
x5x: Computer Hardware and Architecture
x6x: Computer Software and Algorithms
x7x: Machine Learning and Statistical Methods
x9x: Projects and Thesis

Undergraduate Courses

ECE150 Digital Logic Design

Theoretical and practical issues concerning design with combinational and sequential logic circuits, and programmable logic devices. Number systems, Boolean algebra, representation and simplification of Boolean functions, universal logic families. Finite-state machines, state tables and state diagrams, flip-flops, counters, registers. Adders, decoders, comparators, multiplexers, memories and applications. Programmable devices: PLA, PLD, etc. Principles of analog circuits are presented in the context of real world problems, such as “glitches,” power and ground bounce, contact bounce, tri-state logic and bus interfacing, timing circuits, asynchronous versus synchronous circuit components. Characterization of electronic and logical properties of digital circuits. Course work involves individual and team projects in which: digital circuits are designed and prototypes are constructed and tested on breadboards; designs involving programmable logic devices are developed using CAD tools. The projects, approximately 50 percent of the course grade, are used to assess technical writing, oral presentation, teamwork and project management skills.
3 credits. Prerequisites: none.
Required for all EE students (1st year; runs both fall and spring)

ECE160 Programming for Electrical Engineers

Programming in C in a Linux environment, with an emphasis on software development methodology. Data types, expressions, control flow, pointers, subroutines, numerical and text processing, data structures and algorithms. Introduction to computer architecture and operating systems. Introduction to object oriented programming in C++, and classification of programming languages.
3 credits. Prerequisite: None.
Required for all EE students entering Fall 2016 or later (1st yr.; runs both fall and spring)
This course may be waived for students with prior C programming experience based on placement exam administered by the EE dept.

ECE161 Programming Languages

Examination of the fundamental concepts of practical programming languages, focusing on C and C++ but including additional languages. Topics include binary representations of numbers, operators, static and dynamic memory allocation, arrays, strings, structures, flow control, file I/O, stacks, queues, lists, activation records and recursion. Object oriented programming concepts covered include classes, encapsulation, information hiding, operator and function overloading, constructors, destructors, inheritance and polymorphism.
3 credits. Prerequisite: CS 102
Required for comp. eng. track for students entering prior to Fall 2016; starting Fall 2016, this course is replaced with ECE160

ECE210 [Formerly ECE110] MATLAB Seminar: Signals and Systems

A weekly hands-on, interactive seminar that introduces students to MATLAB, in general, and the Signal Processing Toolbox in particular. Students explore scientific computation and scientific visualization with MATLAB. Concepts of signal processing and system analysis that are presented in ECE 211 or other introductory courses on the subject are reinforced through a variety of demonstrations and exercises. It is strongly encouraged for students taking a first course in signals and systems, or for students expecting to use MATLAB in projects or courses.
0 credits.   Prerequisite: MA113;  recommended co-requisite: ECE211 or equivalent.
Required for all EE students (2nd yr. spring)

ECE211 [Formerly ECE111] Signal Processing and Systems Analysis

This course presents a unified treatment of signals and systems.  Signal-space concepts for representation and approximation: inner product, orthogonal expansions, projection, Lp-norms.  Phasors, complex baseband representation, line spectra.  Sampling, aliasing and imaging.  Analog and digital LTI systems in the time, frequency and transform domains: convolution, impulse response, frequency response, transfer functions.  Continuous and discrete time Fourier transforms, Laplace and z-transforms.  Poles and zeros, transient response modes.  Block diagrams, stability, feedback.  FIR and IIR digital filters and filter structures.  Initial conditions, damping factor, Bode plots.  Analog and digital state-space realizations, transition matrix, transfer function matrix.  Random signals and vectors:  correlation matrices, Gaussian vectors and signals, white noise, stationarity, ergodicity, power spectral density, ARMA models.  Introduction to least-squares problems and SVD. Extensive use of MATLAB.
3 credits. Prerequisite: Ma 113; corequisite: ECE 210
Required for all EE students (2nd yr. spring)

ECE240 [Formerly ECE140] Circuit Analysis

Circuit components, dependent and independent sources, Kirchhoff’s laws, loop and nodal analysis. Superposition, Thevenin and NOrton equivalent circuits, and other techniques for circuit simplification. Time-domain analysis of RLC circuits, initial conditions, transient response and staeady-state. Phasor analysis, complex power. Ideal op-amps.
3 credits. Prerequisite: Ma 113.   Ma 240 is a suggested co-requisite.
Required for all EE students (2nd yr. fall)

ECE241 [Formerly ECE141] Electronics I

Semiconductor physics: band theory, carrier distributions and transport mechanisms. PN-junctions, PN junction devices. Diode circuits. BJTs: current relationships, operating region. Biasing circuits, DC Analysis; small-signal models, AC analysis. BJT amplifier configurations.
3 credits. Prerequisite: ECE 240
Required for all EE students (2nd yr. spring)

ECE251 [Formerly ECE151] Computer Architecture

Basic structure of computers based on the von Neumann model. Generic one- bus, two-bus and three-bus architectures. Stack based design. Tri-state logic and interfacing to a bus. Aspects of bus timing and maximum running speeds. Instruction sets: 1, 11⁄2, 2, 3 and more operand instructions. Operand addressing modes including case studies. Computer subsystems: (a) memory: dynamic and static RAM, refresh cycles, asynchronous data transfers; (b) I/O: interrupts vs. polling, ISRs and program controlled I/O. The control unit: microprogramming vs. hardwired controllers. Horizontal vs. vertical microinstructions. The execution of a program; instruction fetch and execution sequences; PC, IR and other special registers. Computer peripherals and secondary storage. Course work involves the building of advanced digital circuits using VLSI programmable chips provided in a kit of parts. Introduction to parallel and pipelined architectures.
3 credits. Prerequisite: ECE 150.
Required for all EE students (2nd yr. spring)

ECE264 [Formerly ECE164] Data Structures and Algorithms I

An introduction to fundamental data structures and algorithms, with an emphasis on practical implementation issues and good programming methodology. Topics include lists, stacks, queues, trees, hash tables and sorting algorithms. Also an introduction to analysis of  algorithms with big-O notation. Assignments include programming projects and problem sets.
2 credits. Prerequisite: ECE 160/161.
Required for comp. eng. track (2nd yr. spring)

ECE291 Electrical Engineering Sophomore Projects

This course focuses on one particular complex system (e.g., music synthesizer, wireless transceiver, radar) to introduce a wide range of electrical engineering principles such as frequency response, noise, feedback, loading and interfacing. In a laboratory setting, students investigate the design of subsystems that may include amplifiers, oscillators, RF or opto-electronic circuits, A/D and D/A converts, and power circuits. By measuring the impact of the operating conditions on circuit performance, students learn the principles of systems engineering, development of a testbench, and proper documentation. By the end of the semester, the class will have developed a complete functioning system through reverse engineering.

1 credit. Prerequisite or co-requisite: ECE 150. Co-requisite: ECE240.

Required for all EE students entering Fall 2016 or later (2rd yr. fall)

ECE300 Communication Theory

Information theory: entropy, information, channel capacity, rate-distortion functions, theoretical limits to data transmission and compression. Error control coding: block, cyclic and convolutional codes, Viterbi algorithm. Baseband and bandpass signals, signal constellations, noise and channel models. Analog and digital modulation formats (amplitude, phase and frequency), MAP and ML receivers, ISI and equalization. Coherent and non- coherent detection, carrier recovery and synchronization. Performance: computation of SNR, BER, power and bandwidth requirements. Multiple access schemes. OFDM.
3 credits. Prerequisites: Ma 224 and ECE 211.
Required for all EE students (3rd yr. fall)

ECE302 Probability Models and Stochastic Processes

Topics in probability, random variables and stochastic processes applied to the fields of electrical and computer engineering. Probability, events, random variables, expectation, moments, characteristic functions, conditional probability and expectation. Functions of random variables, random vectors, Gausian random vectors, Poisson points. Bounding and limit theorems. Relations among important distributions and probability models. Stochastic processes: stationarity, ergodicity, Brownian motion, Markov processes. Deterministic systems with stochastic inputs, correlation and power spectral density, ARMA models. Hilbert space and applications: orthogonality principle, discrete Wiener and Kalman filters, linear prediction, lattice filters.
3 credits. Prerequisites: Ma 224 and ECE 300 or ECE 310 or permission of instructor.
For students entering prior to Fall 2016: required in comp. eng. and signals tracks.
For students entering Fall 2016 or later: required for all EE students. (3rd yr. spring)

ECE303 Communication Networks

Analysis and design of communication networks. Network protocols, architecture, security, privacy, routing and congestion control, Internet, local area networks, wireless networks, multimedia services. Physical layer, multiple access techniques, transport layer. Introduction to probabilistic and stochastic analytic techniques for communication networks. Simulation techniques.
3 credits. Prerequisites: ECE 150 and Ma 224.
Required for all EE students (3rd yr. spring)

ECE305 Computer Security

This course covers attack and defense perspectives of applied information security. Topics will include networked and embedded applications, access controls systems and their failure modes, privilege escalation, case studies and some applied cryptography. Safe practices and OS flaw mitigation will be reinforced through security-sensitive programming projects. Course work will include penetration testing, code auditing and independent programming projects using professional auditing frameworks.
3 credits. Prerequisite: ECE160 or CS102.

ECE310 Digital Signal Processing

Review of Laplace and z-transforms. Minimum-phase and all-pass functions. Multidimensional signals, systems and Fourier analysis. Analog filter design, digital IIR and FIR filter design. Sampling, multirate systems and filter banks, A/D and D/A converter models. Discrete-time state-space. Filter structures, quantization effects and design to mitigate quantization effects. DFT and FFT. Spectral analysis of deterministic and random signals. Introduction to adaptive filters. Differential coding, transform coding. Speech, audio and video signals. Extensive use of MATLAB.
3 credits. Prerequisites: Ma 240 and ECE211.
Required for all EE students (3rd yr. fall)

ECE311 Hardware Design

Development methodologies for signal processing hardware systems: RTL, HDL, synthesis and verification. Special processors including FPGA, multicore, ARM and GPU. ADC and DAC, interchip and intrachip communication, mixed-signal systems, clock and power distribution, loading, sensors and actuators, embedded systems. PCB and surface mount devices. Systems engineering. Course work including projects involving hardware realizations, simulation and emulation, and software tools for system design.
3 credits. Prerequisites: ECE211, ECE241, ECE251.
For students entering Fall 2016 or later: required for signals/electronics track (3rd yr. fall).

ECE314 Audio Engineering Projects

An introduction to design, implementation, fabrication and modification of musical and audio electronics and hardware in a laboratory environment. Projects will include analog and digital signal processing for audio signals, with focus on implementation of real-time algorithms in hardware. Additional projects will include design and implementation of electro-mechanical systems and transducers for audio input / output / display. Formal and informal lectures will include examples drawn from standard implementations, safety concerns, audio specific design and construction techniques; participation in oral presentations and technical reports will be required.

3 credits. Prerequisites: ECE241 and ECE 150 or permission of instructor.

ECE320 Control Systems

Block and signal-flow diagrams, Mason’s theorem. Laplace transform, frequency response, Bode plots, root locus, Routh-Hurwitz array. Analysis of feedback control systems: open-loop and closed-loop gain, Nichols chart, Nyquist diagram, gain and phase margin. Continuous-time state-space analysis, state-variable feedback, canonical forms, observability and controllability. Second-order models, transient and steady-state performance. Emphasis on analog systems, although digital control systems will be discussed as time allows. Extensive use of MATLAB.
3 credits. Prerequisites: Ma 240 and ECE 211
For students entering prior to Fall 2016: required for signals and electronics tracks.

ECE321 Control Systems Design

Control system design using Bode plots, Nichols chart, root locus. Design by pole placement, Ackermann’s formula, state-variable feedback. Cascade compensation, minor-loop feedback. Controller and estimator design, regulator systems, systems with a reference input. Introduction to digital control: hybrid analog-digital control systems, sampled-data systems, digital extensions of Bode plots and root locus, Ragazzini’s method. Extensive use of MATLAB.
3 credits. Prerequisite: ECE 320

ECE323 Embedded System Design

Hardware and software design for embedded systems. SBC and microcontroller architectures, A/D and D/A conversion, signal conditioning, interfacing and controlling electronic and electro-mechanical systems. Assembly language and high-level language programming, efficient use of computational and physical resources, considerations for speed and robustness, debugging methods, use of simulators and in-circuit emulators. The course is project-based, and students are required to design and construct an embedded system.
3 credits. Prerequisites: ECE 251 and ECE 320

ECE332 Electro-mechanical Energy Conversion

Analysis of energy sources and energy converters. Principles of electro-mechanical energy conversion; singly and multiply excited systems; rotating and linear machines; three- phase circuits; magnetic circuits and transformers; torque and induced voltage from field considerations; synchronous machines; induction motors; DC machines. Introduction to power electronics. Applications including high-speed transportation, energy storage and interconnection of distant generating stations.
3 credits. Prerequisites: ESC 220 or ECE 240 and Ph 213

ECE335 Engineering Electromagnetics

This course emphasizes time-varying fields, with topics presented from electrostatics and magnetostatics as necessary. Maxwell’s equations, constitutive relations, phasor vector fields, wave and Helmholtz equations, potentials, boundary conditions. Plane waves in lossless and lossy materials, polarization, incidence. Transmission lines: transient analysis, TDR, phasor analysis, standing wave diagrams, Smith chart, impedance matching. Guided waves: TEM, TE and TM modes, dispersion, evanescence, cavity resonators. Microwave network analysis and device characterization with scattering parameters. Antennas, antenna arrays and Fourier optics. Additional topics from microwaves and optics will be covered as time allows. Students use a vector network analyzer to perform measurements at high frequencies.
4 credits. Prerequisites: Ma 223, Ph 213, ECE 240 and ECE 211
Required for all students in signals/electronics track (3rd yr. spring).

ECE342 [Formerly ECE142] Electronics II

MOS circuits: DC operation and analysis. Single stage MOS amplifiers, circuit design, DC and small signal analysis. Cascode amplifier. Current mirrors, active loads. BJT and MOS differential amplifiers. Monolithic operational amplifiers. Output stages. Frequency response. Introduction to feedback theory, amplifier topologies. Circuit design and analysis are supplemented with industry standard CAD software.
3 credits. Prerequisites: ECE 241 and ECE 211
Effective Fall 2018, this course will change to 4 credits, covering the same topics in greater depth.
Required for all EE students (3rd yr. spring)

ECE345 [Formerly ECE341] Integrated Circuit Engineering

Feedback theory, frequency compensation. Integrated circuit fabrication and technology. Device modeling, thermal effects. VLSI CAD design tools. Circuit layout, extraction and simulation. Design and analysis of multistage MOS operational amplifiers, OTA architectures. Nonlinear circuits, comparators. Analog switches. Digital phase-locked loops. Sample and hold circuits. Data converter architectures. Switched capacitor circuits. Bandgap reference circuits. MOST digital circuit design and layout, hierarchical approaches. Final design project is a mixed analog/digital circuit (e.g., Flash A/D converter, phase-locked loop), which is sent for fabrication.
3 credits. Prerequisites: ECE 342
For students entering prior to Fall 2016: required in electronics track.
For students entering Fall 2016 or later: required in signals/electronics track (3rd yr. spring)

ECE357 Computer Operating Systems

Theory and implementation of modern computer operating systems. Message- based and multiprocessor kernels. Networking and interprocess communication. Security, auditing and authentication. Device drivers, interrupt handling, task switching, virtual memory, memory management, scheduling, synchronization and locking. File systems, resource allocation and management. Real-time, fault-tolerant and high security operating systems. User environment and interface issues. Projects in operating system design and programming, case studies.
3 credits. Prerequisites: ECE 251 and ECE 160/161.
For students entering Fall 2016 or later: required in comp. eng. track (3rd yr. fall)

ECE365 [Formerly ECE165] Data Structures and Algorithms II

A continuation of ECE 264, also with an emphasis on practical implementation issues and good programming methodology. Topics include graphs, graph-related algorithms and dynamic programming techniques. Also an introduction to some advanced topics such as Turing  machines, computability and NP-complete systems. Assignments include programming projects and problem sets.
2 credits. Prerequisite: ECE 264
Required for comp. eng. track (3rd yr. fall)

ECE366 [Formerly ECE361] Software Engineering and Large System Design

This course teaches about the development stages of large, robust, expandable software systems developed as part of a team. Topics include project management, capturing requirements, system design, UML, program design, testing, delivery and maintenance. The class will develop a large project as a team using Java throughout the semester. Tools, libraries and techniques necessary for the project will be covered in class, e.g., Eclipse, Javadoc, XML, SOAP, servlets, threads and processes, Swing, JUnit, mySQL, JDBC, etc. The specific resources might change from semester to semester.
3 credits. Prerequisite: ECE 365
Required in comp. eng. track (3rd yr. spring)

ECE393 [Formerly ECE193] Electrical Engineering Junior Projects I

An introduction to laboratory techniques for electrical and computer engineering. Electronic test equipment including: DVM, oscilloscope, curve tracer, spectrum analyzer. Circuit analysis and design, discrete and integrated electronic components and circuits. Several projects of limited scope provide an understanding of the fundamental building blocked employed in the more advanced designs in successive projects courses. Students give weekly oral presentations and demonstrate laboratory proficiency through in-class demonstrations and concise, formal technical reports.
1.5 credits. Prerequisites: ECE 211, ECE 241 and ECE 150. Co-requisite: ECE 342.
Effective Fall 2018 this course will be 2 credits, meeting 4hrs./wk. on alternating weeks, with additional
prerequisite ECE291.
Required for all EE students (3rd yr. fall)

ECE394 [Formerly ECE194] Electrical Engineering Junior Projects II

Principles learned in ECE 393 are applied to the design, construction and characterization of electrical and computer engineering projects of significant complexity. Assignments typically involve both analog and digital design, and students are free to pursue any solution that satisfies the engineering requirements and meets with the instructor’s approval. Formal and informal lectures are given on safety, circuit operation and design, and construction techniques; participation in design reviews and technical reports.
4 credits. Prerequisite: ECE 393.
Effective Spring 2019 this course will be 3 credits.
Required for all EE students (3rd yr. spring)

ECE395 [Formerly ECE195] Electrical Engineering Senior Projects I

ECE 395 and ECE 396 constitute the year-long senior design project. Students work in small groups on projects chosen with the advice and consent of the faculty adviser. Projects may be oriented towards research or product development, and may be in any area of electrical and computer engineering, such as in: computer engineering, signal processing (imaging, sensor arrays, multimedia), telecommunications, computer networks, microwaves, optics, advanced electronics, VLSI chip design, or an interdisciplinary area such as robotics or bioengineering. Students perform all aspects of project management, such as scheduling, budgeting, system design and developing milestones, as well as technical work including hardware and software implementation, testing and performance evaluation. Students also give several spontaneous and rehearsed oral presentations and prepare written reports. Students attend weekly lectures covering: social, economic, legal and ethical issues; safety and laboratory p/ractice; design methodologies; technical writing; preparation of multimedia presentations and tailoring presentations to target audiences.
4 credits. Prerequisite: ECE 394.
Effective Fall 2019 this course will be 3 credits.
Required for all EE students (4th yr. fall). Open only to EE majors.

ECE396 [Formerly ECE196] Electrical Engineering Senior Projects II

This course concludes the senior project begun in ECE 395. Students submit two complete theses, one in short form and the other in long form, and give at least two presentations, one short and one long. The initial goal is to a achieve a functioning system. Afterwards, students undertake the completion of the prototyping cycle, which may involve improving the circuit implementation (such as by employing PCBs populated with surface mount chips), adding a user-friendly interface, obtaining precise performance evaluations, or developing demonstrations and a user’s manual. Advanced students are strongly encouraged to complete their project early and commence a master’s thesis.
3 credits. Prerequisite: ECE 395.
Required for all EE students (4th yr. spring). Open only to EE majors.

Graduate Courses

ECE401 Selected Topics in Communication Theory

Advanced topics in communications engineering, selected according to student and instructor interest.
3 credits. Prerequisites: ECE 300 or permission of instructor

ECE402 Selected Topics in Probability and Stochastic Processes

Advanced topics in applied probability or stochastic processes. Possible areas of study include: Markov processes, queuing theory, information theory, stochastic systems, financial engineering.
1-3 credits.  Prerequisite: ECE 302 or permission of instructor

ECE403 Advanced Communications Networks

A continuation of topics from ECE 303. Technical readings, case studies, and research in network architectures and protocols. Related topics such as distributed computing and ad hoc sensor networks may be covered as well. Topics from probability, stochastic processes and graph theory are presented as needed for the analysis and simulation of communication networks.
3 credits. Prerequisite: ECE 303

ECE404 Satellite Communications

This course covers the design of satellite systems for applications such as communication, weather, sensing, research, GPS. Basic planetary physics, orbit selection, spacecraft lifetime. Reliability and component requirements, environmental effects and impact on electrical performance. Common modulation schemes and selection strategy. “Bent pipe” spacecraft configuration, atmospheric effects and loss (e.g., rain fade effects). Earth station configuration, uplink and downlink configurations, spectral maps and spectral power requirements and stresses. System level link budgets. Time delay and synchronization, frequency planning and re-use. Antenna beams and configurations.
3 credits. Prerequisites: ECE 300

ECE405 Advanced Digital Communications

Advanced digital modulation including formats with memory, continuous-phase and constant-envelope schemes. Performance analysis for AWGN and other channels. Multitone and multicarrier communications. Spread spectrum with applications to multiple access schemes and secure communications. CDMA: PN sequence generation and properties, multi-user detection. Additional topics as time permits.
3 credits. Prerequisites: ECE 300 and ECE 302

ECE407 Wireless System Design

Hands-on exposure to the design and implementation of modern digital communication systems using software-defined radio (SDR) technology. The prototyping and real-time experimentation of these systems via SDR will enable greater flexibility in the assessment of design trade-offs as well as the illustration of “real world” operational behavior. Laboratory modules for performance comparisons with quantitative analytical techniques will be conducted in order to reinforce digital communication system design concepts. A large course project consisting of original research will be required. Course topics include SDR architectures and implementations, digital signaling and data transmission analysis in noise, digital receiver structures (matched filtering, correlation), multicarrier communication techniques, radio frequency spectrum sensing and identification (energy detection, matched filtering), and fundamentals of radio resource management.
3 credits. Prerequisites: ECE 300 and ECE 310

ECE408 Wireless Communications

Survey of cellular mobile radio systems and formats, including market trends and technological advances. The emphasis is on CDMA and 3G systems, and emerging schemes such as WiFi networks, although TDMA systems will be discussed as well. Propagation and multipath fading channel models and simulation. Cellular system capacity, traffic models, multiple-access techniques, handoff and power control algorithms. Modulation formats, detection schemes and performance. Mitigating fading: pulse shaping, DFE, MLSE (Viterbi). DSP algorithms for baseband processing.
3 credits. Prerequisite: ECE 300

ECE410 Radar and Sensor Array Processing

Terminology and system overview for modern radar and sensor array systems; antenna parameters; radar signals and waveforms; Doppler processing; detection; synthetic aperture imaging (SAR); beamforming and space-time array processing (STAP); adaptive methods; additional topics may be covered according to student and instructor interest. Computer simulations and readings in the technical literature.
3 credits. Pre- or co-requisites: ECE 300 and ECE 310

ECE411 Selected Topics in Signal Processing

Advanced topics in signal processing selected according to student and instructor interest.
3 credits. Prerequisites: ECE 310

ECE412 Speech & Audio Processing

Selected topics in digital speech and audio processing. Speech analysis, synthesis and recognition. Acoustics and acoustic modeling. Auditory perception. Audio feature extraction including complex cepstrum and LPC coefficients. Hidden Markov models and other speech recognition approaches. Speech and audio coding such as MP3 and CELP. Text to speech. Music synthesis, analysis and retrieval.
3 credits. Prerequisites: MA224 and ECE 211. Co-requisite or prerequisite: ECE302.

ECE413 [Formerly ECE313] Music and Engineering

Spectral representation and analysis of music. Analog and digital music signals, instruments and synthesizers, analog circuits and digital processing. Description of musical quality and perception, introduction to acoustics, stereo and special effects. Computer interfacing with MIDI and laboratory experiments.
3 credits. Prerequisites: ECE 211 and ECE 150

ECE414 Machine Learning

Machine learning of structural relationships among variables from empirical data. Decision theory, Bayesian methods. Classification: naive Bayes, linear discriminant analysis, support vector machines (SVM), boosting. Regression: least-squares, regularization methods, logistic regression. Clustering using k-means and EM algorithms. Model selection: bias-variance tradeoff, cross-validation, over-fitting. Feature selection and dimensionality reduction methods including PCA, ICA, MDS. Kernel methods. Other topics may be covered as time permits.
3 credits. Prerequisites: MA223, MA224; either ECE211, ChE352 or ME251

ECE415 Wavelets & Multiresolution Imaging (same as MA415)

Wavelets and multiresolution signal processing with an emphasis on 2D and 3D cases. STFT, wavelet analysis, wavelet packets, DWT. Multirate filter banks, PR and paraunitary conditions, multidimensional filters, multidimensional sampling lattices. Bases, frames and sparse representations. Image and video applications such as: compression, noise reduction, tomography and other inverse problems, hyperspectral imaging, compressive sensing. Course work includes MATLAB projects and readings in the technical literature.
3 credits. Prerequisites: ECE310 and MA326 or permission of instructor.

ECE416 Adaptive Filters

Statistical signal processing theory: discrete-time Wiener and Kalman filters, linear prediction, steepest descent and stochastic gradient.  LMS, normalized LMS, LS, RLS, QR-RLS, order-recursive algorithms.  Applications include equalization, noise cancellation, system identification, sensor array processing.  Numerical linear algebra: eigenanalysis, SVD, matrix factorizations.  Transversal filters, lattice filters, systolic arrays.  Performance: convergence, learning curves, misadjustment, tracking in nonstationary environments.  Additional topics such as adaptive IIR filters, neural networks and quantization effects may be covered as time allows.  Extensive use of MATLAB.
3 credits.  Prerequisite: ECE211

ECE417 DSP Processor Design

Design of programmable and custom digital signal processors, and realization of DSP algorithms in specialized architectures.  Processors to be considered include FPGA, GPU, multicore, and ASIC.  Systematic mapping of DSP algorithms to parallelized and pipelined architectures, fixed-point arithmetic and quantization, systolic arrays, lattice filters.  Testing and verification.  Development tools and special languages (e.g. HDL, Verilog).
3 credits.  Prerequisites: ECE 251 and ECE 310.

ECE418 Digital Video

Digital video coding, compression, processing and communications.  Target applications from low bit-rate, low quality to high bit-rate, high quality.  Two and three-dimensional sampling, colour spaces, motion representation.  Motion estimation: optical flow, block matching; constrained optimization: Bayesian methods, simulated annealing, Gibbs random fields.  Mathematical basis for compression standards such as JPEG and MPEG, and digital television including HDTV.  Rate-distortion based compression for optimal bit allocation via dynamic programming (Viterbi algorithm).  Scalability in multimedia systems.
3 credits.  Prerequisite: ECE310. 

ECE419 Digital Image Processing

Methods for image representation, analysis, enhancement and compression.  Color spaces, geometric projections and transformations.  Multidimensional signals and systems: Fourier analysis, sampling, filtering, random fields.  Transforms (e.g., DCT and wavelet).  Information theory: entropy, KL-distance, rate-distortion, applications.  Multiresolution schemes (e.g., pyramidal coding).  Compressive sensing.  Morphological and nonlinear methods.  Edges, boundaries and segmentation.  Applications of PDEs (e.g., anisotropic diffusion).  Special applications such as: medical imagin (e.g., MRI), hyperspectral imaging, security and authentication (e.g., watermarking).  Technical readings and projects in MATLAB (or other suitable language).
3 credits.  Prerequisite: ECE310, MA224.

ECE421 Advanced Control System Design

Design of control systems using two-degrees of freedom and PID compensators.  Ackermann’s formula, H-infinity control theory and applications.  Analysis and design for nonlinear systems using describing function, state variables, Lyapunov’s stability criterion and Popov’s method.  Introduction to optimal control theory (dynamic programming).  Design problems and extensive use of MATLAB.
3 credits.  Prerequisites: ECE310 and ECE320

ECE425 Digital Control Systems

Basic components of digitally controlled dynamic systems. Sampling and reconstruction: the ideal sampler, zero and higher order hold elements. The pulse transfer function and the z- transfer function description of dynamic systems. Stability criterion and analysis by the Nyquist, root locus and Bode methods. The modified Routh-Hurwitz and Jury stability criteria. The state-variable approach: state equations of dynamic systems with sample and hold devices, state equations of systems with all-digital elements. Digital simulation and approximation. Controllability, observability and stability. State and output feedback, state observers and the separation principle. Digital control system design by state feedback.
3 credits. Prerequisite: ECE320

ECE431 Microwave Engineering

Passive circuits, open-boundary waveguides, perturbation theory, coupled modes, waveguide junctions, microstrip. Two- and three-terminal devices; varactor diodes, Gunn diodes; IMPATT and MESFET technology. Design of RF amplifiers and phase- shifters. Computer-aided simulation and design.
3 credits. Prerequisite: ECE 335

ECE433 Optical Communications Devices and Systems

PIN, avalanche and Schottky photodiodes; risetime, noise, amplifier requirements. Semiconductor optical devices: radiative and non-radiative recombination, quaternary semiconductors, heterojunctions, quantum wells, bandwidth minimization, lasers, distributed feedback, vertical cavity structures. Internal and external modulation, electro-optic modulators, Stark effect. Optical fibers: mode structure, attenuation, dispersion, PM fibers, WDM. System architecture, analog/digital communications, terabit data links. Solitons.
3 credits. Prerequisite: ECE342. Pre- or co-requisite: ECE335.

ECE434 Bioelectricity

Electrical behavior of cellular membranes. Ion transport, electrochemical equilibrium, applications of circuit and cable theory, Hodgkin-Huxley model, resting and action potentials. Generation and propagation of signals within the nervous system and the heart. Case studies and consideration of topics of current research interest, such as: developmental biology, regenerative medicine, neural prostheses, tissue engineering.
3 credits. Prerequisites: ECE 241 or ESC 220, PH 213

ECE441 Digital Integrated Circuit Engineering

Design of static and dynamic CMOS combinational logic gates, layout and simulation. Standard cell construction. Sequential logic systems—registers, latches, clocks. Design of arithmetic building blocks, ALU, multipliers. Memory circuits and organization. FPGAs. System design—hardware description languages, floorplanning, system architecture. A major component of the course is the design and fabrication of an ASIC using a variety of VLSI CAD tools.
3 credits. Prerequisite: ECE 345.

ECE442 Communication Electronics

Circuit design for advanced communications applications. Design of high-frequency amplifiers, oscillators and mixers using large signal analysis. Effects of noise and non-linearities are examined from the diode and transistor level to board level. Communication subsystems of interest include phase locked loops, modulators and demodulators (AM, PM FM), and signal processors for multiple access systems (TDMA, FDMA, CDMA). Course work includes computer-aided simulation and design projects.
3 credits. Prerequisites: ECE342, ECE300. Pre- or co-requisite: ECE335.

ECE443 Thin Film Electronics

Properties of polycrystalline, amorphous, liquid and organic semiconductors. Methods of deposition: vacuum and nonvacuum techniques, epitaxial and nonepitaxial growth. Assessment of thin film semiconductors: structural, optical, electrical. Thin film semiconductor devices: transistors, displays, photovoltaics, flexible conductors. Optical coatings and architectural applications. Thin film superconductors: metallic, allow and high Tc, fabrication and assessment. Superconducting devices: Cooper pairs, Josephson junctions, SQUIDS, Josephson computers.
3 credits. Prerequisites: ECE 342

ECE444 [Formerly ECE343] Bio-instrumentation and Sensing

The basic human vital signs and some related elementary physiology viewed from an engineering standpoint with special emphasis placed upon current electronic measurement methods. Electrocardiographic and electromyographic signals. Safety problems related to electrical isolation. Guarded, fully isolated, modulated carrier operational amplifiers and microvolt-level amplification. Solid-state “grain of wheat” pressure sensors, microelectrodes, thermal probes, ultrasonic transducers and other biosignal sensors. Course work includes instrumentation and sensing projects.
3 credits. Prerequisites: ECE 211 and ECE 342

ECE445 Design with Operational Amplifiers

Analysis and design of operational amplifier circuits with various applications, including amplifiers, filters, comparators, signal generators, D/A and A/D converters and phase- locked loops. Introduction to issues such as static and dynamic limitations, noise and stability. Use of industry standard CAD software.
3 credits. Prerequisite: ECE 342

ECE446 Low-Voltage, Low-Power Electronic Circuit Design

The physics and modeling of submicron MOS transistors for analog and digital circuit design. Circuit techniques for the design of low-power, low-voltage digital combinatorial logic, multipliers, memory and system design. Circuit techniques for the low-power, low-voltage analog circuits including the design of low-voltage constant g_m differential amplifiers. The use of switched capacitor circuits for analog signal processing. The course will culminate with the design and simulation of a low-voltage low-power mixed signal circuit.
3 credits. Prerequisites: ECE 342, ECE 345 or permission of instructor

ECE447 Digital VLSI System Design

This course focuses on the top-down, automated digital system design flow using CMOS logic: RTL design/simulation, timing/power driven circuit synthesis, automated place-and-route, and post-layout simulation with emphasis on test/manufacturability in deep sub-micron technologies. The course culminates with the tape-out of a large design project covering functional specification to sign-off layout.
3 credits. Prerequisites: ECE 251, ECE342.

ECE453 Advanced Computer Architecture

This course studies modern, advanced techniques used to design and produce current, state-of-the-art computer architectures. Technology, performance and price. The quantitative principle and Amdahl’s law. Instruction sets; addressing modes, operands and opcodes; encoding instruction sets. RISC versus CISC architectures; MIPS. Pipelining; the classic five-stage pipeline, hazards, exceptions, floating point operations. Advanced pipelining techniques: dynamic scheduling, branch prediction. Multiple issue, speculation. Limits of parallelism. Compiler support for parallelism, VLIW. Caches. Examination of modern processors.
3 credits. Prerequisite: ECE251

ECE455 Cybersecurity

This course covers both attacker and defender perspectives of applied information security. Topics will include networked and embedded applications, access control systems and their failure modes, privilege escalation, intrusion detection, privacy and data breaches and applied cryptography. Each topic will be approached through analysis and discussion of historical cybersecurity incidents and possible mitigations. Safe coding practices and OS flaw mitigation will be explored through case studies and reinforced through security sensitive programming projects. Coursework will include penetration testing, code auditing, and independent projects.

3 credits. Prerequisites: ECE303, ECE357

ECE460 Selected topics in Computer Engineering

Advanced topics in computer hardware or software engineering selected according to student and instructor interest. Prerequisites will depend on the topics to be covered.
3 credits. Prerequisite: permission of instructor

ECE462 Interactive Engineering Graphics

Graphical primitives, windows, clipping and viewports. Two- and three- dimensional geometric transformations and translations; rotation, pan and zoom. Hidden line and surface removal. Region filling and shading. The architecture of high performance graphical engines. Representing lighting, shading and textures. Rendering. Rotation. GUIs. Animation. Course work includes design projects.
3 credits. Prerequisites: ECE264

ECE464 Databases

Engineering and design of databases. Topics to be covered may include: data models, database and scheme design; schema normalization and integrity constraints; query processing and optimization; distributed and parallel databases; SQL and XML.
3 credits. Prerequisite: ECE264

ECE465 Cloud Computing

Critical, foundational technolgy components that enable cloud computing, and the engineering advancements that have led to today’s ecosystem. Student design, build and test representational software units that implement different distributed computing components. Multi-threaded programming in Java. Functional programming (MapReduce). Hadoop: a programmer’s perspective; building and configuring clusters; Flume as an input engine to collect data; Mahout as a machine learning system to perform categorization, classification and recommendation; Zookeeper for systems coordination.
3 credits. Prerequisites: ECE251, ECE264.

ECE466 Compilers

The theory, design and implementation of a practical compiler. Finite automata, LL and LR parsing, attribute grammars, syntax-directed translation, symbol tables and scopes, type systems and representations, abstract syntax trees, intermediate representation, basic blocks, data and control flow optimizations, assembly language generation including register and instruction selection. Students apply tools such as Flex and
Bison to writing a functional compiler for a subset of a real programming language such as C.
3 credits. Prerequisites: ECE264

ECE467 Natural Language Processing

This course focuses on computational applications involving the processing of written or spoken human languages. Content may vary from year to year. Theoretical subtopics will likely include word statistics, formal and natural language grammars, computational linguistics, hidden Markov models, and various machine learning methods. Applications covered will likely include information retrieval, information extraction, text categorization, question answering, summarization, machine translation and speech recognition. Course work includes programming projects and tests.
3 credits. Prerequisite: ECE264

ECE468 Computer Vision

Visual perception and imaging geometry. Pixels, pixel neighborhoods and pixel connectivity. Image transforms: Fourier, Hadamard, Walsh, Discrete Cosine, Haar, Slant and others. Techniques for image manipulation and enhancement in both the frequency and spatial domains. Histogram equalization, image subtraction and local averaging. Filtering, homomorphic methods. Color models and use of monochrome techniques on RGB channels. Image restoration: camera movement cancellation, scratch removal. Image compression techniques, lossy and lossless. Image segmentation, edge detection, edge linking, boundary detection; region growing, splitting and merging. Image representation as a hierarchical collection of objects, chain codes, Fourier descriptors. Object recognition, signatures.
3 credits. Prerequisites: ECE211 and ECE160/161

ECE469 Artificial Intelligence

This course covers many subtopics of AI, focusing on a few important subtopics in detail. The “intelligent agent” approach is explained and forms a foundation for the rest of the course. Intelligent search: uninformed search, depth-first search, breadth-first search, iterative deepening; informed search, best-first search, A*, heuristics, hill climbing; constraint satisfaction problems; intelligent game playing, minimax search, alpha-beta
pruning. Machine learning: probability, Bayesian learning; decision trees; statistical machine learning, neural networks, Naive Bayes, k-nearest neighbors, support vector machines. Natural language processing: syntax, semantics and pragmatics; real-world knowledge; parsing; statistical NLP. Philosophy of AI: AI and consciousness, the Turing test, the Chinese room experiment. Coursework includes two large individual programming projects.
3 credits. Prerequisite: ECE264

ECE471 Selected Topics in Machine Learning

Advanced topics in machine learning, selected according to student and instructor interest.
3 credits. Prerequisite: permission of instructor.

ECE474 Bayesian Machine Learning

Machine learning from a primarily Bayesian perspective. Conjugate priors.  Bayesian linear regression, model evidence, linear classification using generative models, logistic regression and the Laplace approximation.  Kernel methods and Gaussian process regression. Mixture models, expectation maximization, hidden Markov models, sampling methods and Markov chain Monte Carlo.

3 credits. Prerequisites: MA223, MA224; either ECE211, ChE352 or ME251.

ECE475 Frequentist Machine Learning

Machine learning from a primarily Bayesian perspective. Conjugate priors.  Bayesian linear regression, model evidence, linear classification using generative models, logistic regression and the Laplace approximation.  Kernel methods and Gaussian process regression. Mixture models, expectation maximization, hidden Markov models, sampling methods and Markov chain Monte Carlo.

3 credits. Prerequisites: MA223, MA224; either ECE211, ChE352 or ME251.

ECE478 Financial Signal Processing

This course approaches financial engineering from a signal processing perspective. Stochastic processes: random walks, Brownian motion, Ito calculus, continuous models including Black-Scholes, discrete models including negative binomial, martingales, stopping times. Representation and analysis of financial concepts such as price, risk, volatility, futures, options, arbitrage, derivatives, portfolios and trading strategies. Analysis of single and multiple nonstationary time series, GARCH models. Optimization methods, big data and machine learning in finance.

3 credits. Prerequisites: ECE211, Ma224

ECE499 Thesis/Project

Master’s candidates are required to conduct, under the guidance of a faculty adviser, an original individual investigation of a problem in electrical and computer engineering and to submit a written thesis describing the results of the work.
6 credits over 1 year