Electrical Engineering (EENG)

EENG 200a, Introduction to ElectronicsStaff

Introduction to the basic principles of analog and digital electronics. Analysis, design, and synthesis of electronic circuits and systems. Topics include current and voltage laws that govern electronic circuit behavior, node and loop methods for solving circuit problems, DC and AC circuit elements, frequency response, nonlinear circuits, semiconductor devices, and small-signal amplifiers. A lab session approximately every other week. After or concurrently with MATH 115 or equivalent.  QR, WR, SC0 Course cr
HTBA

EENG 201b, Introduction to Computer EngineeringPriya Panda

Introduction to the theoretical principles underlying the design and programming of simple processors that can perform algorithmic computational tasks. Topics include data representation in digital form, combinational logic design and Boolean algebra, sequential logic design and finite state machines, and basic computer architecture principles. Hands-on laboratory involving the active design, construction, and programming of a simple processor.  QR
TTh 11:35am-12:50pm

EENG 202a, Introduction to Communications and ControlAnna Gilbert

Introduction to systems that sense, process, control, and communicate. Topics include information theory and coding (compression, channel coding); network systems (network architecture, routing, wireless networks); signals and systems (linear systems, Fourier techniques, bandlimited sampling); estimation and learning (hypothesis testing, regression, classification); and end-to-end application examples (security, communication systems). MATLAB programming assignments illustrate concepts. Students should have basic familiarity with counting (combinatorics), probability and statistics (independence between events, conditional probability, expectation of random variables, uniform distribution). Prerequisite: MATH 115. AP Stats preferred.  QR
MW 9am-10:15am

EENG 203b, Circuits and Systems DesignHong Tang

Introduction to design in a laboratory setting. A wide variety of practical systems are designed and implemented to exemplify the basic principles of systems theory. Systems include audio filters and equalizers, electrical and electromechanical feedback systems, radio transmitters and receivers, and circuits for sampling and reconstructing music. Prerequisites: EENG 200QR, SCRP
TTh 1:30pm-2:20pm

* EENG 235a, Special ProjectsRajit Manohar and Fengnian Xia

Faculty-supervised individual or small-group projects with emphasis on laboratory experience, engineering design, or tutorial study. Students are expected to consult the director of undergraduate studies and appropriate faculty members about ideas and suggestions for suitable topics during the term preceding enrollment. These courses may be taken at any time during the student's career. Enrollment requires permission of both the instructor and the director of undergraduate studies, and submission to the latter of a one- to two-page prospectus signed by the instructor. The prospectus is due in the departmental office one day prior to the date that the student's course schedule is due.  ½ Course cr
HTBA

EENG 310b, Signals and SystemsBoris Landa

Signal and system theory, having its roots at a great extent on classical and modern harmonic analysis, has played an instrumental role in the development of several transformative technologies during the 20th and 21st centuries. Two such examples are communication systems (analog, digital, wired, wireless), and compressive sensing and sparse approximations. This core course provides a comprehensive first exposition to signal and system theory, and mainly covers the following content: definitions/classifications/dodeling of signals and systems in continuous and discrete-time; linear system theory (impulse response, frequency response, linear difference/differential equations); convolutions (continuous and discrete); Fourier series; Fourier transform (continuous and discrete-time); Laplace transform and Z-transform. Prior knowledge of advanced calculus of one variable and some elementary real analysis will be very useful (something like MATH 115), although it is not required strictly.  QR
TTh 2:30pm-3:45pm

EENG 320a / APHY 320a, Semiconductor DevicesHong Tang

An introduction to the physics of semiconductors and semiconductor devices. Topics include crystal structure; energy bands in solids; charge carriers with their statistics and dynamics; junctions, p-n diodes, and LEDs; bipolar and field-effect transistors; and device fabrication. Additional lab one afternoon per week. Prepares for EENG 325 and 401. Recommended preparation: EENG 200. PHYS 180 and 181 or permission of instructor  QR, SC
TTh 1pm-2:15pm

EENG 325a, Microelectronic CircuitsFengnian Xia

Models for active devices; single-ended and differential amplifiers; current sources and active loads; operational amplifiers; feedback; design of analog circuits for particular functions and specifications, in actual applications wherever possible, using design-oriented methods. Includes a team-oriented design project for real-world applications, such as a high-power stereo amplifier design. Electronics Workbench is used as a tool in computer-aided design. Additional lab one afternoon per week. Prerequisite: EENG 200.  QR
TTh 11:35am-12:50pm

EENG 348b / CPSC 338b, Digital SystemsStaff

Development of engineering skills through the design and analysis of digital logic components and circuits. Introduction to gate-level circuit design, beginning with single gates and building up to complex systems. Hands-on experience with circuit design using computer-aided design tools and microcontroller programming. Recommended preparation: EENG 201.  QR
MW 11:35am-12:50pm

EENG 400a, Electronic MaterialsMengxia Liu

Survey and review of fundamental material issues pertinent to modern microelectronic and optoelectronic technology.  Topics include band theory, electronic transport, surface kinetics, diffusion, defects in crystals, thin film elasticity, crystal growth, and heteroepitaxy.  Formerly EENG 408. Prerequisite: EENG 320 or permission of instructor.  QR, SC
TTh 1pm-2:15pm

EENG 402b / APHY 418b, Advanced Electron DevicesMengxia Liu

The science and technology of semiconductor electron devices. Topics include compound semiconductor material properties and growth techniques; heterojunction, quantum well and superlattice devices; quantum transport; graphene and other 2D material systems. Formerly EENG 418. Prerequisite: EENG 320 or equivalent.  QR, SC
TTh 11:35am-12:50pm

EENG 406b, Photovoltaic EnergyFengnian Xia

Survey of photovoltaic energy devices, systems, and applications, including review of optical and electrical properties of semiconductors. Topics include solar radiation, solar cell design, performance analysis, solar cell materials, device processing, photovoltaic systems, and economic analysis. Prerequisite: EENG 320 or permission of instructor.  QR, SC
MW 1pm-2:15pm

EENG 420b / CPSC 420b, Computer ArchitectureAbhishek Bhattacharjee

This course offers a treatment of computer architectures for high-performance and power/energy-efficient computer systems. Topics include the foundations of general-purpose computing, including instruction set architectures, pipelines, superscalar and out-of-order execution, speculation, support for precise exceptions, and simultaneous multi-threading. We also cover domain-specific hardware (e.g., graphics processing units), and ongoing industry efforts to elevate them to the status of first-class computing units. In tandem, we cover topics relevant to both general-purpose and domain-specific computing, including memory hierarchies, address translation and virtual memory, on-chip networks, machine learning techniques for resource management, and coherence techniques. If time permits, we will study the basics of emerging non-classical computing paradigms like neuromorphic computing. Overall, this course offers insights on how the computing industry is combating the waning of traditional technology scaling via acceleration and heterogeneity. Prerequisites: CPSC 323, 223, and 202. This is a programming-intensive course, so comfort with large programming projects is essential.
HTBA

* EENG 424b, Computer Hardware SecurityJakub Szefer

Computer hardware security is one of the most important and challenging areas in computer engineering. Securing computers is essential to safeguarding personal information, intellectual property, and the national infrastructure at large. While technology is constantly changing, the fundamental problems of securing computers remain the same. With each new technology, similar problems of information leakage and different types of covert- and side- channel attacks emerge. This course provides an in-depth examination of computers and their hardware-based security issues. The operation of the hardware, from transistors to processor microarchtiectures, has intimate impact on the security of the whole system. Often, software or algorithms executing on a computer have no control over, or detailed access to, the underlying hardware. Yet, the operation of the hardware and different types of side-effects, such as changing timing, changing power consumption, EM emanations, or different types of crosstalk effects lead to information leakage. To understand the hardware-based security issues, and how to prevent them, the course focuses on classical microporcessors, accelerators such as Field Programmable Gate Arrays, as well as emerging technologies such as Quantum Computers. For the different types of computers, the course teaches students about the various hardware security issues, and students are able to experiment and perform hands-on exercises to demonstrate different types of information leaks. Students also learn about latest research through reading and presenting research papers in-class. Prerequisite: EENG 348 or CPSC 323 or with instructor's approval.  QR
TTh 11:35am-12:50pm

EENG 426a / CPSC 448a / ENAS 876a, Silicon CompilationRajit Manohar

An upper-level course on compiling computations into digital circuits using asynchronous design techniques. Emphasis is placed on the synthesis of circuits that are robust to uncertainties in gate and wire delays by the process of program transformations. Topics include circuits as concurrent programs, delay-insensitive design techniques, synthesis of circuits from programs, timing analysis and performance optimization, pipelining, and case studies of complex asynchronous designs. Prerequisite: EENG 201 and introductory programming, or permission of instructor.
MW 11:35am-12:50pm

EENG 428a, Cloud Computing with FPGAsJakub Szefer

This course is an intermediate to advanced level course focusing on digital design and use of Field Programmable Gate Arrays (FPGAs). The course centers around the new cloud computing paradigm of using FPGAs that are hosted remotely by cloud providers and accessed remotely by users. The theoretical aspects of the course focus on digital system modeling and design using the Verilog Hardware Description Language (Verilog HDL). In the course, students learn about logic synthesis, behavioral modeling, module hierarchies, combinatorial and sequential primitives, and implementing and testing the designs in simulation and real FPGAs. Students learn about topics ranging from higg-level ideas about cloud computing to low-level details of interfacing servers to FPGAs, PCIe protocol, AXI protocol, and other common communication protocols between hardware modules or between the FPGAs and the host computer, including Serial, SPI, and I2C. Students also learn about and use FPGA tools from Xilinx, but course also touches on tools available from Intel (formerly Altera) as well as open-source tools. The practical aspects of the course include semester-long projects leveraging commercial or in-lab remote FPGAs, based on the project selected by students. Prerequisites: EENG 201 and 348 or permission of the instructor. Students should be familiar with digital design basics and have some experience with Hardware Description Languages such as Verilog or VHDL.  QR
TTh 11:35am-12:50pm

EENG 431a, Foundations of Data ScienceAmin Karbasi

Recent advances in data science have enabled us to make tremendous progress in various fields including robotis, machine learning, computer vision, medicine, etc. This course provides an easy, yet rigorous, introduction to the mathematical and algorithmic foundations of data science. We cover key ideas that have led to such progress from statistics to optimization. The course is organized around three themes: What is learning? What algorithms we can use to learn? How can we optimize resources for efficient learning? Prerequisites: MATH 120, MATH 222, CPSC 365, and STAT 241.  SC
MW 1pm-2:15pm

* EENG 432a / AMTH 342a, Linear SystemsA Stephen Morse

Introduction to finite-dimensional, continuous, and discrete-time linear dynamical systems. Exploration of the basic properties and mathematical structure of the linear systems used for modeling dynamical processes in robotics, signal and image processing, economics, statistics, environmental and biomedical engineering, and control theory. Prerequisite: MATH 222 or permission of instructor.  QR
MW 1pm-2:15pm

EENG 434b / MATH 251b / S&DS 351b, Stochastic ProcessesIlias Zadik

Introduction to the study of random processes including linear prediction and Kalman filtering, Poison counting process and renewal processes, Markov chains, branching processes, birth-death processes, Markov random fields, martingales, and random walks. Applications chosen from communications, networking, image reconstruction, Bayesian statistics, finance, probabilistic analysis of algorithms, and genetics and evolution. Prerequisite: S&DS 241 or equivalent.  QR
MW 1pm-2:15pm

* EENG 435b / AMTH 362b / CPSC 362b, Decisions and Computations across NetworksA Stephen Morse

For a long time there has been interest in distributed computation and decision making problems of all types. Among these are consensus and flocking problems, the multi-agent rendezvous problem, distributed averaging, gossiping, localization of sensors in a multi-sensor network, distributed algorithms for solving linear equations, distributed management of multi-agent formations, opinion dynamics, and distributed state estimation. The aim of this course is to explain what these problems are and to discuss their solutions. Related concepts from spectral graph theory, rigid graph theory, non-homogeneous Markov chain theory, stability theory, and linear system theory are covered. Although most of the mathematics need is covered in the lectures, students taking this course should have a working understanding of basic linear algebra. The course is open to all students.  Prerequisite: Linear algebra or instructor permission.  SC
MW 2:30pm-3:45pm

EENG 439a, Neural Networks and Learning SystemsPriya Panda

Neural networks (NNs) have become all-pervasive giving us self-driving cars, Siri Voice assistants, Alexa, and much more. While deep NNs deliver state-of-the-art accuracy on many artificial intelligence tasks, it comes at the cost of high computational complexity. Accordingly, designing efficient hardware architectures for deep neural networks is an important step towards enabling the wide deployment of NNs, particularly in low-power computing platforms, such as, mobiles, embedded Internet of Things (IoT) and drones. This course aims to provide a thorough overview on deep learning techniques, while highlighting the key trends and advances toward efficient processing of deep learning in hardware systems, considering algorithm-hardware co-design techniques.  Prerequisites: MATH 222 or CPSC 202, EENG 201, and knowledge of Python programming.
MW 11:35am-12:50pm

EENG 442b / MENG 405b, Introduction to Embedded Robotic SystemsAhalya Prabhakar

This project-based course gives students an introduction to concepts useful for a robotics engineer working with practical embedded systems, as well as experience with a variety of sensors and software tools needed for working with robots. Students are provided an overview of the different components of robotic systems, including planning, estimation, and control. Topics such as kinematics, dynamics (for robotics), frame transforms, twists, and wrenches will be introduced in the course. In addition, students learn how to use the Robot Operating System (ROS 2) to connect concepts and components relevant to robotic systems. Furthermore, they learn how to write software and simulations to interface sensors and actuators, and to integrate different components in a system, including planning, estimation, and control. By the end of the course, students complete a project using a real robot. Experience with mechatronics (MENG 390) and a basic understanding in dynamics is required. Coding experience required, specifically have a basic understanding of Python and C++.
HTBA

EENG 450a, Applied Digital Signal ProcessingRoman Kuc

An analysis, by computer, of processing requirements. Relevant probability and estimation theories applied to measurements corrupted by noise. Point estimates and system identification from random processes. MATLAB simulations verify the analysis. Prerequisite: EENG 310 or permission of instructor.  QR
TTh 1pm-2:15pm

* EENG 452a, Internet EngineeringLeandros Tassiulas

Introduction to basic Internet protocols and architectures. Topics include packet-switch and multi-access networks, routing, flow control, congestion control, Internet protocols (IP, TCP, BGP), the client-server model, IP addressing and the domain name system, wireless access networks, and mobile communications. Prerequisite: a college-level course in mathematics, engineering, or computer science, or with permission of instructor.  QR
TTh 2:30pm-3:45pm

EENG 454b / AMTH 364b / S&DS 364b, Information TheoryStaff

Foundations of information theory in communications, statistical inference, statistical mechanics, probability, and algorithmic complexity. Quantities of information and their properties: entropy, conditional entropy, divergence, redundancy, mutual information, channel capacity. Basic theorems of data compression, data summarization, and channel coding. Applications in statistics and finance. After STAT 241.  QR
TTh 11:35am-12:50pm

* EENG 455b, Network Algorithms and Stochastic OptimizationLeandros Tassiulas

This course focuses on resource allocation models as well as associated algorithms and design and optimization methodologies that capture the intricacies of complex networking systems in communications computing as well as transportation, manufacturing, and energy systems. Max-weight scheduling, back-pressure routing, wireless opportunistic scheduling, time-varying topology network control, and energy-efficient management are sample topics to be considered, in addition to Lyapunov stability and optimization, stochastic ordering, and notions of fairness in network resource consumption.  QR
MW 11:35am-12:50pm

* EENG 468a, Advanced Special ProjectsRajit Manohar and Fengnian Xia

Faculty-supervised individual or small-group projects with emphasis on research (laboratory or theory), engineering design, or tutorial study. Students are expected to consult the director of undergraduate studies and appropriate faculty members about ideas and suggestions for suitable topics during the term preceding enrollment. This course may only be taken once and at any appropriate time during the student's career; it does not fulfill the senior requirement. Enrollment requires permission of both the instructor and the DUS, and submission to the latter of a one- to two-page prospectus approved by the instructor. The prospectus is due to the DUS one day prior to the date that the student's course schedule is due.
HTBA

* EENG 471a, Senior Advanced Special ProjectsRajit Manohar and Fengnian Xia

Faculty-supervised individual or small-group projects with emphasis on research (laboratory or theory), engineering design, or tutorial study. Students are expected to consult the director of undergraduate studies and appropriate faculty members about ideas and suggestions for suitable topics during the term preceding enrollment. This course is only open to seniors and is one of the courses that fulfills the senior requirement. Enrollment requires permission of both the instructor and the DUS, and submission to the latter of a one- to two-page prospectus approved by the instructor. The prospectus is due to the DUS one day prior to the date that the student's course schedule is due.
HTBA

EENG 475a / BENG 475a / CPSC 475a, Computational Vision and Biological PerceptionSteven Zucker

An overview of computational vision with a biological emphasis. Suitable as an introduction to biological perception for computer science and engineering students, as well as an introduction to computational vision for mathematics, psychology, and physiology students. Prerequisite: CPSC 112 and MATH 120, or with permission of instructor.  QR, SCRP
MW 2:30pm-3:45pm

* EENG 481b, Advanced ABET ProjectsRoman Kuc

Study of the process of designing an electrical device that meets performance specifications, including project initiation and management, part specification, teamwork, design evolution according to real-world constraints, testing, ethics, and communication skills. Design project consists of electronic sensor, computer hardware, and signal analysis components developed by multidisciplinary teams. Prerequisites: EENG 310, 320, 325, and 348.  RP
HTBA