Electrical & Computer Engineering

  • ENG EC 601: Product Design in Electrical and Computer Engineering
    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. Open to graduate students only.
  • ENG EC 605: Computer Engineering Fundamentals
    Undergraduate Prerequisites: Graduate standing or permission of the instructor.
    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. Open to graduate students only.
  • ENG EC 674: Optimization Theory 2
    This course is an introduction to optimization problems and algorithms emphasizing problem formulation, basic methodologies and the underlying mathematical structures. We will cover the classical theory as well as the state of the art. The major topics we will cover are: 1. Theory and algorithms for linear programming. 2. Introduction to combinatorial problems and methods for handling intractable problems. 3. Introduction to nonlinear programming. 4. Introduction to network optimization. Optimization techniques have many applications in science and engineering. To name a few: * Optimal routing in communication networks. * Transmission scheduling and resource allocation in sensor networks. * Production planning and scheduling in manufacturing systems. * Fleet management. * Air traffic flow management by airlines. * Optimal resource allocation in manufacturing and communication systems. * Optimal portfolio selection. * Analysis and optimization of fluxes in metabolic networks. * Protein docking. Prerequisites: Working knowledge of Linear Algebra and some degree of mathematical maturity. Same as ENG EC 674, ENG SE 524, ENG EC 674. Students may not receive credits for both.
    • Teamwork/Collaboration
  • 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. Same as ENG ME 701 and ENG SE 701. Students may not receive credits for both.
  • 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 703: No longer offered
    No longer offered
  • 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 708: Advanced Process Control
    Undergraduate Prerequisites: ENG EC 402 or ENG EC 501 or ENG ME 507; or equivalent with permission of instructor.
    Graduate Prerequisites: .
    Integrated study of process control and modern control theory. Includes process modeling and simulation, analysis of linear and non-linear dynamics, evaluation and selection of actuators and measurements, control structure design for single and multiple variable systems, and control algorithm design. Examples drawn from a variety of process control applications.
  • ENG EC 710: Dynamic Programming and Stochastic Control
    Undergraduate Prerequisites: ENG EK 500; ENGEK381 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. Same as ENG ME 710 and ENG SE 710. Students may not receive credits for both.
  • ENG EC 713: Advanced Computer Systems & Architecture
    Undergraduate Prerequisites: ENG EC 513 or ENG EC 535 or ENG EC 527.
    This class is designed to enable students to follow the latest developments in computer systems and architecture. The lectures cover a broad array of recent subjects, such as memory management in multi-core systems, hardware multi- threading, heterogenous systems, modern operating systems, large-scale system architectures, virtualization, data center management, energy awareness in computing systems, system reliability, and emerging areas, such as quantum computing, and neuromorphic computing. The concepts are reinforced with research paper readings and hands-on assignments that involve computer system design and analysis.
  • 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 516 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 Learning Theory
    Undergraduate Prerequisites: ENG EC 414 or ENG EC 503.
    Undergraduate Corequisites: ENG EC 505.
    Classical and contemporary theories of machine learning. Topics/emphasis may change based on instructor preference in different years. A project involving computer implementation of a learning or inference algorithm accompanied by or in support of theoretical analysis is required
  • ENG EC 720: Digital Video Processing
    Undergraduate Prerequisites: ENG EC 516 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. Same as ENG ME 724 and ENG SE 724. Students may not receive credits 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. Same as ENG ME 725 and ENG SE 725. Students may not receive credits for both.
  • 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.
  • ENG EC 732: Combinatorial Optimization and Graph Algorithms
    Undergraduate Prerequisites: ENG ME 411 or CAS CS 330; or equivalent course on optimization or algorithms.
    of algorithms for the solution of optimization problems with discrete decision spaces. Review of linear programming and duality. Discussion of advanced network optimization algorithms and matroid optimization. Approximate algorithms for NP-Hard optimization problems. Submodular optimization. Same as ENG SE 732. Students may not receive credits for both.