Do you:
- Have a solid background in mathematics and enjoy abstraction, systems, complexity, and algorithms?
- Have an interest in the theory, practice, art, and science of computer programming?
- Want to sharpen your knowledge of another field with the edge of formal thinking and computation?
Then a major or minor in computer science is for you. The CS major provides an educational foundation appropriate for a diverse range of careers. Computer science majors are in high demand in the areas of education, business, science, and technology.
Schedule a Visit
Department visits are preferably scheduled in conjunction with Duke Undergraduate Admissions visits.
Step One: See Duke Undergraduate Admissions for information on visiting the campus.
Step Two: After you have planned your visit to Duke, send an email to dus@cs.duke.edu which includes your name, email address, phone number, high school, computer experience, and preferred visit date(s).
For All Prospective CS Undergrads
For 1st Majors Who Have Been Admitted or Who Have Declared
Our Majors
Both the AB and BS degrees require a core of five courses for which the prerequisite is COMPSCI 101. Our COMPSCI 101 course is an introduction to Computer Science that uses programming in Python as a foundation for understanding Computer Science and the huge impact it has on society, science, and the world. No previous programming experience or familiarity with computer science is required of students enrolling in COMPSCI 101.
The five-course core is:
- COMPSCI 201 (Data Structures and Algorithms)
- COMPSCI 230 (Discrete Math for Computer Science)
- COMPSCI 250 (Computer Organization)
- COMPSCI 310 (Introduction to Systems)
- COMPSCI 330 (Design and Analysis of Algorithms).
COMPSCI 201 should be taken as the first course in the core. Subsequently the core courses have a paired sequence structure of (250, 310) --- 250 then 310; and (230, 330) --- 230 then 330. But the order in which these pairs is taken doesn't matter, so you can enroll in either 250 or 230 or both before taking the next course in each paired sequence.
For the BS degree students must take one statistics course at or above Stat 111; and one Math course from Math 202, Math 216 or Math 221.
After the core, the AB degree requires three electives and the BS degree requires five electives. For the AB one of the electives must be a course in Computer Science that is not an independent study course whereas for the BS degree there are three such electives. The other electives can be from Computer Science, Mathematics, Statistics, or courses approved by the Director of Undergraduate Studies. Such courses typically include courses that have a rich computational or quantitative component to them, students have had courses in Economics, Arts of the Moving Image, Engineering, Physics, and other departments approved as electives.
A First Course in Computer Science
Students interested in a background in Computer Science typically choose COMPSCI 101 as the first course. Students with credit via the AP exam can get credit for COMPSCI 101 and take COMPSCI 201. Students without AP credit, but with extensive experience in Computer Science, can talk to the Director of Undergraduate studies about whether taking COMPSCI 201 as the first course is appropriate. It's often possible for students with extensive experience to take COMPSCI 201 without getting credit for COMPSCI 101. Everyone is required to take CompSci 201.