Concentration in Software Engineering and Design (BS) - Academic Requirements
We have revised our BS degree requirements for the Software Engineering and Design Concentration to include AI as part of the core, including two AI courses--COMPSCI 270 and an AI core course. First-year students who matriculate at Duke in Fall 2026 will be subject to these major changes.
Students who matriculated at Duke prior to Fall 2026 are grandfathered into the old concentration requirements HERE.
Students must successfully complete at least 15 required units to finish the Computer Science major. Degree candidates must successfully complete at least 34 units total to earn the Bachelor of Science degree.
Prerequisite Courses (4 units) from the following:
- Introductory Course - COMPSCI 101L* OR COMPSCI 102L OR COMPSCI 116 OR eqivalent
- Math Requirement - MATH 111L & MATH 112L OR MATH 21 & MATH 22 / Other equivalents may also count.
- Math/Stats Requirement - one of the following:
- STA 230/MATH 230
- STA 230S/MATH 230S
- STA231/MATH 340
- MATH 231
- STA 240L
*NOTE: We will waive the COMPSCI 101L requirement, if you successfully take and complete COMPSCI 201.
Core Courses (5 units) from the following:
- COMPSCI 201
- COMPSCI 230 OR COMPSCI 231D OR COMPSCI 232 see substitutions
- COMPSCI 210D OR COMPSCI 250D
- COMPSCI 270 OR two courses:
- one of MATH 202, MATH 212 or MATH 219
- AND one of MATH 216, MATH 218 or MATH 221
- COMPSCI 330
Systems Course (1 unit) - one of the following:
- COMPSCI 316
- COMPSCI 516
Artificial Intelligence Course (1 unit) - one of the following:
- COMPSCI 370 OR COMPSCI 570
- COMPSCI 371 OR COMPSCI 671
- COMPSCI 526
- COMPSCI 527
- COMPSCI 575
Software Engineering and Design Elective (1 unit) - one of the following:
- COMPSCI 307 - Software Design and Implementation
- COMPSCI 308 - Advanced Software Design and Implementation
- COMPSCI 390 - Special Topics on the following subjects (some may not be offered regularly):
- Intro to Software Engineering (Fall 2026)
- COMPSCI 590 - Special Topics on the following subjects (some may not be offered regularly):
- Software Design and Engineering (Fall 2026)
Web, App/Mobile, Human-Centered Engineering and Design Elective (1 unit) - one of the following:
- COMPSCI 207 - Introduction to Mobile Application Development in iOS
- COMPSCI 226 - User Research Methods
- COMPSCI 364 - Computer Game Design
- COMPSCI 390 - Special Topics on the following subjects (some may not be offered regularly):
- Server-Side Web
- COMPSCI 408 - Delivering Software OR COMPSCI 390 - Modern Software Development and Deployment
- COMPSCI 507 - Mobile App Development
- COMPSCI 586 - Human Centered Security and Privacy
- COMPSCI 590 - Advanced Web Application Development
- ECE 653 - Human-Centered Computing
Software Systems Elective (1 unit) - one of the following:
- COMPSCI 310 - Introduction to Operating Systems OR COMPSCI 510 - Advanced Operating Systems
- COMPSCI 345 - Graphics Software Architecture OR COMPSCI 350 - Digital Systems (cross ECE 350) OR COMPSCI 550 - Advanced Computer Architecture (cross ECE 552) OR COMPSCI 590 - Computer Architecture and Hardware Acceleration
- COMPSCI 351 - Computer Security OR COMPSCI 581 - Computer Security OR COMPSCI 390 - Software Reverse Engineering
- COMPSCI 356 - Computer Network Architecture OR COMPSCI 514 - Computer Networks
- COMPSCI 512 - Distributed Systems
Concentration Elective (1 unit)
1 elective from any of the three lists ABOVE OR an independent study course which has a substantial emphasis on software engineering and design within COMPSCI, MATH, STA, ECE, or a related area approved by the Director of Undergraduate Studies (1 unit)
A comprehensive list of elective courses is available to students in Stellic, the degree audit system.
To add, drop, or change a concentration, complete the Academic Plan Change form.
Eligibility for specific substitutions may vary by academic plan. A consultation with the Director of Undergraduate Studies is required before final approval can be granted to receive credit for a substitution.
See the CS Course Substitutions Guide for possible course substitutions which have been pre-approved by the DUS.
Departmental Graduation with Distinction
A program for Graduation with Distinction (GWD) in Computer Science is available. Candidates for a degree with Distinction, High Distinction, or Highest Distinction must apply to the Director of Undergraduate Studies (DUS) and meet certain criteria.
See the CS Graduation with Distinction webpage for additional information, resources, and how to apply.