Prerequisites
- One of the following introductory COMPSCI courses or equivalent:
- COMPSCI 101L - Introduction to Computer Science
- COMPSCI 102 - Interdisciplinary Introduction to Computer Science
- COMPSCI 116 - Foundations of Data Science
- MATH 111L - Introductory Calculus I or equivalent
- MATH 112L - Introductory Calculus II or equivalent
Requirements
- COMPSCI 201 - Data Structures and Algorithms
- COMPSCI 230 - Discrete Math for Computer Science or 232 - Discrete Mathematics and Proofs see substitutions
- COMPSCI 210D - Introduction to Computer Systems or 250D - Computer Architecture
- COMPSCI 330 - Design & Analysis of Algorithms
- One of the following COMPSCI courses on systems:
- COMPSCI 310 - Introduction to Operating Systems or 510 - Advanced Operating Systems
- COMPSCI 316 - Introduction to Databases or 510 - Advanced Operating Systems
- COMPSCI 345 - Graphics Software Architecture
- COMPSCI 350 - Digital Systems or 550 - Advanced Computer Architecture
- COMPSCI 351 - Computer Security or 581 - Computer Security
- COMPSCI 356 - Computer Network Architecture or 514 - Computer Networks
- COMPSCI 512 - Distributed Systems
- Linear Algebra - MATH 216, 218, or 221
- Probability - STA 230, STA 240L, MATH 230, or MATH 340
BS five-elective requirement (more specific than BS)
Note: As with the BS, three out of the five electives must be COMPSCI courses.
AI/ML core (2 courses):
- One of COMPSCI 370* - Intro to Artificial Intelligence or COMPSCI 570 - Artificial Intelligence
*NOTE: COMPSCI 370 was renumbered from COMPSCI 270 in Fall 2019.
- One of COMPSCI 371 - Elements of Machine Learning or STAT 561/COMPSCI 571/ECE 682 - Probabilistic Machine Learning or COMPSCI 671**/STAT 671/ECE 687 - Machine Learning
**NOTE: COMPSCI 671 was renumbered from COMPSCI 571 in Spring 2019.
NOTE: If you take two courses under the same bullet above (e.g., both COMPSCI 371 and 671), the extra course can still be counted as the 5th elective for your BS major. However, we do NOT recommend taking both 370 and 570, because of the overlap in their contents.
Two courses must be drawn from the list below:
- One of COMPSCI 260 - Intro to Computational Genomics or 561 - Computational Sequence Biology
- COMPSCI 290 - Special Topics on the following subjects (some may not be offered regularly):
- Reinforcement Learning (Parr)
- Computational Imaging (Bartesaghi)
- Intro to Applied Machine Learning (Fain)
- One of COMPSCI 323 - Computational Microeconomics or COMPSCI 590 - Topics on Computational Microeconomics: Game Theory, Social Choice, and Mechanism Design (Conitzer)
- COMPSCI 362 - Intro to Computational Imaging, renumbered from COMPSCI 290 in Spring 2025
- COMPSCI 376 - Computational Approaches to Language Processing (cross LINGUIST 399), renumbered from COMPSCI 390 in Spring 2025
- COMPSCI 390 - Special Topics on the following subjects (some may not be offered regularly):
- Computational Approaches to Language Processing, cross LINGUIST 490 (Spring 2023 and Spring 2024) -- now renumbered as COMPSCI 376/LINGUIST 399
- Algorithmic Foundations of Data Science (Spring 2025)
- Intro to Applied Machine Learning (Spring 2025)
- COMPSCI 390A - Conversational AI - Build your own Chatbot (Taught Fall 2023 in Berlin as Duke Study Abroad)
- COMPSCI 474 - Data Science Competition, renumbered from COMPSCI 290 in Spring 2021
- COMPSCI 527 - Computer Vision
- COMPSCI 572 - Introduction to Natural Language Processing, renumbered from COMPSCI 590 in Fall 2022
- COMPSCI 590 - Special Topics on the following subjects (some may not be offered regularly):
- Algorithmic Aspects of Machine Learning (Ge)
- Data Science Concepts and Applications (Spring 2023)
- Elements of Deep Learning (Spring 2023)
- Generative Models (Dhingra, Fall 2023)
- Reinforcement Learning (Parr)
- Robot Learning (Boyuan Chen, Fall 2023)
- Theory for Machine Learning (Xingyuan Fang, Fall 2023)
- Generative AI in Protein Design (Chatterjee, Spring 2024)
- Theory of Deep Learning (Spring 2025)
- Generative Models: Foundations and Applications (Spring 2025)
- Systems for Machine Learning (Spring 2025)
- COMPSCI 675D/ECE 685D - Intro to Deep Learning
- STA 432/MATH 343 - Sta. Learning and Inference
- Note: The following are approved substitutes:
- ECE 480 - Applied Probability for Statistical Learning
- STA 250/MATH 342 - Statistics, if taken prior to Fall 2020
- Among these courses and STA 432/MATH 343, only one can be used to satisfy the BS requirements.
- Note: The following are approved substitutes:
- STA 325 - Machine Learning and Data Mining
- STA 360 - Bayesian Inference
- MATH 412 - Topological Data Analysis
- MATH 465/COMPSCI 445 - Introduction to High Dimensional Data Analysis
- MATH 466 - Math of Machine Learning
- MATH 541/STA 621 - Applied Stochastic Processes
NOTE: Other courses related to AI/ML not listed above may be used to satisfy this two-course requirement, but must be approved by the DUS.
Finally, one additional course is needed to complete the BS five-elective requirement.
- One elective at the 200-level or higher in COMPSCI (independent study
possible), MATH, STA, ECE, or a related area approved by the Director of
Undergraduate Studies