Fall 2026/Summer 2026 Course Bulletin

Upcoming Important Dates

  • Shopping carts opened for Summer 2026 on Monday, February 9, 2026 and the first registration window for Summer 2026 opened Monday, February 16, 2026.
  • Shopping carts open for Fall 2026 on Monday, March 23, 2026 and the first registration window for Fall 2026 opens Wednesday, April 1, 2026.
  • DEADLINE to apply for Graduation with Distinction for Spring 2026 - Wednesday, April 8, 2026
  • DEADLINE to submit application for Fall 2026 Independent Study course - Tuesday, September 1, 2026
  • DEADLINE to apply for Fall 2027 4+1 MSCS Undergraduate Program - Thursday, October 1, 2026

Quick Links

Registration

Need to register for classes? Need your hold removed? Check our Registration Logistics page first.

NOTE: Your CS faculty advisor is NOT who you should consult about Registration. We have a dedicated team to clear you for Registration, or you can meet with the DUS to be cleared. See above Registration section.

REGISTRATION CLEARANCE

Permission Number Requests

Please use the forms below (Duke login required) to request permission numbers for either Summer 2026 or Fall 2026 Computer Science courses. Permission numbers are generally only for bypassing pre-requisites and will place you on the waitlist if a course is full.

SUMMER 2026 PINS FALL 2026 PINS

Independent Study

Application deadline for Fall 2026 - Tuesday, September 1st

INDEPENDENT STUDY COURSES

Undergraduate General Advising

The DUS has drop-in hours for any questions you may have about majoring or minoring in Computer Science. You will also be assigned a Computer Science faculty advisor, but they only give general advice about going to graduate school or getting jobs.

Your CS faculty advisor DOES NOT clear you for Registration. See Registration section above.

IN-PERSON OR VIRTUAL DUS MEETING COMPSCI FACULTY ADVISOR REQUEST


Special Programs

4+1 MSCS (Five-Year) Undergrad Program

The new CS 4+1 MS program offers an opportunity for Duke undergraduates to earn an MS degree in CS (MSCS) with an extra (fifth) year at Duke. The MSCS degree is in addition to your undergraduate degree. This 4+1 program may be a good path for you if you are able to take two or more “extra” graduate courses as an undergraduate, beyond any courses you need for your undergraduate degree. The 4+1 MSCS program is suitable primarily for CS majors and CS minors.

Application deadline - Thursday, October 1st

Learn more

Graduation with Distinction (GWD) - Honors Program

Application deadline for Spring 2026 - Wednesday, April 8th

Learn more


CS Undergraduate Course Policy & Requirements

MATH 111, MATH 112 and COMPSCI 101 -- Only these three courses are accepted as S/U (if they 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.

For IDM majors, only these three courses -- MATH 111, MATH 112 and COMPSCI 101 -- are accepted as S/U (if they can be taken S/U) and count towards the CompSci part of your IDM. Check with your other major in your IDM to find out whether they will also allow these courses to count if taken S/U.

It is possible these courses may not be offered with the option to take them S/U.

  1. You are now able to use COMPSCI 210D in lieu of the COMPSCI 250D requirement. If you have already taken COMPSCI 250D, you will not be able to take 210D. If you are an ECE major, you must take COMPSCI 250D.
  2. You can now use COMPSCI 231D or COMPSCI 232 in lieu of the COMPSCI 230 requirement. If you are using any of the other substitutions in lieu of COMPSCI 230 or COMPSCI 231D or COMPSCI 232 as the prerequisite for a course--for example, MATH 371 and STA 230--you will need to request a permission number through the CS PIN request form. 

    NOTE: Dukehub does not recognize substitutions for prerequisites.

  3. For the CompSci majors and minor, only one CompSci course can be included which falls into the category of Social and Policy Oriented Computing courses. Examples of Social and Policy Oriented Computing courses include COMPSCI 240, COMPSCI 247S, COMPSCI 255, COMPSCI 265S, COMPSCI 342 and COMPSCI 290/290D-001 - Cinema Perspectives on Artificial Intelligence.
  4. For the CompSci BS and BA majors as well as the Software Systems and AI/Machine Learning concentrations, COMPSCI 345 - Graphics Software Architecture AND COMPSCI 512 - Distributed Systems now count as systems core classes.

COMPSCI Course Listings

SUMMER I

  • 250D - Computer Architecture | Bletsch

SUMMER 2

  • 210D - Introduction to Computer Systems | M. Singh

COMPSCI 101, 201, 210, 230, 250, and 330 are offered every semester.

  • 94 - Programming and Problem Solving | Rodger
  • 101L - Intro to Computer Science | Rodger
  • 174CNL - Digital Artifacts with Generative AI: Creating, Understanding, and Analyzing | Astrachan
  • 201 - Data Structures and Algorithms | Astrachan
  • 207 - Intro to Mobile Application Development in iOS | Fouh
  • 210D - Intro to Computer Systems | Chase and Velasco
  • 226 - User Research Methods in Human-Centered Computing (cross ECE 253, ISS 266) | Emami-Naeini
  • 230 - Discrete Math for Computer Science | Nemecek
  • 231D - Discrete Math with Functional Programming and Proofs: A Mathematical Intro to Computer Science | Donald
  • 232 - Discrete Mathematics and Proofs (cross MATH 242) | Akin
  • 240 - Race, Gender, Class, & Computing (cross GSF 242) | Washington
  • 247S - Human Flourishing in a Digital Age (cross ETHICS 247S) | Hartemink
  • 250D - Computer Architecture (cross ECE 250D) | Sorin
  • 265S - Digital Feminism (cross GSF 265S, CMAC 265S, I&E 265S, ISS 265S, SOCIOL 217S, VMS 286S) | Washington
  • 270L - Mathematics for Artificial Intelligence | Tomasi and Nemecek
  • 310 - Intro to Operating Systems (cross ECE 353) | Lentz
  • 316D - Intro to Database Systems | Roy
  • 321D - Graph Analysis with Matrix Computation (cross MATH 462) | Sun
  • 330 - Intro to the Design and Analysis of Algorithms | Steiger
  • 350L - Digital Systems (cross ECE 350L) | Bletsch
  • 354 - Foundations of Blockchains | Nayak
  • 356 - Computer Network Architecture (cross ECE 356) | Gong
  • 362 - Intro to Computational Imaging | Bartesaghi
  • 364 - Computer Game Design | Velasco
  • 371 - Elements of Machine Learning | Tomasi
  • 372-01 - Intro to Applied Machine Learning (cross ECE 386-01) | Pastorino
  • 372-02 - Intro to Applied Machine Learning (cross ECE 386-02) | Tantum
  • 375 - Intro to Natural Language Processing | Dhingra
  • 376 - Computational Approaches to Human Language (cross LINGUIST 399) | Osborne
  • 391 - Independent Study | Departmental Staff
  • 393 - Research Independent Study | Departmental Staff
  • 434 - Topological Data Analysis (cross MATH 412) | Departmental Staff
  • 445 - Intro to High Dimensional Data Analysis (cross MATH 465) | X. Cheng
  • 487 - Intro to Mathematical Logic (cross MATH 487) | Rossman
  • 507 - Mobile App Development for Programmers and Entrepreneurs | Fouh
  • 512 - Distributed Systems | D. Zhuo
  • 514 - Advanced Computer Networks (cross ECE 558) | X. Yang
  • 521D - Graph Analysis with Matrix Computation | Sun
  • 526 - Data Science (cross CBB 526, ECE 583) | Pei
  • 532 -  Design and Analysis of Algorithms | Agarwal
  • 535 - Algorithmic Game Theory (cross ECON 565, MATH 571) | Munagala
  • 550 - Advanced Computer Architecture I (cross ECE 552) | Wills
  • 570 - Artificial Intelligence | Parr
  • 575 - Intro to Natural Language Processing | Dhingra
  • 584 - Foundations of Blockchains | Nayak
  • 587 - Language-Based Security | D. Zhang
  • 638 - Graph Algorithms | Panigrahi
  • 655L - Full-Stack IoT Systems (cross ECE 655L) | T. Chen
  • 671D - Theory and Algorithms for Machine Learning (cross ECE 687D, STA 671D) | Rudin
  • 675D - Introduction to Deep Learning (cross ECE 685D) | Tarokh
  • 701S - Introduction for Graduate Students in Computer Science | TBA
  • 704 - Computer Science Masters Program Career Preparation and Development | TBA
  • 762 - High-Dimensional Statistics and Machine Learning (cross BIOSTAT 915-01, STA 915) | A. Zhang
  • 791  - Internship | TBA

Note: Some of the courses listed below, we are hoping to list with their permanent number. For now, they are noted below in brackets beside their corresponding special topics number.

  • 390-01 - Intro to Software Engineering | Fouh
  • 390-04 - AI-Copiloted Software Engineering Practicum | J. Yang and Steiger
  • 590-01 - Software Design & Engineering | Fouh
  • 590-02 - Building Intelligent Agents with Frontier Models (cross ECE 590-02) | S. Zhou
  • 590-04 - Robot Studio (cross ME 555-04) | B. Chen

See Special Topics Course descriptions below.

More About Special Topics Courses

Special Topics courses are new courses that we are trying out and may eventually give a permanent number.

COMPSCI 390-01 - Intro to Software Engineering | Instructor: Eric Fouh / This course will introduce students to the tools, processes, and techniques used by professional software engineers to create high-quality software, with a focus on software development and testing. Additionally, students will apply these in the creation of a software system. Prerequisite: COMPSCI 201.

COMPSCI 390-04 - AI-Copiloted Software Engineering Practicum | Instructor: Jun Yang and Alexander Steiger / Working in a software project team, students will develop a large, new software system, carrying the project through from requirements analysis to acceptance testing. AI-copiloting will be used throughout the process. Teams will make regular presentations on project planning, requirements, architecture, detailed design, quality assurance, and final product presentations, and reflections on the experience. Students will leave the course with a firsthand understanding of AI's impact on software development; they will have concrete experience with AI-copiloted development, and will have engaged in active reflection on this experience.

Prerequisites: COMPSCI  201, COMPSCI 210, and at least one CompSci course on systems and/or software development at 300-level or above. Prior experience with medium to large software development projects is expected.

COMPSCI 590-01 - Software Design & Engineering | Instructor: Eric Fouh / This course will familiarize students to the tools, processes, and techniques used by professional software engineers to design, create and deploy high-quality software, with a focus on software design, development and testing. Additionally, students will apply these in the creation of a software system. Recommended prerequisites for grad students: 1 year of programming.

COMPSCI 590-02 - Building Intelligent Agents with Frontier Models | Instructor: Shuyan Zhou / Graduate-seminar course. This course explores the foundations and recent progress in the design and development of AI agents powered by Large Language Models (LLMs). A central theme is the transformation of language models from passive generators into autonomous agents capable of pursuing goals, reasoning over time, and interacting with complex, dynamic environments. The curriculum covers core methodologies such as pretraining, scaling laws, and reinforcement learning, alongside specialized topics including tool use, computer and browser interaction, software engineering agents, and embodied control. Students will investigate advanced paradigms like multi-agent systems, world models, and self-improving agents while also addressing benchmarking, evaluation, safety, and the societal impact of automation. The course is delivered through a blend of lectures, student-led presentations, and a deep-dive research project. Cross ECE 590-02.

Recommended prerequisite: For undergraduate students: (COMPSCI 371 or COMPSCI 671) and (COMPSCI 572 or COMPSCI 574) For graduate students: COMPSCI 671 and (COMPSCI 572 or COMPSCI 574); or Linear algebra; Machine Learning; Deep Learning / Natural Language Processing; Calculus; Python.

COMPSCI 590-04 - Robot Studio | Instructor: Boyuan Chen / This is a hands-on studio course that will expose students to the entire robot design process “from A to Z”, including kinematics, industrial design, manufacturing, electronics, simulation, algorithms, and programming. The course project can be done individually or in pairs. The goal of the course is to design, build, and control an organic-looking four-legged robot, using up to twelve motors in total. Cross ME 555-04.


New and Updated Course Info

BRINGING BACK -- COMPSCI 207 - Intro to Mobile Application Development in iOS | Instructor: Fouh / Last taught in Spring 2024, this course will be taught again during Fall 2026. It explores the world of mobile applications development based on React Native and JavaScript programming language. The course covers fundamentals essential to understanding all aspects of app development from concept to deployment. Students will be required to present their project proposals and deliver a fully functional mobile application as the final project. Prerequisite: COMPSCI 201. Recommended: COMPSCI 250.
 
COMPSCI 216 - Everything Data | Instructor: Stephens-Martinez / Typically offered every semester, this course will NOT be offered Fall 2026. It will be offered again during Spring 2027.
 
COMPSCI 316D - Intro to Database Systems | Instructor: Roy / Usually a Fall only course, we offered it twice last academic year, Fall 2025 and Spring 2026. It is also being offered during Fall 2026. However, we are currently unsure whether it will be offered during Spring 2027.
 
Same courses, New structure -- COMPSCI 321D and COMPSCI 521D - Graph Analysis with Matrix Computation | Instructor: Sun / These courses, which were last taught in Fall 2025, will be offered again during Fall 2026. They have been enhanced to now include an accompanying discussion section.
 
BRINGING BACK -- COMPSCI 507 - Mobile App Development for Programmers and Entrepreneurs | Instructor: Fouh / This course explores the world of mobile applications and the evaluations strategies of mobile software companies. It covers the fundamentals essential to understanding all aspects of the mobile app development industry--from product concept and application development to product evaluation. Students will create mobile applications using React Native and JavaScript programming language. This course is NOT open to students who have taken COMPSCI 207.
 
Same course, New number -- COMPSCI 572 has been re-numbered to  COMPSCI 575 - Introduction to Natural Language Processing | Instructor: Dhingra / If you have already taken this course as COMPSCI 572, you may NOT take the re-numbered course.
COMPSCI 174CNL - Digital Artifacts with Generative AI: Creating, Understanding, and Analyzing | Instructor: Astrachan / For first-years only. This Constellation course will help students answer the question "How does generative AI help and hinder the process of creating, designing, and delivering different artifacts ranging from written to visual and culminating in the design, development, and delivery of web or mobile applications using generative AI?" There will be team-based and peer-evaluated processes for creating digital artifacts for all students. The process and the resulting artifacts will be understood, analyzed, and evaluated through legal, ethical, technical, and policy lenses. No programming experience required or anticipated.
 
COMPSCI 270L - Mathematics for Artificial Intelligence | Instructor: Tomasi / Can REPLACE MATH 218 requirement. Linear algebra; vector spaces; linear maps; orthogonality; singular-value decomposition; linear systems; eigenspaces; determinant; Schur decomposition. Calculus: gradient, Hessian, Jacobian matrix; back-propagation; Optimization: unconstrained minimization; Lagrange multipliers; gradient descent; Newton's method. Applications: principal component analysis; linear regression; rigid transformations; logistic regression classifier. Prerequisite: COMPSCI 101 or 201, and MATH 111L or 112L.
 
You could take COMPSCI 270L instead of MATH 218 for the CompSci BS major. This course plus a probability course like STAT 230 would prepare you to take an upperlevel ML course such as COMPSCI 371.
 
NOTE: You CANNOT take COMPSCI 270L if you have already taken, MATH 216, 218, or 221. However, it is okay to take this course if you took MATH 202.
 
NEW PERMANENT NUMBER, SAME COURSE - COMPSCI 364 - Computer Game Design | Instructor: Velasco / Previously taught as COMPSCI 390 in Spring 2025 and Fall 2025, this course has been made a permanent course. If you have already this course as the Special Topics course, you may NOT take the re-numbered course.
 

COMPSCI 375 - Natural Language Processing | Instructor: Dhingra / This new course will count as a general elective for the CompSci BS and AB degree requirements or as an elective for the AI/ML concentration. This is an introductory course in natural language processing, covering core computational problems involving human language, and both classical techniques such as bag-of-words, n-grams and and conditional random fields, as well as modern neural approaches such as word vectors, recurrent neural networks and transformers. We will also lay the foundation for understanding large language models and their scaling properties. Focus will be on key NLP tasks such as text classification, language modeling, machine translation and information retrieval. Prerequisite: COMPSCI 201 and familiarity with Python. It is recommended, though not required, to also have completed one of COMPSCI 270 or COMPSCI 371 or COMPSCI 372.

Most of these new courses have been taught previously as Special Topics courses (i.e., COMPSCI 290, 390, and/or 590) and now have permanent course numbers. If you have already taken them as a Special Topics course, you may NOT take the re-numbered course.

Old Course NumberNew Course Number
COMPSCI 290 (previously taught Fall 2024 and Spring 2025)COMPSCI 372 Intro to Applied Machine Learning
COMPSCI 390 (previously taught Fall 2022)COMPSCI 335 - Computational Complexity
COMPSCI 390COMPSCI 364 - Computer Game Design
COMPSCI 390 (previously taught Spring 2023 and Spring 2024)COMPSCI 376 - Computational Approaches to Language Processing (cross LINGUIST 399)
COMPSCI 572COMPSCI 575 - Intro to Natural Language Processing
COMPSCI 590COMPSCI 565 - Modern Optimization for Statistical Learning
COMPSCI 590 COMPSCI 574 - Elements of Deep Learning
COMPSCI 590 COMPSCI 585 - Secure Software Systems
COMPSCI 590 (previously taught Fall 2024)COMPSCI 587 - Language-Based Security

Questions? Email dus@cs.duke.edu.


Previous Course Bulletins

Spring 2026     Fall 2025     Spring 2025     Fall 2024     Spring 2024     Fall 2023     

Spring 2023     Fall 2022     Spring 2022     Fall 2021    Spring 2021     Fall 2020     

Spring 2020     Fall 2019     Spring 2019