faculty and graduate student at poster presentation

ECE Graduate Course Offerings

In our master's and PhD programs


  • Below is a list of ECE courses approved for offering by the department. Please note that not all courses are offered each semester
  • Students may also take courses from other engineering departments within the Duke University Pratt School of Engineering, and courses within other Duke graduate programs with the permission of the adviser and the Director of Graduate Studies


ECE 511. Foundations of Nanoscale Science and Technology. This course is the introductory course for the Graduate Certificate Program in Nanoscience (GPNANO) and is designed to introduce students to the interdisciplinary aspects of nanoscience by integrating important components of the broad research field together. This integrated approach will cross the traditional disciplines of biology, chemistry, electrical & computer engineering, computer science, and physics. Fundamental properties of materials at the nanoscale, synthesis of nanoparticles, characterization tools, and self-assembly. Prerequisites: Physics 152L and Chem 101DL or instructor approval. C-L: NANO 511; pending in COMPSCI, CHEM, and PHYS. Instructor: Frankin (ECE & Chemistry) or J. Liu (Chemistry). 3 units. C-L: Nanosciences 511.

ECE 512. Emerging Nanoelectronic Devices. Brief review of semiconductor devices physics followed by coverage of the most prominent emerging nanoelectronic devices. Topics include: nanoelectronic logic devices (advanced silicon transistors, carbon nanotube transistors, spintronics, 2D FETs, NEMS, tunnel FETs, negative capacitance FETs and piezoelectronics) and nanoelectronic memory devices (phase change, spin transfer torque, nanomechanical, ferroelectric FET, and molecular memory). Students will understand basic operation, pros/cons of performance, and primary integration challenges. Students conduct case study project, culminating with class presentation. Prerequisite: ECE 230L or graduate student standing. Instructor: Franklin.

ECE 520. GRAD INTRO QUANTUM ENGINEERING. Quantum mechanics was discovered at the beginning of the 20th century and has had a profound effect on the development of modern technology. This course is about the potential for quantum technologies in the 21st century. The focus of the course this semester will be a survey of quantum computation, a field that promises to revolutionize the way we compute by using the dynamics of quantum mechanics. Topics include quantum circuits, introduction to quantum algorithms, hardware, and architectures. Not open to students who have taken ECE 420. Prerequisites: [ECE 270DL and ECE 280L and one of (Math 216 or Math 218 or Math 221)] OR graduate student standing.

ECE 521. Quantum Mechanics. Discussion of wave mechanics including elementary applications, free particle dynamics, Schrödinger equation including treatment of systems with exact solutions, and approximate methods for time-dependent quantum mechanical systems with emphasis on quantum phenomena underlying solid-state electronics and physics. Prerequisite: Mathematics 216 or equivalent. Instructor: Brady, Brown, or Stiff-Roberts. One course.

ECE 522. Introduction to Micro-Electromechanical Systems (MEMS). Design, simulation, fabrication, and characterization of micro-electromechanical systems (MEMS) devices. Integration of non-conventional devices into functional systems. Principles of fabrication, mechanics in micrometer scale, transducers and actuators, and issues in system design and integration. Topics presented in the context of example systems. Lab covers design, simulation, and realization of MEMS devices using commercially available foundry process. Prerequisite: ECE 230L or ME 344L or equivalent. Instructors: Kim. One course.   

ECE 523. Quantum Information Science. Fundamental concepts and progress in quantum information science. Quantum circuits, quantum universality theorem, quantum algorithms, quantum operations and quantum error correction codes, fault-tolerant architectures, security in quantum communications, quantum key distribution, physical systems for realizing quantum logic, quantum repeaters and long-distance quantum communication. Prerequisites: ECE 521 or Physics 464 or equivalent. Instructor: Kim. One course. C-L: Physics 627

ECE 524. Introduction to Solid-State Physics. Discussion of solid-state phenomena including crystalline structures, X-ray and particle diffraction in crystals, lattice dynamics, free electron theory of metals, energy bands, and superconductivity, with emphasis on understanding electrical and optical properties of solids. Prerequisite: quantum physics at the level of Physics 264 or Electrical and Computer Engineering 521. Instructor: Staff. One course.  

ECE 525. Semiconductor Physics. A quantitative treatment of the physical processes that underlie semiconductor device operation. Topics include band theory and conduction phenomena; equilibrium and nonequilibrium charge carrier distributions; charge generation, injection, and recombination; drift and diffusion processes. Prerequisite: Electrical and Computer Engineering 521 or consent of instructor. Instructor: Staff. One course.

ECE 526. Semiconductor Devices for Integrated Circuits. Basic semiconductor properties (energy-band structure, effective density of states, effective masses, carrier statistics, and carrier concentrations). Electron and hole behavior in semiconductors (generation, recombination, drift, diffusion, tunneling, and basic semiconductor equations). Current-voltage, capacitance-voltage, and static and dynamic models of PN Junctions, Schottky barriers, Metal/Semiconductor Contacts, Bipolar-Junction Transistors, MOS Capacitors, MOS-Gated Diodes, and MOS Field-Effect Transistors. SPICE models and model parameters. Prerequisites: ECE 330. Instructor: Massoud. One course.  

ECE 527. Analog Integrated Circuits. Analysis and design of bipolar and CMOS analog integrated circuits. SPICE device models and circuit macromodels. Classical operational amplifier structures, current feedback amplifiers, and building blocks for analog signal processing, including operational transconductance amplifiers and current conveyors. Biasing issues, gain and bandwidth, compensation, and noise. Influence of technology and device structure on circuit performance. Extensive use of industry-standard CAD tools, such as Analog Workbench. Prerequisite: Electrical Engineering 526. Instructor: Richards. One course.  

ECE 528. Integrated Circuit Engineering. Basic processing techniques and layout technology for integrated circuits. Photolithography, diffusion, oxidation, ion implantation, and metallization. Design, fabrication, and testing of integrated circuits. Prerequisite: Electrical and Computer Engineering 330 or 331L. Instructor: Fair. One course.

ECE 529. Digital Integrated Circuits. Analysis and design of digital integrated circuits. IC technology. Switching characteristics and power consumption in MOS devices, bipolar devices, and interconnects. Analysis of digital circuits implemented in NMOS, CMOS, TTL, ECL, and BiCMOS. Propagation delay modeling. Analysis of logic (inverters, gates) and memory (SRAM, DRAM) circuits. Influence of technology and device structure on performance and reliability of digital ICs. SPICE modeling. Prerequisites: Electrical and Computer Engineering 331L or graduate student standing. Instructor: Massoud. One course.  

ECE 531. Power Electronic Circuits for Energy Conversion. Efficient conversion of electrical energy is critical for electric and hybrid vehicles, wind and solar energy, power grids, computers, medical devices, and portables. This course teaches analysis and design of power electronic circuits for energy conversion, including circuit operation (converter topologies, steady-state modeling, switch realization), converter control (AC modeling, small-signal transfer functions, feedback), and magnetics (inductors, transformers). The course shares lectures with ECE/Energy Engineering 431, but has extended assignments. Prerequisite: ECE 230L or Engineering 224L or graduate student standing. Not open to students who have taken ECE 431 or Energy Engineering 431. Instructor: Peterchev.

ECE 532. Analog Integrated Circuit Design. Design and layout of CMOS analog integrated circuits. A qualitative review of the theory of pn junctions, bipolar and MOS devices, and large and small-signal models. Emphasis on MOS technology. Continuous-time operational amplifiers. Frequency response, stability and compensation. Complex analog subsystems including phase-locked loops, A/D and D/A converters, switched capacitor simulation, layout, extraction, verification, and MATLAB modeling. Projects make extensive use of full custom VLSI CAD software. Prerequisite: ECE 330L or 331L; ECE 230L, ECE 250D, ECE 270DL, and ECE 280L; Math 353; Physics 152L; Chemistry 101DL; and statistics; or graduate student standing. Instructor: Morizio

ECE 533. Biochip Engineering. A problem-solving course in which students consider technology options for a complete lab-on-a-chip design. Lectures cover the basics of analog flow microfluidic devices, digital microfluidic devices, fabrication technologies for discrete devices, system integration issues, and a significant emphasis on biological applications for analysis, sample preparation, and detection issues. Technologies covered will include microfluidic devices, electrophoresis, analytical methods used in genetics, sample preparation methods, and analyte detection. Prerequisites: Biology 201L, Chem 101DL, and Physics 152L (or equivalents). Instructor: Fair. 3 units. 

ECE 534. CAD For Mixed-Signal Circuits. The course focuses on various aspects of design automation for mixed-signal circuits. Circuit simulation methods including graph-based circuit representation, automated derivation and solving of nodal equations, and DC analysis, test automation approaches including test equipments, test generation, fault simulation, and built-in-self-test, and automated circuit synthesis including architecture generation, circuit synthesis, tack generation, placement and routing are the major topics. The course will have one major project, 4-6 homework assignments, one midterm, and one final. Prerequisites: ECE 331L. Permission of instructor required. Instructor: Ozev. One course.

ECE 536. Synthesis and Verification of VLSI Systems. Algorithms and CAD tools for VLSI synthesis and design verification, logic synthesis, multi-level logic optimization, high-level synthesis, logic simulation, timing analysis, formal verification. Prerequisite: Electrical and Computer Engineering 250L or equivalent. Instructor: Chakrabarty. One course.

ECE 537. Radiofrequency (RF) Transceiver Design. Design of wireless radiofrequency transceivers. Analog and digital modulation, digital modulation schemes, system-level design for receiver and transmitter path, wireless communication standards and determining system parameters for standard compliance, fundamentals of synthesizer design, and circuit level design of low-noise amplifiers and mixers. Prerequisites: Electrical and Computer Engineering 280L and Electrical and Computer Engineering 331L or equivalent. Instructor: Ozev. One course.  

ECE 538. VLSI System Testing. Fault modeling, fault simulation, test generation algorithms, testability measures, design for testability, scan design, built-in self-test, system-on-a-chip testing, memory testing. Prerequisite: Electrical and Computer Engineering 350L or equivalent. Instructor: Chakrabarty. One course.  

ECE 539. CMOS VLSI Design Methodologies. Emphasis on full-custom digital ASIC design using CMOS technology. Extensive use of CAD tools for IC design, simulation, and layout verification. Includes techniques for designing high-speed, low-power, easily-testable circuits. Semester design project: Student groups design and simulate simple custom IC using Mentor Graphics CAD tools. Formal project proposal, written project report, and formal project presentation required. Prerequisites: ECE 350L, ECE 331L, ECE 230L, ECE 250D, ECE 270DL, ECE280L, Math 353, Physics 152L, Chemistry 101DL, and previous statistics coursework; or graduate students with instructor consent. Instructor: Chakrabarty. One course. 

ECE 541. Advanced Optics. 3 units. C-L: see Physics 621; also C-L: Biomedical Engineering 552. 

ECE 542. HOLOGRAPHY & COHERENT IMAGING. Coherent imaging techniques generate images based on measurements of the amplitude/phase of the electromagnetic field rather than the time averaged energy flow (irradiance). In some frequency ranges, there exist technologies that allow for direct measurement of amplitude and phase, however, at higher frequencies only irradiance sensitive detectors exist. Here, coherent imaging requires the use of techniques like holography and interferometry that encode information about the amplitude/phase into the irradiance. This course examines coherent imaging in both these regimes and develops an understanding of the associated performance limits. Prerequisite: ECE 270DL or graduate student standing.

ECE 543. STATISTICAL OPTICS. Theoretical treatment of the statistical nature of optical fields via concepts such as second-order spatial and temporal coherence. Especially focuses on the theory of partial coherence and its applications including imaging with partially coherent light, laser speckle, and propagation through turbid/random media. Prerequisite: ECE 270DL or graduate student standing.

ECE 545. Nanophotonics. Theory and applications of nanophotonics and sub-wavelength optics. Photonic crystals, near-field optics, surface-plasmon optics, microcavities, and nanoscale light emitters. Prerequisite: Electrical and Computer Engineering 270DL or equivalent. Instructor: Staff. One course.  

ECE 546. Optoelectronic Devices. Devices for conversion of electrons to photons and photons to electrons. Optical processes in semiconductors: absorption, spontaneous emission and stimulated emission. Light-emitting diodes (LEDs), semiconductor lasers, quantum-well emitters, photodetectors, modulators and optical fiber networks. Prerequisite: Electrical and Computer Engineering 526 or equivalent. Instructor: Stiff-Roberts. One course.

ECE 549. Optics and Photonics Seminar Series. Weekly seminar on the current research topics in the field of optics and photonics. Instructor: Staff. 1 unit. C-L: Biomedical Engineering 609, Physics 549. 

ECE 550D. Fundamentals of Computer Systems and Engineering. Fundamentals of computer systems and engineering for Master's students whose undergraduate background did not cover this material. Topics covered include: Digital logic, assembly programming, computer architecture, memory hierarchies and technologies, IO, hardware implementation in VHDL, operating systems, and networking. Undergraduates may not take this course, and should take ECE 250D, ECE 353, and/or ECE 356 instead. Instructor: Hilton. 3 units. Co-requisite: ECE 551D.

ECE 551D. Programming, Data Structures, and Algorithms in C++. Students learn to program in C and C++ with coverage of data structures (linked lists, binary trees, hash tables, graphs), Abstract Data Types (Stacks, Queues, Maps, Sets), and algorithms (sorting, graph search, minimal spanning tree). Efficiency of these structures and algorithms is compared via Big-O analysis. Brief coverage of concurrent (multi-threaded) programming. Emphasis is placed on defensive coding, and use of standard UNIX development tools in preparation for students' entry into real-world software development jobs. Not open to undergraduates. Instructor: Hilton. 3 units. 

ECE 552. Advanced Computer Architecture I. Fundamental aspects of advanced computer architecture design and analysis. Topics include processor design, pipelining, superscalar, out-of-order execution, caches (memory hierarchies), virtual memory, storage systems, simulation techniques, technology trends and future challenges. Prerequisite: Computer Science 250 or Electrical and Computer Engineering 350L or equivalent. Instructors: Lebeck, Lee, or Sorin. 3 units. C-L: see Computer Science 550; also C-L: Modeling Biological Systems.   

ECE 553. Compiler Construction. Covers the fundamentals of compiler design. Students will develop a working compiler, writing all stages required to take source code as input and produce working assembly as output: lexical analysis, parsing, type checking, translation to intermediate representation, instruction selection, liveness analysis, and register allocation. Students are expected to have a strong programming background prior to taking this course, as writing a compiler is a significant programming task. Prerequisites: Electrical and Computer Engineering 250D or Computer Science 250D or (ECE 550D and ECE 551D). Instructor: Hilton. 3 units. C-L: Computer Science 553 

ECE 554. Fault-Tolerant and Testable Computer Systems. Technological reasons for faults, fault models, information redundancy, spatial redundancy, backward and forward error recovery, fault-tolerant hardware and software, modeling and analysis, testing, and design for test. Prerequisite: Electrical and Computer Engineering 250D or equivalent. Instructor: Sorin. One course. C-L: Computer Science 554  

ECE 555. Probability for Electrical and Computer Engineers. Basic concepts and techniques used stochastic modeling of systems with applications to performance and reliability of computer and communications system. Elements of probability, random variables (discrete and continuous), expectation, conditional distributions, stochastic processes, discrete and continuous time Markov chains, introduction to queuing systems and networks. Prerequisite: Mathematics 216. Instructor: Trivedi. One course. C-L: Computer Science 555, Information Science and Information Studies, Modeling Biological Systems  

ECE 556. Wireless Networking and Mobile Computing. Theory, design, and implementation of mobile wireless networking systems. Fundamentals of wireless networking and key research challenges. Students review pertinent journal papers. Significant, semester-long research project. Networking protocols (Physical and MAC, multi-hop routing, wireless TCP, applications), mobility management, security, and sensor networking. Prerequisites: Electrical and Computer Engineering 356 or Computer Science 310. Instructor: Staff. One course. C-L: Computer Science 515.

ECE 557. Performance and Reliability of Computer Networks. Methods for performance and reliability analysis of local area networks as well as wide area networks. Probabilistic analysis using Markov models, stochastic Petri nets, queueing networks, and hierarchical models. Statistical analysis of measured data and optimization of network structures. Prerequisites: Electrical and Computer Engineering 356 and 555. Instructor: Trivedi. One course. C-L: Information Science and Information Studies.

ECE 558. Computer Networks and Distributed Systems. 3 units. C-L: see Computer Science 514. 

ECE 559. Advanced Digital System Design. Fundamentals of advanced digital system design, and the use of a hardware description language, VHDL, for their synthesis and simulation. System examples include the arithmetic/logic unit, memory, and microcontrollers. The team-based project incorporates engineering standards and realistic constraints and also considers most of the following: Cost, environmental impact, manufacturability, health and safety, ethics, social and political impact. Prerequisites: ECE 350L; ECE 230L, ECE 250D, ECE 270DL and ECE 280L; Math 353; Physics 152L; Chemistry 101DL; and statistics. Co-requisite: ECE 331L. Graduate students with instructor consent. Instructor: Derby. 

ECE 561. Datacenter Architecture. Advanced topics in data centers with emphasis on computer architecture and systems. Surveys recent advances in processor, memory, network, storage, and modern software systems that run in computing clouds. Discussion-oriented classes focus on in-depth analysis of readings. Students will learn to reason about datacenter performance and energy efficiency. Students will complete a collaborative research project. Prerequisite: ECE 250D or CompSci 250D or ECE 550D. Instructor: Lee.  

ECE 562. Energy-Efficient Computer SystemsAdvanced topics in energy-efficient computing with an emphasis on computer architecture and systems. Surveys recent advances in diverse platforms, ranging from high-performance, enterprise domains to low-power, mobile domains. Discussion-oriented classes focus on in-depth analysis of readings. Students will learn to reason about energy efficiency across the hardware/software interface and across a range of system components. Students will complete a collaborative research project. Prerequisite: ECE 250D or CompSci 250D or ECE 550D. Instructor: Lee. 

ECE 563. Cloud Computing. In a seminar format, explore a number of the underlying technologies, business models, and innovations underpinning current widespread deployment of "cloud" computing systems, services, and applications. Each student will be expected to choose a relevant subject, identify appropriate advance readings for the class, and lead one discussion on topics of interest to the group. There will be a project component to the course; some projects may be in the form of literature reviews and papers, others will involve practical experience creating and deploying a useful service or application in a cloud environment. Instructor: Board.  

ECE 564. Mobile Application Development. Explores the world of mobile application development with focus on needs of engineers. Centered on Apple environment, with the development environment being on OS X and the target environment being an iOS device – iPad, iPhone, iPod Touch or Apple Watch. Real world context focused on the common programming “patterns” for engineers in academia or business – standalone apps, apps connected to other systems, apps connected to the cloud. Covers fundamentals essential to understanding all aspects of app development. Taught in a team environment. Students required to present their project proposals and deliver an app as a final project. Prerequisites: CS 308 or ECE 551D. Instructor: Staff. 

ECE 565.  Performance Optimization & Parallelism. Analyzing and optimizing the performance of software, in both a single- and multi-threaded setting. Apply knowledge of hardware, programming, and assembly to both tasks. Single-threaded performance topics include code profiling & analysis, loop transformation, analysis of interaction of code & memory hierarchy, assembly level instruction scheduling impacts. Multi-threaded topics include scalability & load balance. For students with strong foundation of programming skills in high-level languages, assembly language, & computer architecture & design. Prerequisites: [(ECE/CS 250D and CS 310) or (ECE 550D and ECE 551D)] & ECE 552 (may be taken concurrently). ECE 650 recommended. Instructor: Staff. 

ECE 566.  Enterprise Storage Architecture. Study the design and deployment of massive storage systems of the sort used in large enterprises (banks, major IT departments, service providers, etc.). Includes coverage of hard disk and flash design, RAID, SAN and NAS topologies, filesystem design, data center architectures for high availability, data deduplication, business continuity, and the economics of data storage with respect to cloud computing. Includes a few homeworks and a semester-long programming project. Prerequisite: Graduate Students: ECE 650; Undergraduate Students: CompSci 310 or ECE 353. Instructor: Bletsch.

ECE 568.  Engineering Robust Server Software. In this course, students learn about important principles in server software design and development.  These principles include topics such as handling asynchronous behavior, design for failure, basic security principles, scalability, and resilience. Students will put these ideas into practices by developing software reflecting the ideas learned in class. Pre-requisites:(ECE 551 and co-req ECE 650) OR (CS 308 and ECE 353 and ECE 356). Instructor: Hilton.

ECE 571. Electromagnetic Theory. The classical theory of Maxwell's equations; electrostatics, magnetostatics, boundary value problems including numerical solutions, currents and their interactions, and force and energy relations. Three class sessions. Prerequisite: Electrical and Computer Engineering 270DL. Instructor: Carin, Cummer, Joines, Liu, or Smith. One course.  

ECE 572. Electromagnetic Communication Systems. Review of fundamental laws of Maxwell, Gauss, Ampere, and Faraday. Elements of waveguide propagation and antenna radiation. Analysis of antenna arrays by images. Determination of gain, loss, and noise temperature parameters for terrestrial and satellite electromagnetic communication systems. Prerequisite: Electrical and Computer Engineering 270DL or ECE 571. Instructor: Joines. One course.

ECE 573. Optical Communication Systems. Mathematical methods, physical ideas, and device concepts of optoelectronics. Maxwell's equations, and definitions of energy density and power flow. Transmission and reflection of plane waves at interfaces. Optical resonators, waveguides, fibers, and detectors are also presented. Prerequisite: Electrical and Computer Engineering 270DL or equivalent. Instructor: Joines. One course.

ECE 574. Waves in Matter. Analysis of wave phenomena that occur in materials based on fundamental formulations for electromagnetic and elastic waves. Examples from these and other classes of waves are used to demonstrate general wave phenomena such as dispersion, anisotropy, and causality; phase, group, and energy propagation velocities and directions; propagation and excitation of surface waves; propagation in inhomogeneous media; and nonlinearity and instability. Applications that exploit these wave phenomena in general sensing applications are explored. Prerequisites: Electrical and Computer Engineering 270DL. Instructor: Cummer. One course.

ECE 575. Microwave Electronic Circuits. Microwave circuit analysis and design techniques. Properties of planar transmission lines for integrated circuits. Matrix and computer-aided methods for analysis and design of circuit components. Analysis and design of input, output, and interstage networks for microwave transistor amplifiers and oscillators. Topics on stability, noise, and signal distortion. Prerequisite: Electrical and Computer Engineering 270DL or equivalent. Instructor: Joines. One course.

ECE 577. Computational Electromagnetics. Systematic discussion of useful numerical methods in computational electromagnetics including integral equation techniques and differential equation techniques, both in the frequency and time domains. Hands-on experience with numerical techniques, including the method of moments, finite element and finite-difference time-domain methods, and modern high order and spectral domain methods. Prerequisite: Electrical and Computer Engineering 571 or consent of instructor. Instructor: Carin or Liu. One course.

ECE 578. Inverse Problems in Electromagnetics and Acoustics. Systematic discussion of practical inverse problems in electromagnetics and acoustics. Hands-on experience with numerical solution of inverse problems, both linear and nonlinear in nature. Comprehensive study includes: discrete linear and nonlinear inverse methods, origin and solution of nonuniqueness, tomography, wave-equation based linear inverse methods, and nonlinear inverse scattering methods. Assignments are project-oriented, using MATLAB. Prerequisites: Graduate level acoustics or electromagnetics (Electrical and Computer Engineering 571), or consent of instructor. Instructor: Liu. One course.

ECE 581. Random Signals and Noise. Introduction to mathematical methods of describing and analyzing random signals and noise. Review of basic probability theory; joint, conditional, and marginal distributions; random processes. Time and ensemble averages, correlation, and power spectra. Optimum linear smoothing and predicting filters. Introduction to optimum signal detection, parameter estimation, and statistical signal processing. Prerequisite: Mathematics 230 or Statistics 130. Instructor: Collins or Nolte. One course.  

ECE 582. Digital Signal Processing. Introduction to fundamental algorithms used to process digital signals. Basic discrete time system theory, the discrete Fourier transform, the FFT algorithm, linear filtering using the FFT, linear production and the Wierner filter, adaptive filters and applications, the LMS algorithm and its convergence, recursive least-squares filters, nonparametric and parametric power spectrum estimation minimum variance and eigenanalysis algorithms for spectrum estimation. Prerequisite: Electrical and Computer Engineering 581 or equivalent with consent of the instructor. Instructor: Collins, Krolik, Nolte, or Tantum. One course. One course.

ECE 584. Acoustics and Hearing (GE, IM). One course. C-L: see Biomedical Engineering 545

ECE 585. Signal Detection and Extraction Theory. Introduction to signal detection and information extraction theory from a statistical decision theory viewpoint. Subject areas covered within the context of a digital environment are decision theory, detection and estimation of known and random signals in noise, estimation of parameters and adaptive recursive digital filtering, and decision processes with finite memory. Applications to problems in communication theory. Prerequisite: Electrical and Computer Engineering 581 or consent of instructor. Instructor: Nolte. One course.

ECE 587. Information Theory. Information theory is the science of processing, transmitting, storing, and using information. This course provides an introduction to mathematical measures of information and their connection to practical problems in communication, compression, and inference. Entropy, mutual information, lossless data compression, channel capacity, Gaussian channels, rate distortion theory, Fisher information. Useful for researchers in a variety of fields, including signal processing, machine learning, statistics, and neuroscience. Appropriate for beginning graduate students in electrical engineering, computer science, statistics, and math with a background in probability. Instructor: Reeves, Carin. 3 units. C-L: Statistical Science 563. 

ECE 588. Image and Video Processing: From Mars to Hollywood with a Stop at the Hospital.  An introduction to image formation, image compression, image enhancement, and image segmentation. Coverage of both geometric and non-geometric tools, as well as spatial and non-spatial operations. Extension to color images and video. The course addresses recent progress in the area, including image inpainting (how to remove objects from images and video), image processing via sparse modeling and compressed sensing, geometric partial differential equations for image analysis, image processing for HIV and virus research, and image processing for neurosurgery and other medical applications. Prerequisites: Background in signal processing and linear algebra is recommended. Instructor: Sapiro. 

ECE 590. Advanced Topics in Electrical and Computer Engineering. Opportunity for study of advanced subjects related to programs within the electrical and computer engineering department tailored to fit the requirements of a small group. Instructor: Staff. One course.

ECE 611. Nanoscale and Molecular Scale Computing. Students study the design and analysis of nanoscale computing systems. Topics include nanoelectronic devices (e.g., graphene and carbon nanotube transistors, quantum dots, etc.), computational paradigms (conventional von Neumann, quantum cellular automata, quantum computing, etc.), microarchitecture and instruction set design specific to nanoscale systems, defect and fault tolerance, fabrication techniques (e.g., self-assembly), modeling and simulation methods. This course relies on current literature and student discussion. Prerequisites: Electrical and Computer Engineering 350L, Electrical and Computer Engineering 511. Instructor: Lebeck. 3 units. C-L: Computer Science 624. 

ECE 621. QUANTUM ERROR CORRECTION. In this course, we cover two related topics: quantum error correction and quantum computer architectures. In the beginning of the course, we will cover the basics of quantum error correction and develop the tools needed to understand modern methods of fault-tolerant quantum computation. In the end of the course, we will discuss how quantum error correction influences the design of a large-scale quantum computer. Prerequisite: ECE 523 or ECE 420 or ECE 520.

ECE 623. QUANTUM INFORMATION THEORY. This course introduces fundamental ideas of Quantum Information theory, such as entanglement, quantum entropy and mutual information, decoherence and quantum data compression. A primary goal of this field is to understand how quantum effects, such as entanglement, can enhance communication and cryptography protocols. Furthermore, the tools and ideas discussed in this course are essential for understanding and quantifying noise and decoherence in quantum computers. These concepts have also found various applications in different areas of Physics, including quantum thermodynamics, many-body systems and quantum gravity. Prerequisites: ECE 521 or PHYS 464 or ECE 586 or Math 216 or equivalent.

ECE 631. Analog and RF Integrated Circuit Design, Fabrication, and Test. For students who have some experience in analog circuit design and want to fabricate and test an IC under faculty supervision. Typically taken over three semesters (Fall, Spring, Summer, or Fall, Spring, Fall) to accommodate design-fabricate-test cycle. Design cycle: students use Cadence or Mentor IC layout tools, and HSPICE or ADS simulation tools. Fabrication cycle: a detailed test plan is developed. Test cycle: students access test facility appropriate for design and submit a report to the IC fabrication foundry. Co-requisite: ECE 539, or consent of instructor. Instructor: Brooke. Variable credit.

ECE 650. Systems Programming and Engineering. Focuses on a range of topics that are central to both the design of operating systems and the programming system-level software. Students will apply knowledge of basic concepts in operating systems, networking, and programming towards these two areas. Topics covered will include concurrency, process management, hypervisors, networking, security, databases, and file systems. Students will be expected to demonstrate their understanding in these areas through a series of programming assignments covering these topics. Prerequisites: ECE 550D and ECE 551D. Instructor: Staff. 3 Units.

ECE 651. Software Engineering. Teaches students about all steps of the software development lifecycle: requirements definition, design, development, testing, and maintenance. The course assumes students are skilled object-oriented programmers from prior courses, but will include a rapid introduction to Java. Students complete team-based semester-long software project which will progress through all phases of the software lifecycle. Prerequisite: ECE 551D. Instructor: Staff. 3 Units.

ECE 652. Advanced Computer Architecture II. QS One course. C-L: see Computer Science 650; also C-L: Modeling Biological Systems.

ECE 653. HUMAN-CENTERED COMPUTING. This course addresses the importance of the human-computer interface in the design and development of things that people use. Many of the perceptual, cognitive, and social characteristics of people, as well as methods for learning more about the people, are covered. The capabilities and limits of computers and other related systems are discussed as they relate to the impact on design and implementation decisions. The course consists of a semester-long project that steps through the various stages of design. This semester's project will be reimaging on campus mental health management. Prerequisites: CompSci 307D or CompSci 308 or ECE 651.

ECE 661. COMP ENG ML & DEEP NEURAL NETS. This course examines various computer engineering methods commonly performed in developing machine learning and deep neural network models. The focus of the course is on how to improve the training and inference performance in terms of model accuracy, size, runtime, etc. Techniques that are widely investigated and adopted in industrial companies and academic communities will be discussed and practiced. Programming practices on these techniques are designed with heavy utilization of the PyTorch package. Prerequisites: CompSci 201 or ECE 551D or ECE 751D.

ECE 675. Optical Imaging and Spectroscopy. Wave and coherence models for propagation and optical system analysis. Fourier optics and sampling theory. Focal plane arrays. Generalized and compressive sampling. Impulse response, modulation transfer function and instrument function analysis of imaging and spectroscopy. Code design for optical measurement. Dispersive and interferometric spectroscopy and spectral imaging. Performance metrics in optical imaging systems. Prerequisite: Electrical and Computer Engineering 270DL and 280L. Instructor: Brady. 3 units.

ECE 676. Lens Design. Paraxial and computational ray tracing. Merit functions. Wave and chromatic aberrations. Lenses in photography, microscopy and telescopy. Spectrograph design. Emerging trends in lens system design, including multiple aperture and catadioptric designs and non-imaging design for solar energy collection. Design project management. Each student must propose and complete a design study, including a written project report and a formal design review. Prerequisite: Electrical and Computer Engineering 340L. Instructor: Brady. 3 units. One course.

ECE 681. Pattern Classification and Recognition Technology. Theory and practice of recognition technology: pattern classification, pattern recognition, automatic computer decision-making algorithms. Applications covered include medical diseases, severe weather, industrial parts, biometrics, bioinformation, animal behavior patterns, image processing, and human visual systems. Perception as an integral component of intelligent systems. This course prepares students for advanced study of data fusion, data mining, knowledge base construction, problem-solving methodologies of "intelligent agents" and the design of intelligent control systems. Prerequisites: Mathematics 216, Statistics 130 or Mathematics 230, Computer Science 101, or consent of instructor. Instructor: Collins or Tantum. One course. 

ECE 683. Digital Communication Systems. Digital modulation techniques. Coding theory. Transmission over bandwidth-constrained channels. Signal fading and multipath effects. Spread spectrum. Optical transmission techniques. Prerequisite: Electrical and Computer Engineering 581 or consent of instructor. Instructor: Staff. One course. 

ECE 686. Adaptive Filters. Adaptive digital signal processing with emphasis on the theory and design of finite-impulse response adaptive filters. Stationary discrete-time stochastic processes, Wiener filter theory, the method of steepest descent, adaptive transverse filters using gradient-vector estimation, analysis of the LMS algorithm, least-squares methods, recursive least squares and least squares lattic adaptive filters. Application examples in noise canceling, channel equalization, and array processing. Prerequisites: Electrical and Computer Engineering 581 and 582 or consent of instructor. Instructor: Krolik. One course.  

ECE 688. Sensor Array Signal Processing. An in-depth treatment of the fundamental concepts, theory, and practice of sensor array processing of signals carried by propagating waves. Topics include: multidimensional frequency-domain representations of space-time signals and linear systems; apertures and sampling of space-time signals; beamforming and filtering in the space-time and frequency domains, discrete random fields; adaptive beamforming methods; high resolution spatial spectral estimation; optimal detection, estimation, and performance bounds for sensor arrays; wave propagation models used in sensor array processing; blind beamforming and source separation methods; multiple-input-multiple-output (MIMO) array processing; application examples from radar, sonar, and communications systems. Instructor: Staff. One course.

ECE 722. Quantum Electronics. Quantum theory of light-matter interaction. Laser physics (electron oscillator model, rate equations, gain, lasing condition, oscillation dynamics, modulation) and nonlinear optics (electro-optic effect, second harmonic generation, phase matching, optical parametric oscillation and amplification, third-order nonlinearity, optical bistability.) Prerequisite ECE 521, Physics 464, or equivalent. Instructors: Stiff-Roberts. One course. 3 units.

ECE 781. Advanced Topics in Signal Processing. Instructor: Staff. 3 units.

ECE 784LA. Sound in the Sea: Introduction to Marine Bioacoustics. 4 units. C-L: see Environment 784LA; also C-L: Biology 784LA 

ECE 751D. Advanced Programming, Data Structures, and Algorithms in C++. Students learn C++, data structures (linked lists, balanced BSTs, hash tables, graphs), Abstract Data Types (Stacks, Queues, Maps, Sets), & algorithms (sorting, graph search, minimal spanning tree). Efficiency of such structures & algorithms compared via Big-O analysis. Students learn multi-threaded programming. Emphasis on defensive coding, & use of standard UNIX development tools in preparation for students' entry into real-world software development jobs. Strong C programming skills required to enroll. Those without such skills should take ECE 551D instead. Instructor consent required. Not open to those who have taken ECE 551D or undergraduates. Instructor: Hilton or Lipp

ECE 891. Internship. Student gains practical electrical and computer engineering experience by taking a job in industry, and writing a report about this experience. Requires prior consent from the student's advisor and from the Director of Graduate Studies. May be repeated with consent of the advisor and the director of graduate studies. Credit/no credit grading only. Instructor: Staff. 1 unit.

ECE 899. Special Readings in Electrical Engineering. Special individual readings in a specified area of study in electrical engineering. Approval of the director of graduate studies required. 1 to 4 units. Instructor: Graduate staff.  Variable credit.