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.
Prerequisites:
- One of the following introductory CompSci courses or equivalent:
- COMPSCI 101L (Introduction to Computer Science)
- COMPSCI 116 (Foundations of Data Science)
- MATH 111L (Introductory Calculus I) or equivalent
- MATH 112L (Introductory Calculus II) or equivalent
NOTE: MATH 111, MATH 112 and COMPSCI 101 -- Only these three courses can be taken S/U and count towards degree requirements for CompSci majors and minors. For other majors and minors you plan to have, you need to check if they will also allow these courses to count if taken S/U.
Requirements:
- COMPSCI 201 (Data Structures and Algorithms)
- COMPSCI 230 (Discrete Math for Computer Science) or 232 (Discrete Mathematics and Proofs)
- 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 345 (Graphics Software Architecture)
- COMPSCI 350 (Digital Systems, cross-listed as ECE 350) or 550 (Advanced Computer Architecture, cross-listed as ECE 552)
- COMPSCI 351 (Computer Security) or 581 (Computer Security)
- COMPSCI 356 (Computer Network Architecture) or 514 (Computer Networks and Distributed Systems)
- COMPSCI 512 (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, ECE, or a related area approved by the Director of Undergraduate Studies
- NOTE: Only one Social and Policy Oriented Computing course may count toward the elective requirement. Examples of Social and Policy Oriented Computing courses include COMPSCI 240, COMPSCI 247S, COMPSCI 255, COMPSCI 265S (was COMPSCI 112S), COMPSCI 342, and COMPSCI 290-01 Cinema Perspectives on AI (Spring 2025).
Course Substitutions
Possible course substitutions pre-approved by the Director of Undergraduate Studies.
Areas of Concentration
Students may elect to complete requirements in specified areas of concentration. Currently, there is one area of concentration in the BA Computer Science major: software engineering and design.
Concentrations are a pathway through our curriculum designed to guide students with interests and career goals in a particular area. They conform to the BA requirements above and do not require any additional courses, but they may require more specific choices of courses and sometimes additional prerequisites. They are not required for the BA major.
To declare one of these concentrations for your BA, please refer to the page on declaring or changing your major on T-Reqs. By successfully completing a pathway below, you will receive the corresponding concentration designation on your official transcript.
For additional information on areas of concentration, contact the Director of Undergraduate Studies in Computer Science (dus@cs.duke.edu).