Beginning with the class that matriculated at Duke in 2019, the requirements below define the BA degree. The classes that matriculated in 2016, 2017, and 2018 can use either these new requirements or the previous requirements. To add, drop, or change a major, minor, certificate, or concentration, please complete the form on this page.
- 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
- COMPSCI 201 (Data Structures and Algorithms)
- COMPSCI 230 (Discrete Math for Computer Science)
- COMPSCI 210D (Introduction to Computer Systems) or 250D (Computer Architecture)
- COMPSCI 330 (Introduction to the 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 516 (Database Systems)
- COMPSCI 350 (Digital Systems, cross-listed as ECE 350) or 550 (Advanced Computer Architecture, cross-listed as ECE 552)
- COMPSCI 351 (Computer Security) or 551 (Advanced Computer Security)
- COMPSCI 356 (Computer Network Architecture) or 514 (Computer Networks and Distributed Systems)
- Three electives at 200-level or higher (beyond those counted towards the requirements above):
- One COMPSCI course that is not an independent study
- Two in COMPSCI (independent study possible), MATH, STA, or a related area approved by the Director of Undergraduate Studies
- Note: Only one course in the Social Analysis of CS category may count toward the elective requirement. The Social Analysis of CS category includes the courses COMPSCI 240 and COMPSCI 342.
Possible course substitutions pre-approved by the Director of Undergraduate Studies.