Concentration in Software Systems - Academic Requirements
We have revised our BS degree requirements for the Software Systems 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 equivalent
- 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 310 OR COMPSCI 510
- COMPSCI 316 OR COMPSCI 516
- COMPSCI 345
- COMPSCI 350L OR COMPSCI 550
- COMPSCI 351 OR COMPSCI 581
- COMPSCI 356 OR COMPSCI 514
- COMPSCI 512
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
Concentration Electives (4 units)
4 COMPSCI courses - 200-level or higher, with QC code from the list below, with at most one course from each bullet. The course you take for the Systems requirement above cannot count as one of the four courses. 3 of the 4 courses MUST be COMPSCI courses.
- COMPSCI 307 - Software Design and Implementation OR COMPSCI 308 - Advanced Software Design and Implementation OR COMPSCI 290 - Mobile Software Design OR COMPSCI 290 - Web Application Development OR COMPSCI 290 - Server-side Web Applications OR COMPSCI 390 - Human Skills For Software Engineering
- COMPSCI 310 - Introduction to Operating Systems OR COMPSCI 510 - Advanced Operating Systems
- COMPSCI 316 - Introduction to Databases OR COMPSCI 516 - Database Systems
- COMPSCI 345 - Graphics Software Architecture OR COMPSCI 350 - Digital Systems OR COMPSCI 550 - Advanced Computer Architecture OR COMPSCI 590 - Computer Architecture and Hardware Acceleration OR ECE 565 Performance Optimization & Parallelism
- COMPSCI 351 - Computer Security OR COMPSCI 581 - Computer Security OR COMPSCI 290/590 Security OR COMPSCI 390 - Software Reverse Engineering OR ECE 560 - Computer and Info Security OR COMPSCI 586 Human-Centered Security and Privacy OR COMPSCI 590 - Language-Based Security
- COMPSCI 356 - Computer Network Architecture OR COMPSCI 514 - Computer Networks
- COMPSCI 408 - Delivering Software OR ECE 458 - Engineering Software for Maintainability OR ECE 564 - Mobile Application Development OR COMPSCI 390 - Modern Software Development and Deployment
- COMPSCI 512 - Distributed Systems OR COMPSCI 390 Distributed Systems
- COMPSCI 553 - Compiler Construction (cross ECE 553)
- COMPSCI 655 - Full-Stack IOT Systems
- one independent study course which has a substantial emphasis related to software systems within COMPSCI, MATH, STA, ECE, or a related area approved by the Director of Undergraduate Studies
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.