Minors
There’s Nothing ‘Minor’ About AI.
Now more than ever, writing savvy code and understanding the abilities and limits of AI touches just about every industry there is. And we’re not hoarding our secrets. To empower a broad range of Duke graduates with the skills that today’s top employers are looking for, we offer the following invaluable minors:
- Electrical & Computer Engineering
- Machine Learning & AI
- Software Engineering
While the latter two are technically available to ECE majors, a transcriptable concentration in machine learning or a transcriptable concentration in software engineering is likely a better option. Any of the above can be an excellent complement to another major and provide new layers of knowledge and expertise.
Minor in Electrical & Computer Engineering
The minor in ECE requires a minimum of five technical courses—three from a set of core courses and two upper-level ECE courses. Interested in pursuing a Minor in ECE? Discuss your plan of study with the ECE Director of Undergraduate Studies.
-
Choose 3 from among:
- ECE 110L Fundamentals of ECE
- ECE 230L Microelectronic Devices & Circuits
- 250D Computer Architecture
- 270DL Fields & Waves
- 280L Signals & Systems
Important Notes
- ECE 110L is a prerequisite for the other core courses
- Students with credit for any of these courses (e.g., exact or equivalent course taken to satisfy a requirement of their major(s)) may substitute additional upper-level ECE courses. The ECE Director of Undergraduate Studies must approve such exceptions.
-
Choose two ECE courses at or above the 300-level.
- At most, one ECE Independent Study (supervised by an ECE faculty member) can be used toward satisfying this requirement
- At most, one 300-level (or above) course cross-listed between ECE and the major department can be used toward satisfying this requirement. This course may not be double-counted toward the major
Important Notes
- Courses that are used to fulfill the student’s major(s) may not be double-counted toward the minor
- ECE courses with content substantially equivalent to courses in the student’s major(s) may not be counted toward the minor
- It is expected that a student pursuing a minor in ECE will satisfy all pre-requisites for each course selected for their minor program. This will typically involve completion of courses in Math, Physics and/or Computer Science, which are pre-requisites for many of the core ECE courses
Minor in Machine Learning & Artificial Intelligence
The Minor in Machine Learning & Artificial Intelligence requires the completion of a minimum of five (5) technical courses.
This education offering is an outgrowth of Duke ECE’s global research leadership in AI and machine learning.
To provide sufficient foundational breadth, three (3) courses are drawn from identified core areas fundamental to the discipline. Students tailor their course of study through selecting two (2) upper-level (300-level or above) focus courses.
-
Three (3) Required:
- Intermediate Statistics/Probability: ECE 480 Applied Probability for Statistical Learning
- Introductory Machine Learning & Artificial Intelligence: ECE 580 Introduction to Machine Learning
- Intermediate Machine Learning & Artificial Intelligence (choose one):
- ECE 682D/CS 571D/Stat 561D
- ECE 687D/CS 671D/STA 671D
-
Choose two (2):
- ECE 585: Signal Detection and Extraction Theory
- ECE 588: Image & Video Processing
- ECE 661: Computer Engineering Machine Learning & Deep Neural Networks
- ECE 662: Machine Learning Acceleration & Neuromorphic Computing
- ECE 684: Natural Language Processing
- ECE 685D: Deep Learning
- CompSci 527: Computer Vision
- Math 412: Topological Data Analysis
- Math 465/CompSci 445: Introduction to High Dimensional Data Analysis
- Stat 340: Introduction to Statistical Decision Analysis
- Stat 360: Bayesian Inference and Modern Statistical Methods
- ME 555 (F23): Robot Learning
- BME 590 (F23): Machine Learning in Pharmacology
- ECE 590: Special Topics courses on machine learning and artificial intelligence topics (with DUS approval)
-
It is expected that a student pursuing a Minor in Machine Learning & Artificial Intelligence will satisfy all prerequisites for each course selected for their minor program.
This will typically involve completion of courses in Math, Statistics, and Computer Science, which are pre-requisites for the fundamental and elective courses.
Specifically, the following prerequisite knowledge is assumed:
- Mid-level programming course (e.g., CS 201)
- Linear algebra (e.g., Math 216, 218, 218D-2, 221)
- Introductory statistics (e.g., EGR 238L, ECE 380, ECE 555, Stat/Math 230, Stat 240L)
Exceptions may be granted by the Director of Undergraduate Studies in ECE, for example, if a student’s preparation is deemed equivalent to the pre-requisite.
-
- Courses that are used to fulfill the student’s major(s) may not be double-counted toward the minor
- Courses with content substantially equivalent to courses in the student’s major(s) may not be counted toward the minor
- Students with credit for any of the Fundamental Courses (e.g., exact or equivalent course taken to satisfy a requirement of the major(s)) may substitute additional Upper-Level Focus courses from the approved list above. The Director of Undergraduate Studies in ECE must approve such exceptions
- At most, one Independent Study course (approved the DUS in ECE) may be used to fulfill one of the upper-level elective requirements
Minor in Software Engineering
The Minor in Software Engineering requires the completion of a minimum of five (5) technical courses.
To provide sufficient foundational breadth, three (3) courses are drawn from identified core areas fundamental to the discipline. Students tailor their course of study through selecting two (2) upper-level (300-level or above) focus courses.
-
Three (3) Required:
- Software Engineering Minor Fundamental #1 (Software Engineering Foundation):
- ECE 351: Software Engineering (Prof. Rahbar) (Fall 2025 offering is ECE 495.03)
- Software Engineering Minor Fundamental #2 (HCI/UX course): One of
- ECE 653/CS 653: Human-Centered Computing
- ECE 657/CS 586: Usable Security and Privacy
- ECE 590: Cross Platform Mobile Application Development
- ECE 490/495/496/590: Special Topic courses on HCI/UX (DUS approved)
- Software Engineering Minor Fundamental #3 (Systems course): One of
- ECE 353/CS 310: Introduction to Operating Systems
- ECE 356/CS 356: Computer Network Architecture
- ECE 553/CS 553: Compiler Construction
- ECE 560: Computer and Information Security
- ECE 566: Enterprise Storage Architecture
- Software Engineering Minor Fundamental #1 (Software Engineering Foundation):
-
Two (2) Electives:
- Software Engineering Minor Upper-Level Elective #1 (Software engr-focused course): One of (300+)
- Any course not already taken from requirement #2
- Any course not already taken from requirement #3
- ECE 458: Engineering Software for Maintainability
- ECE 568: Engineering Robust Server Software
- ECE 661: Computer Engineering Machine Learning and Deep Neural Nets
- ECE 490/495/496/590: Special Topic courses on Software Engineering (with DUS approval)
- Either COMPSCI 307: Software Design and Implementation or COMPSCI 308: Advanced Software Design and Implementation (only one of these can count towards the five courses; neither is required)
- COMPSCI 316: Introduction to Database Systems
- COMPSCI 330: Introduction to the Design and Analysis of Algorithms
- COMPSCI 333: Algorithms in the Real World
- COMPSCI 351: Introduction to Computer Security (can’t overlap ECE 560)
- COMPSCI 408: Delivering Software: From Concept to Client
- Software Engineering Minor Upper-Level Elective #1 (Software engr-focused course): One of (300+)
- Any course from requirement #2 (not already taken)
- Any course from requirement #3 (not already taken)
- Any course from requirement #4 (not already taken; as noted above, either CS 307 or CS 308 may be taken for the minor but not both; neither is requierd)
- Software Engineering Minor Upper-Level Elective #1 (Software engr-focused course): One of (300+)
-
It is expected that a student pursuing a Minor in Software Engineering will satisfy all prerequisites for each course selected for their minor program.
This will typically involve completion of courses in Math, Statistics, and Computer Science, which are pre-requisites for the fundamental and elective courses.
Specifically, the following prerequisite knowledge is assumed:
- Mid-level programming course (e.g., CS 201)
- Linear algebra (e.g., Math 216, 218, 218D-2, 221)
- Introductory statistics (e.g., EGR 238L, ECE 380, ECE 555, Stat/Math 230, Stat 240L)
Exceptions may be granted by the Director of Undergraduate Studies in ECE, for example, if a student’s preparation is deemed equivalent to the pre-requisite.
-
- Courses that are used to fulfill the student’s major(s) may not be double-counted toward the minor
- Courses with content substantially equivalent to courses in the student’s major(s) may not be counted toward the minor
- Students with credit for any of the Fundamental Courses (e.g., exact or equivalent course taken to satisfy a requirement of the major(s)) may substitute additional Upper-Level Focus courses from the approved list above. The Director of Undergraduate Studies in ECE must approve such exceptions
- At most, one Independent Study course (approved the DUS in ECE) may be used to fulfill one of the upper-level elective requirements

Michael Richard Gustafson
ECE Director of Undergraduate Studies, Associate Professor of the Practice

Rabih Younes
Associate Director of Undergraduate Studies, Associate Professor of the Practice in the Department of ECE