Electrical & Computer Engineering
View courses in
ENG EC 523: Deep Learning
Undergraduate Prerequisites: A strong mathematical background in calculus, linear algebra, and probability & statistics, as well as prior coursework in machine learningand programming experience in Python.
Mathematical and machine learning background for deep learning. Feed-forward networks., Backpropagation. Training strategies for deep networks. Convolutional networks. Recurrent neural networks. Deep reinforcement learning. Deep unsupervised learning. Exposure to Pytorch and other modern programming tools. Other recent topics, time permitting. Same as CAS CS 523. Students may not receive credit for both.
ENG EC 524: Optimization Theory and Methods
Undergraduate Prerequisites: ENG EK 103 or CAS MA 142.
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: ENG EC 414 ; ENG EK 381 ; ENG EK 103.
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: ENG EC 327 and ENG EC 330; Undergrads must have taken EC327 or equivalent and preferably anothersoftware course, EC330 or EC440, before taking this course.
Graduate Prerequisites: ENG EC 504; Graduate students must have taken a rigorous programming class recently, such as EC504 or equivalent (or have major software design experience 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: ENG EC 602; 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 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: ENG EK 381 or ENG EK 500.
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: ENG EC 327; basic knowledge of assembly languages, computer organization and logic circuits, basic knowledge of data structure and algorithms, programming skills in C/C++.
Graduate Prerequisites: ENG EC 605; or equivalent; basic knowledge of assembly languages, computer organization and logic circuits, basic knowledge of data structure and algorithms, 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: ENG EC 441 and ENG EK 381.
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: ENG EC 327; 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: ENG EC 311 ; ENG EC 327 ; ENG EC 330; 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: ENG EC 311 ; ENG EC 413 ; ENG EC 327.
Graduate Prerequisites: ENG EC 605; or instructor consent
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: ENG EK 125 and ENG EC 327.
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: ENG BE 403 or ENG EC 401; 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: CAS PY 212; EK 125 or equivalent Matlab; PY 212 or equivalent knowledge of light and 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: CAS PY 313.
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 561: Error-Control Codes
Undergraduate Prerequisites: CAS MA 193.
Introduction to codes for error detection and correction in communication and computation channels, linear algebra over finite fields, bounds, Shannon?s Theorem, perfect and quasi-perfect codes, probability of error detection, Hamming, BCH, MDS, Reed-Solomon, and non-linear codes. Application of codes to error detection/correction in communication channels, computer memories, processors, and multiprocessor systems. Data compression and data reconciliation by error-detecting or error-correcting codes.