BS Requirements

Beginning with the class that matriculated at Duke in 2019, the requirements below define the BS major. To add, drop, or change a major, minor, certificate, or concentration, please complete the form on this page.

Note: Students graduating in Spring 2019 or later can (optionally) pursue specific concentrations within the BS degree: Software SystemsData Science, and AI and ML (see below for further information).


  • 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)  see substitutions
  • COMPSCI 210D (Introduction to Computer Systems) or 250D (Computer Architecture) - if you are an ECE major, you must must take COMPSCI 250.
  • 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 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)
    • COMPSCI 512 (Distributed Systems)
  • Two courses in MATH/STA:
    • One STA course at or above STA 111**, including the cross-listed MATH 230
    • One of MATH 202, 216, 218, or 221***
  • Five electives at 200-level or higher (beyond those counted towards the requirements above):
    • Three COMPSCI courses that are not independent study courses
    • 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.

* Both courses have been offered as a 290 and 590 course with the same name, and will satisfy this requirement. 

** STA 111 will not be offered after Summer 2020. We recommend you take STA 199 or higher.

***MATH 212 does not count towards this requirement, but can count towards an elective.

Course Substitutions

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

Concentrations in the BS

These concentrations are pathways through our curriculum designed to guide students with interests and career goals in these areas. They conform to the BS 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 BS major.

To declare one of these concentrations for your BS, 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.