Electrical & Computer Engineering

  • ENG EC 524: Optimization Theory and Methods
    Undergraduate Prerequisites: (ENGEK103 OR CASMA142) - Introduction to optimization problems and algorithms emphasizing problem formulation, basic methodologies, and underlying mathematical structures. Classical optimization theory as well as recent advances in the field. Topics include modeling issues and formulations, simplex method, duality theory, sensitivity analysis, large-scale optimization, integer programming, interior-point methods, non-linear programming optimality conditions, gradient methods, and conjugate direction methods. Applications are considered; case studies included. Extensive paradigms from production planning and scheduling in manufacturing systems. Other illustrative applications include fleet management, air traffic flow management, optimal routing in communication networks, and optimal portfolio selection. Same as ENG EC 674, ENG SE 524, ENG SE 674. Students may not receive credit for both.
  • ENG EC 525: Optimization for Machine Learning
    Undergraduate Prerequisites: (ENGEC414 & ENGEK381 & ENGEK103) - Efficient algorithms to train large models on large datasets have been critical to the recent successes in machine learning and deep learning. This course will introduce students to both the theoretical principles behind such algorithms as well as practical implementation considerations. topics include convergence properties of first-order optimization technologies such as stochastic gradient descent, with particular focus on optimization problems with non-convex losses typically present in modern deep learning problems. After completing this course, students should be able to read, and understand optimization algorithms from literature as well as design and implement new optimization algorithms.
  • ENG EC 526: Parallel Programming for High Performance Computing
    The explosive advance in High Performance Computing (HPC) and advances in Big Data/Machine Learning and Cloud Computing now provides a fundamental tool in all scientific, engineering, and industrial advances. Software is massively parallel so parallel algorithms and distributed data structures are required. Examples will be drawn from FFTs, Dense and Sparse Linear Algebra, Structured and unstructured grids. Techniques will be drawn from real applications to simple physical systems using Multigrid Solvers, Molecular Dynamics, Monte Carlo Sampling and Finite Elements with a final student project and team presentation to explore one example in more detail. Coding exercises will be in C++ in the UNIX environment with parallelization using MPI message passing, OpenMP threads and QUDA for GPUs. Rapid prototypes and graphics may use scripting in Python or Mathematica.
  • ENG EC 527: High Performance Programming with Multicore and GPUs
    Considers theory and practice of hardware-aware programming. Key theme is obtaining a significant fraction of potential performance through knowledge of the underlying computing platform and how the platform interacts with programs. Studies architecture of, and programming methods for, contemporary high-performance processors. These include complex processor cores, multicore processors, and graphics processors. Laboratory component includes use and evaluation of programming methods on these processors through applications such as matrix operations and the Fast Fourier Transform.
  • ENG EC 528: Cloud Computing
    Undergraduate Prerequisites: (ENGEC327 & ENGEC330) Undergrads must have taken EC327 or equivalent and preferably another software course, EC330 or EC440, before taking this course. - Graduate Prerequisites: (ENGEC504) Graduate students must have taken a rigorous programming class recentl y, such as EC504 or equivalent (or have major software design experien ce in industry). - Fundamentals of cloud computing covering IaaS platforms, OpenStack, key Big Data platforms, and data center scale systems. Examines influential publications in cloud computing. Culminates in a group project supervised by a mentor from industry or academia. Same as CAS CS 528. Students may not receive credits for both.
  • ENG EC 530: Software Engineering Principles
    Undergraduate Prerequisites: (ENGEC602) ENG EC 602 or equivalent - This class was designed to bring the basic concepts of software engineering together and practice them in real life examples. We will focus on studying different concepts that the students have taken in different classes or were not exposed to that are necessary for their careers. Examples include continuous build and integration, Modular Design, API Design, Rest APIs, Application frameworks, Containers, and Multi-. The class follows a flipped classroom model. Outside of the classroom, the students: study concepts, read assigned papers and tutorials; work on homeworks, which is equivalent to what other classes consider projects.
  • ENG EC 531: Full-Stack Software at Scale
    Prerequisites ENGEC 327 or ENGEC 602: - Scaling software to many developers, modules, or machines requires a fundamentally different skill-set than writing short prototype code. Large groups of software engineers developing web or mobile applications, financial or healthcare systems, and even multiplayer games must synthesize a wide variety of elements at all layers of the software stack. This course addresses fundamental skills and experience needed for such software development within a modern multi-developer software development infrastructure. Through a variety of intensive programming projects in various languages and group sizes, students will learn about four core elements of software development at scale: design (writing future-oriented code for modularity, extensibility, interoperability), distribution (managing code across multiple processors), optimization (understanding the long-term effects of design and distribution on performance), and security (how all the previous elements influence the security and privacy of the overall system).
  • ENG EC 533: Advanced Discrete Mathematics
    Undergraduate Prerequisites: ENGEK103, CAS MA 142 or equivalent - Selected topics in discrete mathematics. Formal systems. Mathematical deduction. Logical concepts. Theorem proving. Sets, relations on sets, operations on sets. Functions, graphs, mathematical structures, morphisms, algebraic structures, semigroups, quotient groups, finite-state machines, their homomorphism, and simulation. Machines as recognizers, regular sets. Kleene theorem.
  • ENG EC 534: Discrete Stochastic Models
    Undergraduate Prerequisites: (ENGEK381 OR ENGEK500) - Markov chains, Chapman-Kolmogorov equation. Classification of states, limiting probabilities, Poisson process and its generalization, continuous-time Markov chains, queuing theory, reliability theory.
  • ENG EC 535: Introduction to Embedded Systems
    Undergraduate Prerequisites: (ENGEC327) basic knowledge of assembly languages, computer organization and logic circuits, basic knowledge of data structure and algorithms, programmi ng skills in C/C++. - Graduate Prerequisites: (ENGEC605) or equivalent; basic knowledge of assembly languages, computer organiz ation and logic circuits, basic knowledge of data structure and algori thms, programming skills in C/C++. - This course introduces students to a unified view of hardware and software in embedded systems. The lectures will survey a comprehensive array of techniques including system specification languages, embedded computer architecture, real-time operating systems, hardware-software codesign, and co-verification techniques. The lectures will be complemented by assignments and projects that involve system design, analysis, optimization, and verification.
  • ENG EC 541: Computer Communication Networks
    Undergraduate Prerequisites: (ENGEC441 & ENGEK381) - Basic delay and blocking models for computer communications: M/M/1 queue; Jackson networks and loss networks; analysis of MAC protocols; flow control for data traffic; TCP and active queueing mechanisms for congestion control; traffic shaping and network calculus; packet switch architectures and scheduling algorithms; routing algorithms; flow assignment and fairness.
  • ENG EC 543: Sustainable Power Systems: Planning, Operation and Markets
    Undergraduate Prerequisites: Senior standing or consent of instructor. - Breakthroughs in clean energy generation technologies and the advantage of exploiting efficiently the available work in fossil fuels will render electricity the dominant energy form in a sustainable environment future. We review the key characteristics of Electric Power Transmission and Distribution (T&D) networks and the associated planning and operation requirements that ensure supply adequacy, system security and stability. Capital asset investment and operation cost minimization is discussed in a systems engineering context where the assets as well as the dynamic behavior of generators, T&D networks, and loads interact. Recent developments in the formation of competitive wholesale markets at the High Voltage Transmission system level, the associated market participation and clearing rules and the market clearing optimization algorithms are presented and analyzed in terms of their effectiveness in fostering cost reflective price signals and competitive conditions that encourage optimal distributed/not-centralized investment and operating decisions. Finally, we present T&D congestion and supply-demand imbalance related barriers to the widespread adoption of environmentally friendly and economically efficient technological breakthroughs, and propose a systems engineering and real-time retail-market based coordination of centralized as well as decentralized generation, storage and load management resources that is able to achieve desirable synergies and mitigate these barriers. Same as ENG ME 543 and ENG SE 543. Students may not receive credits for both.
  • ENG EC 544: Networking the Physical World
    Undergraduate Prerequisites: (ENGEC327) ENG EC 441 recommended, C programming experience required. - Considers the evolution of embedded network sensing systems with the introduction of wireless network connectivity. Key themes are computing optimized for resource constrained (cost, energy, memory and storage space) applications and sensing interfaces to connect to the physical world. Studies current technology for networked embedded network sensors including protocol standards. A laboratory component of the course introduces students to the unique characteristics of distributed sensor motes including programming, reliable communication, sensing modalities, calibration, and application development. Same as ENG ME 544 and ENG SE 544. Students may not receive credits for both.
  • ENG EC 545: Cyber-Physical Systems
    Undergraduate Prerequisites: (ENGEC311 & ENGEC327 & ENGEC330) Or equivalent knowledge of Boolean algebra and finite state machines. Experience with programming embedded systems (eg EC535) is recommended but not required. - This course introduces students to the principles underlying the design and analysis of cyber-physical systems - computational systems that interact with the physical world. We will study a wide range of applications of such systems ranging from robotics, through medical devices, to smart manufacturing plants. A strong emphasis will be put on building high-assurance systems with real-time and concurrent behaviors. The student will gain both in-depth knowledge and hands-on experience on the specification, modeling, design, and analysis of representative cyber-physical systems. Meets with ENG SE 545. Students may not receive credits for both.
  • ENG EC 551: Advanced Digital Design with Verilog and FPGA
    Undergraduate Prerequisites: (ENGEC311 & ENGEC413 & ENGEC327) - Content includes use of HDL (Verilog) for design, synthesis and simulation, and principles of register transfer level (RTL). Programmable logic, such as field programmable gate array (FPGA) devices, has become a major component of digital design. In this class the students learn how to write HDL models that can be automatically synthesized into integrated circuits such as FPGA. Laboratory and homework exercises include writing HDL models of combinational and sequential circuits, synthesizing models, performing simulation, and fitting to an FPGA by using automatic place and route. The course has lab orientation and is based on a sequence of Verilog design examples.
  • ENG EC 552: Computational Synthetic Biology for Engineers
    Undergraduate Prerequisites: (ENGEK125 & ENGEC327) - This course presents the field of computational synthetic biology through the lens of four distinct activities: Specification, Design, Assembly, and Test. Engineering students of all backgrounds are introduced provided an introduction to synthetic biology and then exposed to core challenges and approaches in each of the four areas. Homework assignments are provided which allow the students to use existing computational software to explore each of these themes. In addition, advanced concepts are presented around data management, design algorithms, standardization, and simulation challenges in the field. The course culminates in a group project in which the students apply computational design methods to an experimentally created system working with graduate students in the Biological Design Center and the DAMP Lab. Same as ENG BE 552. Students may not receive credit for both.
  • ENG EC 555: Introduction to Biomedical Optics
    Undergraduate Prerequisites: (ENGBE403 OR ENGEC401) Requires senior status. - This course surveys the applications of optical science and engineering to a variety of biomedical problems, with emphasis on optical and photonics technologies that enable real, minimally-invasive clinical and laboratory applications. The course teaches only those aspects of the biology itself that are necessary to understand the purpose of the applications. The first weeks introduce the optical properties of tissue, and following lectures cover a range of topics in three general areas: 1) Optical spectroscopy applied to diagnosis of cancer and other tissue pathologies; 2) Photon migration and diffuse optical imaging of subsurface structures in tissue; and 3) new tissue imaging methods, laser-tissue interactions and other applications of light for biomedical research. The format of this course is "semi-flipped." There are assigned readings from the required textbook, prior to each class. Half of class time will invoke informal lecture and discussion, to amplify and clarify the readings; and half of the class time will be in the style of a "flipped" class, devoted to working, in small groups, on problems and discussing and understanding the connection to the readings. Dual listed as ENG EC 555. Students may not receive credit for both.
  • ENG EC 556: Optical Spectroscopic Imaging
    Graduate Prerequisites: (CASPY212) EK 125 or equivalent Matlab; PY 212 or equivalent knowledge of light a nd waves. Suggested: EC 562, EC 555 - This introductory graduate-level course aims to teach students how electromagnetic waves and various forms of molecular spectroscopy can be used to study a complex biological system by pushing the physical limits on engineering system design.The course will cover fundamental concepts of optical spectroscopy and microscopy, followed by specific topics covering fluorescence-based , absorption-based, and scattering-based spectroscopic imaging. In addition, this course will provide in-depth discussions of linear and nonlinear spectroscopic imaging in the aspects of theory, instrumentation, image data analysis and enabling applications. Students will learn how to give a concise and informative presentation of a recent literature to the class. Students will be able to challenge their creativity in designing advanced imaging instrument of data analysis methods as part of their course assignments. The students will learn how to write and present a convincing proposal for the required final project to be designed by interdisciplinary teams formed among the students. Same as ENG BE 556. Students may not receive credit for both.
  • ENG EC 560: Introduction to Photonics
    Undergraduate Prerequisites: (CASPY313) - Introduction to ray optics; matrix optics; wave optics; Fourier optics; electromagnetic optics including absorption and dispersion. Polarization, reflection and refraction, anisotropic media, liquid crystals, and polarization devices. Guided-wave and fiber optics. Nanophotonics.
  • ENG EC 562: Fourier Optics in Engineering
    Undergraduate Prerequisites: (CASMA225 & ENGEK103 & CASPY313 & CASPY314 & ENGEK381 & ENGEC401) Proficiency in Matlab programming is expected as well as a background knowledge in electromagnetics. Undergraduate students must talk to the instructor before registering. - The goal of this course is to present a coherent formulation of wave propagation, radiation and diffraction phenomena in arbitrary linear systems for the engineering design of optical devices in strong partnership with computer simulations and engineering-led design projects. The course will introduce students to the fundamental techniques that are necessary for the quantitative analysis of optics- based engineering systems and devices.