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. Instructors: Liu or 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. Instructors: Klco 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: 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. Instructors: Massoud or Roy

ECE 528: Nanoscale IC Chip Technology. Key processing technologies for integrated circuits with an emphasis on the fundamentals of process scaling to fabricate nanoscale IC chips. Photolithographic scaling methods, modern photoresists, anti-reflection coatings, and optical and EUV exposure systems. Scaled pn junction formation with ion implantation and rapid thermal annealing, ultrathin gate dielectrics, silicon gate and metal gate technologies. Fundamentals of deposited metal and dielectric films driven by requirements for chip interconnections and wafer planarity. Prerequisite: ECE 230L and Chem 101DL, or graduate student standing. 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 534: Graduate Rainforest Engineering. An open-format project-based class for graduate student team design with a focus on rainforests and related environments. Engages graduate students in cross-disciplinary team challenges that will teach them to work together with other students of differing backgrounds and skills. Design challenges are similar to the XPRIZE contests, or the NAE Grand Challenges. Graduate students taking this class will collaborate with undergraduates taking a similar class and are expected to provide mentorship and leadership for their undergraduate collaborators. Prerequisite: Graduate student standing. Instructor: Brooke

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. 

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. Instructors: Padilla, Vrijsen, or Wax

ECE 542: Holography and 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. Instructor: Gehm

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

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 549: Optics & Photonics Seminar Series. Weekly seminar on the current research topics in the field of optics and photonics. Instructor: Fischer or 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, Pastorino, 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. Instructors: 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 or Telford

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 X. 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 mobile application development in the Apple Development Environment. Uses core software engineering pillars of Swift, Xcode, iOS & Xcode Cloud to learn how to create apps for Apple products. Focuses on iOS/iPhone, but Xcode also allows for exploration into the VisionPro, the Apple Watch, the iPad, and Apple TV. Real world context focused on common programming patterns for engineers in academia or business - standalone apps, apps connected to other systems, apps connected to the cloud. Covers software engineering fundamentals essential to understanding all aspects of app development. Each team will deliver a fully functioning app. Recommended 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)]. Instructors: Bletsch or 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. Instructor: 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 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. Instructor: 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, 218D-1, 218D-2, or 221, or ECE 586) and (Computer Science 201 or ECE 551D) and (ECE 480 or ECE 581 or MATH 541 or MATH 730 or MATH 740). 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: Richmond

ECE 583: Data Science. Data science is 'the science of planning for, acquisition, management, analysis of, and inference from data'. This course systematically covers the concepts, ideas, tools, and example applications of data science in an end-to-end manner. We emphasize data-driven thinking, data processing and analytics, and extracting actionable values from data. We focus on the interactions between data and applications, data modeling, and data processing, data analytics, and the essential algorithms and tools. Prerequisites: A statistics course (Statistics 111 or higher), data structures and algorithms (Computer Science 201), and relational databases (Computer Science216 or 316). Instructors: Pei or Songdechakraiwut

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. Instructors: Collins or Richmond

ECE 586: Vector Space Methods with Applications. 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, pattern classification to illustrate important mathematical topics. Background in linear algebra, a high-level programming language, and probability is assumed. Prerequisites: [(Math 216, 221, or 218-2) & (EGR 103L or CS 201) & (STA 130 or STA 240L or Math 230 or Math 340 or ECE 380 or ECE 555 or EGR 238L) & ECE 280L] or graduate student standing. Instructors: Pfister or Reeves

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. Instructors: Pfister or 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. Instructor: Di Martino

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

ECE 624: Open Quantum Systems. Experimental quantum systems are inevitably coupled to their environment. This leads to dissipation and decoherence, which pose challenges for quantum technology but can also be used to drive novel effects. Open quantum systems are described using density operators, quantum channels, and second quantization. We will derive the Lindblad master equation which can explain dissipation, decoherence, and thermalization. Experimental platforms for quantum computation and simulation will be discussed from this viewpoint. Advanced concepts covered may include nonequilibrium phase transitions, quantum trajectories, tensor networks, and the Keldysh formalism. Recommended prerequisite: PHYSICS 464 or ECE 521. Instructor: Barthel

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). Instructors: Rahbar or 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: Derby, Hilton, Noyce, Pastorino, or Rahbar

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. Instructor: Towles

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. 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. Prerequisite: ECE/COMPSCI 356 or ECE/COMPSCI 350L or ECE 353/COMPSCI 310 or Graduate Standing. Instructor: Gorlatova

ECE 656: Cryptography. Introduction to the design and analysis of cryptographic algorithms. Topics include basics of abstract algebra and number theory; symmetric and asymmetric encryption algorithms; cryptographic hash functions; message authentication codes; digital signature schemes; elliptic curve algorithms; side-channel attacks; and selected advanced topics. Prerequisite: COMPSCI 230 or equivalent or graduate standing. Instructor: Reiter

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 663: Machine Learning in Adversarial Settings. Machine learning is being widely deployed in many aspects of our society. Our vision is that machine learning systems will become a new attack surface and attackers will exploit the vulnerabilities in machine learning algorithms and systems to subvert their security and privacy. In this course, we will discuss security and privacy attacks to machine learning systems and state-of-the-art defenses against them. Prerequisite: ECE 580 or 687D or Computer Science 371 or graduate standing. Instructor: N. Gong

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. Instructor: Laber

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: ECE 480 or ECE 580 or ECE 581 or ECE 682D or Mathematics 541 or Mathematics 730 or Mathematics 740. 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. Instructors: Barnett or Rudin

ECE 689: Advanced Topics in Deep Learning. Focus on advanced topics in deep learning, particularly methodological methods. This includes discriminative models (e.g., infinite/infinitesimal/physics-informed neural networks), generative models (normalizing flows, graphical models, Bayesian Neural Networks, non-parametric approaches), and topics on inference (e.g., exact and approximate inference methods). Assignments will provide an opportunity to implement techniques. Instructor: Tarokh

ECE 701S: Being a Successful ECE Masters Student. This seminar helps first-year Masters students prepare for success in both their academics and longer-term careers. Events/topics include community building, discussions of effective learning strategies, industry panels on career options, professional networking, academic integrity, and the breadth of resources available for students to deal with difficulties. 

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 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. 

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.