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 Chemistry 101DL or instructor approval. Instructor: Franklin 


ECE 512: Emerging Nanoelectronic Devices. Brief review of semiconductor device 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: Graduate Introduction to 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. Prerequisite: [ECE 270DL and ECE 280L and one of (Math 216, 218D-1, 218D-2, or 221)] or graduate standing. Not open to students who have taken ECE 420. Instructor: K. Brown 

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: Stiff-Roberts 

ECE 523: Quantum Computing.
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: Electrical and Computer Engineering 521 or Physics 464 or equivalent. Instructor: Kim or Marvian 


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 264L or Electrical and Computer Engineering 521. Instructor: A. Brown or Mikkelsen

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: Electrical and Computer Engineering 330L. Instructor: Massoud

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 330L or 331L. Instructor: Fair 

ECE 529: Digital Integrated Circuits. Analysis and design of digital integrated circuits in deep submicron MOS technology. Brief review of IC technology, MOSFETs, and interconnects. Switching characteristics (propagation delay) and power consumption in NMOS/CMOS devices and interconnects. Analysis of static and dynamic logic circuits (inverters, gates) and memory circuits (SRAMs, DRAMs, Flash). Influence of technology and device structure on performance and reliability of digital ICs. SPICE modeling. Memory array design project. Prerequisite: Electrical and Computer Engineering 331L or graduate student standing. Instructor: Massoud 

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. 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) and ECE 230L and 250D and 270DL and 280L and (Mathematics 353 or 356) and (Statistical Science 130L or Mathematics 230 or ECE 555 or ECE 380 or Statistical Science 240L or EGR 238L or Mathematics 340) and (Physics 152L or 26) and (Chemistry 101DL or 20 or 21)] 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 


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 

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. Prerequisite: [ECE 350L, 331L, 230L, 250D, 270DL, and 280L and (Mathematics 353 or 356) and (Statistical Science 130L or Statistical Science 240L or Mathematics 230 or Mathematics 340 or ECE 380 or ECE 555 or EGR 238L) and (Physics 152L or 26) and (Chemistry 101DL or 20 or 21)] or graduate-student standing. Instructor: Morizio 

ECE 541: Advanced Optics. This course presents a rigorous treatment of topics in Photonics and Optics targeted at students with an existing photonics or optics background. Topics will include, Optical Sources, Statistical Optics and Coherence Theory, Detection of Radiation; Nonlinear Optics; Waveguides and Optical Fibers; Modern Optical Modulators; Ultrafast lasers and Applications. These topics will be considered individually and then from a system level perspective. Prerequisite: Electrical and Computer Engineering 340L or equivalent. Instructor: Vrijsen or Wax

ECE 545: Foundations of Nanoelectronics & Nanophotonics.
Theory and applications of nanoelectronics and nanophotonics. Quantum dots and wells, metal nanoparticles, organic-inorganic interfaces, graphene, next generation transistors, light emitters, and sensors. Prerequisite: Electrical and Computer Engineering 230L and 270DL or equivalent. Instructor: Litchinitser 


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: A. Brown 

ECE 549: Optics & Photonics Seminar Series. Weekly seminar on the current research topics in the field of optics and photonics. Instructor: Y. Gong 

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, 353, and/or 356 instead. Corequisite: ECE 551D. Instructors: H. Li or Younes 

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. Instructors: Hilton, Lipp, or Younes 


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 350 or equivalent. Instructor: Sorin or Wills

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 250L or Computer Science 250 or (ECE 550D and ECE 551D). Instructor: Hilton 

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 

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 

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: T. Chen

ECE 558: Advanced Computer Networks. Entry-level graduate course. Basic systems support for process-to-process communications across a computer network. The TCP/IP protocol suite and the Berkeley sockets application programs interface. The topics include congestion control, packet scheduling, routing, software defined networking, datacenter networks, network function virtualization, programmable switches, network measurement, remote direct memory access, residential networks, peer-to-peer networks, and content distribution networks. Recommended prerequisite: entry-level computer systems course (Computer Science 310, 356, 510); knowledge of the C or Python. Instructors: Maggs or Yang 


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. 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. Prerequisite: [ECE 350L, 230L, 250D, 270DL, and 280L and (Mathematics 353 or 356) and (Statistical Science 130L or Statistical Science 240L or Mathematics 230 or Mathematics 340 or ECE 380 or ECE 555 or EGR 238L) and (Physics 152L or 26) and (Chemistry 101DL or 20 or 21) and ECE 331L (prerequisite or corequisite)] or graduate-student standing. Instructor: Derby 


ECE 560: Computer and Information Security. An intense trip through many facets of computer and information security. Includes discussion and practical exercises in risk management, threat modeling, applied cryptography, malicious software, network security, intrusion detection and prevention, software and OS security, auditing and forensics, reverse engineering, and social engineering. Includes many hands-on security assignments. Prerequisite: Computer Science 310, ECE 353, or ECE 650. Instructors: Bletsch or N. Gong 

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. Prerequisite: CompSci 307D or CompSci 308 or ECE 651. Instructor: Telford 

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, and computer architecture & design. Prerequisite: [(ECE/CompSci 250D and [CompSci 310 or ECE 353]) or (ECE 550D and (ECE 551D or ECE 751D))] and ECE 552 (may be taken concurrently). Instructor: Rogers 

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: Computer Science 310 or ECE 353. Instructor: Bletsch 


ECE 567: Cyber-Physical System Design. Complex interactions between information technology and physical world in Cyber-Physical Systems (CPS) challenge standard design methods that ignore cross-cutting constraints. This course addresses CPS design challenges by exploiting theory and methods from embedded systems, controls, and formal methods. Course covers topics related to the integration of system modeling, analysis, and automatic synthesis into design frameworks that ensure closed-loop safety and performance under known and unknown operating conditions. Balances establishing a working knowledge of CPS design and analysis methods with understanding the theory behind them. Prerequisite: ECE 350L and Computer Science 310/ECE 353, or graduate-student standing. Instructor: Pajic 


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. Prerequisite: (ECE 551D or ECE 751D) and corequisite ECE 650, or [(Computer Science 307D or Computer Science 308) and (ECE 353 or CompSci 310) and (ECE 356 or CompSci 356)]. Instructor: Rogers 

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. Instructors: Liu or Padilla 

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 571. Instructor: Joines 

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

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. Prerequisite: Electrical and Computer Engineering 270DL. Instructor: Cummer 

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. Instructors: Joines or Smith 

ECE 580: Introduction to Machine Learning. Introduction to core concepts in machine learning and statistical pattern recognition, with a focus on discriminative and generative classifiers (nearest-neighbors, Bayes, logistic regression, linear discriminant, support vector machine, and relevance vector machine). Dimensionality reduction and feature selection. Classifier performance evaluation, bias-variance tradeoff, and cross-validation. Prerequisite: (Mathematics 216, Mathematics 218, Mathematics 221, or ECE 586) and (Computer Science 201 or ECE 551D) and (ECE 480 or ECE 581). Not open to students who have taken Computer Science 671D. Instructor: Tantum 

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: one of (STA 130L or STA 240L or Mathematics 230 or or Mathematics 340 or ECE 380 or ECE 555 or EGR 238L) or graduate student standing. Instructor: Nolte or Richmond 

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

ECE 586: Vector Space Methods with Applications. Covers key concepts from advanced linear algebra that are used regularly in ECE/CS journal papers on signal processing, communications, circuit design, and machine learning (e.g., logic, topology, vector spaces, optimization). Key mathematical ideas/proofs will be presented and applied. Uses application topics such as Markov chains, alternating projections, and pattern classification to illustrate important mathematical topics. Background in linear algebra, a high-level programming language, and probability is assumed. Prerequisite: [(Mathematics 216, 221, or 218) and (Engineering 103L or Computer Science 201) and (STA 130 or STA 240L or Mathematics 230 or Mathematics 340 or ECE 380 or ECE 555 or EGR 238L) and ECE 280L] or graduate student standing. Instructor: Pfister

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 


ECE 588: Image and Video Processing: From Mars to Hollywood with a Stop at the Hospital. Intro to image formation, image compression, image enhancement & image segmentation. Covers geometric and non-geometric tools, as well as spatial and non-spatial operations. Extension to color images and video. Addresses recent progress in the area, including image inpainting (how to remove objects from images and video), image processing via sparse modeling & compressed sensing, geometric partial differential equations for image analysis, image processing for HIV & virus research, image processing for neurosurgery & other medical applications. Prerequisite: [ECE 280L and (Mathematics 216, 218D-1, 218D-2, or 221) and (STA 130L or STA 240L or Mathematics 230 or Mathematics 340 or ECE 380 or ECE 555 or EGR 238L)] or graduate student standing. Instructors: Di Martino or 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 consent required. Instructors: Various

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/PHYSICS 627 or ECE 420 or ECE 520. Instructor: K. Brown 

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. Prerequisite: ECE 521, PHYSICS 464, ECE 586, MATH 216, MATH 221, or MATH 218. Instructor: Marvian 

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. Prerequisite: ECE 550D and (ECE 551D or ECE 751D). Instructor: Younes 

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: Electrical and Computer Engineering 551D or 751D. Instructors: Daily, Derby, or Hilton


ECE 652: Advanced Computer Architecture II. Parallel computer architecture design and evaluation. Design topics include parallel programming, message passing, shared memory, cache coherence, cache coherence, memory consistency models, symmetric multiprocessors, distributed shared memory, interconnection networks, and synchronization. Evaluation topics include modeling, simulation, and benchmarking. Prerequisite: Computer Science 550 or Electrical and Computer Engineering 552 or consent of instructor. Instructors: Lebeck or Sorin 

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. Prerequisite: Computer Science 307D or 308 or Electrical and Computer Engineering 651. Instructor: Daily 


ECE 654: Edge Computing. A seminar-format examination of design principles and recent advances in edge computing, a distributed networked system architecture that places computing and storage at multiple locations between the user and the cloud. The class covers edge computing platforms, edge-adapted algorithms, and the use of edge in mobile and Internet of Things systems and applications. The class focuses on in-depth examinations of key scientific advances in the field. Students complete and present a research-based project, individual or team-based. Prerequisites: ECE/CS 356 or ECE/CS 350 or CS 310/ECE 353 or equivalent. Instructor: Gorlatova 

ECE 661: Computer Engineering Machine Learning and 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: Computer Science 201 or ECE 551D or ECE 751D. Instructors: Y. Chen or H. Li 

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: Gehm

ECE 682D: Probabilistic Machine Learning.
Introduction to concepts in probabilistic machine learning with a focus on discriminative and hierarchical generative models. Topics include directed and undirected graphical models, kernel methods, exact and approximate parameter estimation methods, and structure learning. Prerequisite: Linear algebra, Statistical Science 250 or Statistical Science 611. Instructors: Laber or Mukherjee

ECE 684: Natural Language Processing.
Introduction to algorithmic and analytic methods specific to textual data. Subject areas covered are speech recognition, optical character recognition, text parsing, and document analysis. Analysis tools taught include sentiment analysis/topic models, auto-correct, auto-complete, and translation systems. Applications to brain-computer interface communication systems, intelligent personal assistants, and plagiarism detection systems. Prerequisite: STA 130L, STA 240L, Mathematics 230, Mathematics 340, ECE 380, ECE 555, ECE 580, ECE 581, ECE 682D, EGR 238L, or ECE 551D. Instructor: P. Wang 


ECE 685D: Introduction to Deep Learning. Provides an introduction to the machine learning technique called deep learning or deep neural networks. A focus will be the mathematical formulations of deep networks and an explanation of how these networks can be structured and “learned” from big data. Discussion section covers practical applications, programming, and modern implementation practices. Example code and assignments will be given in Python with heavy utilization of PyTorch (or Tensorflow) package. The course and a project will cover various applications including image classification, text analysis, object detection, etc. Prerequisite: ECE 580, ECE 681, ECE 682D, Statistical Science 561D, or Computer Science 571D. Instructor: Tarokh 


ECE 687D: Theory and Algorithms for Machine Learning. This is an introductory overview course at an advanced level. Covers standard techniques, such as the perceptron algorithm, decision trees, random forests, boosting, support vector machines and reproducing kernel Hilbert spaces, regression, K-means, Gaussian mixture models and EM, neural networks, and multi-armed bandits. Covers introductory statistical learning theory. Recommended prerequisite: linear algebra, probability, analysis or equivalent. Instructor: Rudin 

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: Krolik 

ECE 721: Nanotechnology Materials Lab. This course provides an introduction to advanced methods for the characterization and fabrication of materials, nanostructures, and devices. Cleanroom methods to be covered include lithography, evaporation, and etching. Characterization methods include electron microscopy, atomic force microscopy, X-ray photoelectron spectroscopy, and optical spectroscopy. Students will receive an overview of the techniques in the Shared Materials Instrumentation Facility through lectures and demonstrations. In the lab section, each student will engage in a project that focuses on those capabilities that are needed for their research, and will receive training and certification on that equipment. Instructor: Walters 

ECE 741: Compressed Sensing and Related Topics. Introduction to the basic compressed sensing problems and methodologies, including the recovery of sparse vectors and low-rank matrices using methods based on convex optimization and approximate message passing. Unified theoretical framework for the analysis of certain CS problems, drawing upon ideas from statistical decision theory, high-dimensional convex geometry, information theory, convex optimization, message passing and variational inference with graphical models, and the replica method from statistical physics. Instructor: Reeves 


ECE 751D: Advanced Programming, Data Structures, and Algorithms for 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, and 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 Electrical and Computer Engineering 551D instead. Instructor consent required. Not open to students who have taken or are currently taking Electrical and Computer Engineering 551D. Instructors: Hilton or Lipp


ECE 784LA: Sound in the Sea: Introduction to Marine Bioacoustics. Fundamentals marine bioacoustics with focus on current literature and conservation issues. Topics include: intro acoustics; acoustic analysis methods and quantitative tools; production/recording of sound; ocean noise; propagation theory; active/passive acoustics; hearing, sound production and communication in marine organisms, potential impacts of anthropogenic noise; and regulation of marine sound. Lab focus on methodologies for generating, recording and analyzing marine sounds. Grad students responsible for additional acoustic analyses and results prep for student projects plus preparation additional lit review/critique. Taught in Beaufort at Duke Marine Lab. Prerequisite: AP or introductory biology or consent; Physics 41L or 161L (or equivalent) or consent. Instructor: Nowacek 

ECE 891: Internship. Student gains practical electrical and computer engineering experience by taking a job in industry and writing a report about this experience. May be repeated with consent of the advisor and the director of graduate studies. A full-time internship is available to ECE graduate students if it allows them to gain practical experience in a work environment related to their academic training and enhances their overall academic experience and, for students on F-1 Visa, their employment prospects once they return to their home country. Requires prior consent from the student's advisor and from the director of graduate studies. Credit/no credit grading only. Instructors: Various

ECE 899: Special Readings in Electrical and Computer Engineering.
Special individual readings in a specified area of study in electrical engineering. Approval of director of graduate studies required. Instructors: Various