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.
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
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
Graduation with Distinction (GWD) - Honors Program
Application deadline for Spring 2026 - Wednesday, April 8th
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.
- 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.
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.
- 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.
- 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
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 Number | New 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 390 | COMPSCI 364 - Computer Game Design |
| COMPSCI 390 (previously taught Spring 2023 and Spring 2024) | COMPSCI 376 - Computational Approaches to Language Processing (cross LINGUIST 399) |
| COMPSCI 572 | COMPSCI 575 - Intro to Natural Language Processing |
| COMPSCI 590 | COMPSCI 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