BA Requirements

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


  • 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, 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, and COMPSCI 342.

Course Substitutions

Possible course substitutions pre-approved by the Director of Undergraduate Studies.