Electrical & Computer Engineering
View courses in
ENG EC 591: Photonics Lab I
Introduction to optical measurements. Laser safety issues. Laboratory experiments: introduction to lasers and optical alignment; interference; diffraction and Fourier optics; polarization components; fiber optics; optical communications; beam optics; longitudinal laser modes. Optical simulation software tools.
ENG EC 601: Product Design in ECE
Undergraduate Prerequisites: Graduate Standing or permission of instructor.
Engineers influence their community, society and the world. Engineers build products and services that can enhance people's lives. The product starts with an idea and is delivered through research (technical and societal), design, implementation, testing and support. During this class, students will experience all of this. The course provides design and practical insights into building products that involve WEB and mobile app development, data simulation, analysis and modeling, cloud computing, signal processing and/or computer vision. In the class, we work on how to take an idea and concept and translate it into product requirements. Afterwards, we translate the product requirements into system and engineering requirements. We also discuss solution selection techniques. We then work on implementing our ideas into systems and verify that they address the product requirements and fulfill the concept we started with. During the class, we go over how to choose solutions to build our products. We also discuss real product realization, implementations and tradeoffs. The class is taught via an example product and the class sessions are interactive. Students are divided into groups where they work in parallel on their projects during class sessions and hackathons. Teams define their target audience, product mission, requirements and features. The class adopts agile software development based on a two-week sprint. Students present their sprint results to the class.
ENG EC 602: Design by Software
Undergraduate Prerequisites: Graduate standing or permission of instructor.
Software plays a central role in all aspects of electrical and computer engineering. This course will provide the foundation for effectively using software as a key part of a career as a professional electrical or computer engineer. Fundamentals of software development systems: system languages, high-level object-oriented languages, and computational languages. Data structures and algorithms in problem analysis and design. Strategies for designing software and designing with software. Software design and development: methodologies, principles and practice. Formalizing software: management, requirements, specifications, testing. Survey of software applications in ECE, including real-time systems, the web, networked systems, audio, graphics, and video systems, research and engineering analysis, consumer electronics and computing, instrumentation and measurement, design, modeling, prototyping, simulation, optimization and information analysis. Students can choose projects and assignments with application to/inspired by/drawn from a broad array of ECE fields including the traditional areas of electro-physics/photonics, computer engineering, and information and data science.
ENG EC 605: Computer Engineering Fundamentals
This is an introductory course to computer engineering, focusing on the hardware/software interface, and presenting a bottom-up view of a computer system. Topics include logic design: binary arithmetic, combinational and sequential logic. Computer organization: assembly language programming, CPU design, and memory systems. Introduction to compilers, operating systems, and computer networks.
ENG EC 700: Advanced Topics in Electrical and Computer Engineering
Undergraduate Prerequisites: Graduate standing or consent of instructor.
Advanced topics of current interest in electrical and computer engineering.
ENG EC 701: Optimal and Robust Control
Undergraduate Prerequisites: ENG EC 501 or ENG ME 501 or ENG SE 501.
This course is aimed at an introduction (with rigorous treatment) to the fundamentals of optimal and robust control. It will be divided roughly into two parts. The first will cover aspects of robust control including model reduction, H_2 and H_ infinity control, and feedback control of uncertain systems. The second will delve into optimal control including topics such as the linear quadratic regulator, the calculus of variations, the maximum principle, and the Hamilton-Jacobi-Bellman equation. Meets with ENG ME701 and ENG SE 701; only one of these courses may be taken both for credit.
ENG EC 702: Recursive Estimation and Optimal Filtering
Undergraduate Prerequisites: ENG EC 505.
State-space theory of dynamic estimation in discrete and continuous time. Linear state-space models driven by white noise, Kalman filtering and its properties, optimal smoothing, non-linear filtering, extended and second-order Kalman filters, and sequential detection. Applications to radar, sonar, and optimal multitarget tracking, parameter identification.
ENG EC 707: Radar Remote Sensing
Undergraduate Prerequisites: Experience in electromagnetic waves, analog and discrete signal processing, or consent of the instructor.
Principles of radar systems and radar signal analysis with emphasis on environmental remote sensing. Topics include antenna fundamentals, wave propagation/scattering in various media, the radar equation, radar cross-section, target characteristics, ambiguity function, radar system components, pulse compression techniques, and aperture synthesis. Highlighted systems include ground-penetrating radars, synthetic aperture radar (SAR), weather radars, and incoherent scatter radars, and LIDAR.
ENG EC 710: Dynamic Programming and Stochastic Control
Undergraduate Prerequisites: ENG EC 381 or ENG EK 500; and ENG EC402 or ENG EC501.
Introduction to sequential decision making via dynamic programming. The principle of optimality as a unified approach to optimal control of dynamic systems and Markovian decision problems. Applications from control theory and operation research include linear-quadratic problems, the discrete Kalman Filter, inventory control, network, investment, and resource allocation models. Adaptive control and numerical solutions through successive approximation and policy iteration, suboptimal control, and neural network applications involving functional approximations and learning. Meets with ENGME710 and ENGSE710. Students may not receive credit for both.
ENG EC 712: Advanced Software for Computer Engineers
Undergraduate Prerequisites: Computer networking fundamentals, C, C++, or Java programming experience.
Explores the design of software using state-of-the-art technologies; emphasis on distributed systems, Web-based applications, and the use of the latest application frameworks; project-oriented course.
ENG EC 713: Parallel Computer Architecture
Undergraduate Prerequisites: ENG EC 513.
Problems in parallel processing, how they are addressed by current parallel computers, and design of future systems. Topics include characteristics of parallel applications; parallel system support; cache coherency protocols; network interfaces; switch and interconnection network design; scalable systems; and hardware-software tradeoffs. Examples of both small-scale and large-scale parallel systems, including web servers, clusters of networked PCs, MPPs, and vector supercomputers.
ENG EC 715: Wireless Communications
Undergraduate Prerequisites: ENG EC 515.
Design and analysis of robust wireless communication systems. Radio-channel modeling: propagation, path loss, multipath, and fading. Cellular system design. Coding, diversity, and equalization. Multi-antenna channels, Multicarrier modulations, Spread-spectrum and CDMA techniques. Multiuser scheduling. Case studies. Multiple-access, mobility, and networking issues.
ENG EC 716: Advanced Digital Signal Processing
Undergraduate Prerequisites: ENG EC 516.
Selected topics from time-frequency distributions, parametric signal modeling, high-resolution spectral estimation, multi-rate signal processing, multidimensional signal processing, adaptive signal processing, alternative algorithms for DFT computation, symbolic and knowledge based signal processing. Application examples chosen from speech, image, communication, and biomedical applications.
ENG EC 717: Image Reconstruction and Restoration
Undergraduate Prerequisites: ENG EC 416 and ENG EC 505.
Principles and methods of reconstructing images and estimating multidimensional fields from indirect and noisy data; general deterministic (variational) and stochastic (Bayesian) techniques of regularizing ill-posed inverse problems; relationship of problem structure (data and models) to computational efficiency; impact of typically large image processing problems on viability of solution methods; problems in imaging and computational vision including tomography and surface reconstruction. Computer assignments.
ENG EC 719: Statistical Pattern Recognition
Undergraduate Prerequisites: ENG EC 381 or ENG EK 500.
The statistical theory of pattern recognition, including both parametric and nonparametric approaches to classification. Covers classification with likelihood functions and general discriminant function, density estimation, supervised and unsupervised learning, decision trees, feature reduction, performance estimation, and classification using sequential and contextual information, including Markov and hidden Markov models. A project involving computer implementation of a pattern recognition algorithm is required.
ENG EC 720: Digital Video Processing
Undergraduate Prerequisites: ENG EC 416 or ENG EC 505 or ENG EC 520; or equivalent
Review of sampling/filtering in multiple dimensions, human visual system, fundamentals of information theory. Motion analysis: detection, estimation, segmentation, tracking. Image sequence segmentation. Spectral analysis of image sequences. Video enhancement: noise reduction, super-resolution. Video compression: transformation, quantization, entropy coding, error resilience. Video compression standards (H.26X and MPEG families). Future trends in image sequence compression and analysis. Homework and project will require MATLAB programming.
ENG EC 724: Advanced Optimization Theory and Methods
Undergraduate Prerequisites: ENG EC 524; consent of instructor
Introduces advanced optimization techniques. Emphasis on nonlinear optimization and recent developments in the field. Topics include: unconstrained optimization methods such as gradient, conjugate direction, Newton and quasi-Newton methods; constrained optimization methods such as gradient projection, feasible directions, barrier and interior point methods; duality theory and methods; convex duality; and introduction to other advanced topics such as semi-definite programming, incremental gradient methods and stochastic approximation algorithms. Applications drawn from control, production and capacity planning, resource allocation, communication and neural network problems. Meets with ENGME724 and ENGSE724. Students may not receive credit for both.
ENG EC 725: Queueing Systems
Undergraduate Prerequisites: ENG EK 500 or ENG EC 505; consent of instructor
Performance modeling using queueing networks analysis of product form and nonproduct form networks, numerical methods for performance evaluation, approximate models of queueing systems, optimal design and control of queueing networks. Applications from manufacturing systems, computer systems, and communication networks. Meets with ENGME725 and ENGSE725. Students may not receive credit for both.
ENG EC 727: Advanced Coding Theory
Undergraduate Prerequisites: ENG EC 561; or equivalent
Advanced topics in the theory of error-correcting codes, with an emphasis on decoding algorithms. Various codes and corresponding decoding algorithms: cyclic (BCH, Reed-Solomon), Reed-Muller, Golay, algebraic-geometry (Goppa, Hermitian), and iteratively-decoded codes (turbo and LDPC), graph-based decoding; trellis construction and decoding (Viterbi algorithm), belief propagation (sum-product, min-sum). Various applications: cryptography, data synchronization, and tiling.
ENG EC 730: Information-Theoretical Design of Algorithms
Recently developed information-theoretical approach to the analysis and design of computer algorithms. Previous knowledge of information theory or the theory of algorithms is not required, though desirable. Main topics include the complexity of algorithms; P, E, NP, and NP?hard problems; basic concepts of information theory, optimal coding; information-theoretical approach to sorting, order statistics, binary search, decision trees, hashing, minimization of Boolean functions, test, and similar problems; and design of efficient computer algorithms.