Previous Requirements

Previous BA Degree requirements on this page include:

2012-2018 BA Degree requirements

Beginning with the class that matriculates at Duke in 2012 the requirements below define the BA degree. The classes of 2013, 2014, and 2015 can use either these new requirements or the previous requirements below. Pre-fall 2012 course numbers are shown in parenthesis.


COMPSCI 101L (06L) * Introduction to Computer Science
MATH 111L (31) * Introductory Calculus
MATH 112L (32) * Introductory Calculus II

*Or equivalent


COMPSCI 201 (100) Data Structures and Algorithms
COMPSCI 230 (102) Discrete Math for Computer Science
COMPSCI 250 (104) Computer Organization and Programming
COMPSCI 310 (110) Introduction to Operating Systems
COMPSCI 330 (130) Introduction to the Design & Analysis of Algorithms
Three Electives: One in computer science that is not an independent study. Two in either computer science (independent study possible), math, statistics, electrical and computer engineering, or a related area approved by the director of undergraduate studies. Electives must be 200-level or above.

Course Substitutions

Possible DUS-approved course substitutions can be found here

Before 2012 BA Degree requirements

These BA degree requirements are for students who matriculated prior to 2012. Current BA requirements can be found here.


COMPSCI 6 (or 6X or 6G)  Intro to Program Design & Analysis I  (or equivalent)
MATH 31  Introductory Calculus I 
MATH 32  Introductory Calculus II 

Major Requirements:

Core Courses:

COMPSCI 100 Program Design and Analysis II 
COMPSCI 104 Computer Organization and Programming 
COMPSCI 108 Software Design and Implementation 
COMPSCI 110 Introduction to Operating Systems 
COMPSCI 130 Introduction to the Design & Analysis of Algorithms 

One of the following three combinations:

(1) COMPSCI 102  Discrete Math for Computer Science 
(2) MATH 135  Probability
  MATH 124  Combinatorics
(3) MATH 135  Probability
  MATH 187 Introduction to Mathematical Logic 

Two Electives:

100- or 200-level Computer Science course (not an independent study course)
One Elective 100- or 200-level elective in Computer Science, Electrical Engineering, Mathematics, Statistics, or in a related area approved by the Director of Undergraduate Studies.