IMPORTANT DATES AND LINKS for Undergraduate Students
**Shopping carts open for Summer 2025 on February 10, 2025 and registration for Summer 2025 opens February 17, 2025.**
**Shopping carts open for Fall 2025 on March 24, 2025 and the first registration window for Fall 2025 opens April 2, 2025.**
REGISTRATION CLEARANCE - Get info on clearance for registration HERE.
AN IN-PERSON OR VIRTUAL MEETING WITH THE DUS - Meeting times listed HERE to meet with the DUS.
COMPSCI ADVISOR - If you haven't submitted a preference for a CompSci advisor, or would like to change your CompSci advisor, please complete THIS FORM.
PERMISSION NUMBERS - To request a permission number, fill out THIS FORM for Summer 2025 or THIS FORM for Fall 2025.
New! MS-CS FIVE-YEAR (4+1) 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. Learn more.
Notes about CS Courses
For Summer Session 2, there are no CompSci courses planned.
COMPSCI 231D - Discrete Math with Functional Programming and Proofs: A Mathematical Intro to Computer Science | Instructor: Donald / This is a new number for a version of COMPSCI 230 which has been taught before, most recently in Fall 2023. Use the lens of functional programming to learn discrete math and to write mathematical proofs.
New course COMPSCI 232 - Discrete Mathematics and Proofs | Instructor: Slipper / This may be taken instead of COMPSCI 230. This course takes a theoretical approach to probability, directed graphs, and Markov chains. Students will engage with proofs (both understanding proofs and constructing their own proofs) to investigate topics including discrete distributions, conditional probability, graphs, directed graphs, and Markov chains. Students will apply Markov models to novel contexts. Offered in Spring 2025, it will be offered again during Fall 2025.
COMPSCI 260 - Introduction to Computational Genomics | Instructor: Majoros / Offered in Spring 2025, it will be offered again during Spring 2026.
COMPSCI 265S - Introduction to Digital Feminism (cross GSF 265S) | Instructor: Washington / This course will be offered during Fall 2025. It was formerly taught as COMPSCI 112S, most recently during Fall 2023.
COMPSCI 320D - Numerical Data Analysis and Methods | Instructor: Xiaobai Sun / This course introduces numerical analysis and methods that are fundamental and relevant to modern data analysis. Students will get familiar with (1) the basic concepts and methods for data fitting or matching with linear and nonlinear models of continuous variables, (2) the basic numerical solution approaches (direct or iterative) for model solutions (or model-based simulation) and their analysis in approximation and stability, and (3) get numerical computation experience. Prerequisites: Math 218, 216 or 221; Math 202, Math 212 or Math 219; and CompSci 101, CompSci 201 or equivalent.
COMPSCI 334 - Mathematical Foundations of Computer Science, typically offered during the Spring semester, was NOT offered during Spring 2025, but was instead offered Fall 2024, and will next be offered again during Spring 2026.
New course COMPSCI 335 - Computational Complexity | Instructor: Rossman / This course will be offered during Fall 2025. It was formerly taught as COMPSCI 390 in Fall 2022.
COMPSCI 376 - Computational Approaches to Language Processing (cross LINGUIST 399) | Instructor: Osborne / This course was offered during Spring 2025. It was formerly taught as COMPSCI 390-01/LINGUIST 490-01 during Spring 2024.
Brought back COMPSCI 408 - Delivering Software: From Concept to Client | Instructor: Duvall / In CompSci 408, you will gain project development skills that parallel real-world processes by working in teams on a software app for the entire semester with an actual client who expects to use it after the course ends. Working with your client, you will choose which platform and programming technology best meets the project's goals, so the exact programming skills expected vary. You will meet with your client regularly to get feedback on how well it meets users' goals and determine feature priorities, as they may change regularly.
S/U Course Credit
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.
Reminder: Changes to Major/Minor Requirements
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. 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 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.
LIST OF COMPSCI COURSES FOR SUMMER 2025
SUMMER I
- 230 - Discrete Math for Computer Science | Chao
- 250D - Computer Architecture | Bletsch
- 330 - Introduction to the Design and Analysis of Algorithms | Steiger
- 791 - Internship | Ge
SUMMER II
- There are no CompSci courses planned for Summer Session 2.
LIST OF COMPSCI COURSES FOR SPRING 2025
COMPSCI 101, 201, 210, 230, 250, and 330 are offered every semester.
- 93 - History of Computing, Cryptography, and Robotic Devices | Reif
- 94 - Programming and Problem Solving | Rodger
- 101L - Introduction to Computer Science | Rodger (001), Steiger (002)
- 110 - Information, Society and Culture: Bass Connections Gateway (cross ISS 110) | Giugni
- 201 - Data Structures and Algorithms | Astrachan (001), O'Hanlon (002)
- 210D - Introduction to Computer Systems | Chase
- 216 - Everything Data | Stephens-Martinez
- 226 - User Research Methods in Human-Centered Computing | Emami-Naeini
- 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 - introduction to Digital Feminism (cross GSF 265S, CMAC 265S, I&E 265S, ISS 265S, SOCIOL 217S, VMS 286S) | Washington
- 310 - Introduction to Operating Systems (cross ECE 353) | Zhuo
- 316D - Introduction to Database Systems | J. Yang
- 321 - Graph Analysis with Matrix Computation | Sun
- 330 - Introduction to the Design and Analysis of Algorithms | Munagala
- 335 - Complexity Theory | Rossman
- 350L - Digital Systems (cross ECE 350L) | Bletsch
- 351 - Introduction to Computer Security | Reiter
- 371 - Elements of Machine Learning | Tomasi
- 376 - Computational Approaches to Human Language (cross LINGUIST 399) | Osborne
- 391 - Independent Study | Departmental Staff
- 393 - Research Independent Study | Departmental Staff
- 408 - Delivering Software: From Concept to Client | Duvall
- 434 - Topological Data Analysis (cross MATH 412) | L. Zhou
- 445 - Introduction to High Dimensional Data Analysis (cross MATH 465) | Guelen
- 510 - Operating Systems | Lentz
- 512 - Distributed Systems | Maggs
- 514 - Advanced Computer Networks | X. Yang
- 521 - Graph Analysis with Matrix Computation | Sun
- 532 - Design and Analysis of Algorithms | Panigrahi
- 550 - Advance Computer Architecture I | Wills
- 555 - Probability for Electrical and Computer Engineers (cross ECE 555) | Trivedi
- 562 - High-Resolution Cryo-Electron Microscopy Image Analysis | Bartesaghi
- 570 - Artificial Intelligence | Parr
- 581 - Computer Security | Reiter
- 634 - Geometric Algorithms | Agarwal
- 653 - Human-Centered Computing (cross ECE 653) | Daily
- 655L - Full-Stack IoT Systems (cross ECE 655L) | T. Chen
- 671D - Theory and Algorithms for Machine Learning | Rudin
- 675D - Introduction to Deep Learning (cross ECE 685D) | Tarokh
- 701S - Introduction for Graduate Students in Computer Science | Ge
- 704 - Computer Science Masters Program Career Preparation and Development | Peters
- 791 - Internship | Ge
Special Topics Courses*
- 190-01 - Learning how to Learn with AI | Stephens-Martinez
- 290-01 - Introduction to Applied Machine Learning | Fain
- 290D-001 - Cinema Perspectives on Artificial Intelligence | O'Hanlon
- 390-01 - Human Skills For Software Engineering | Fouh
- 390-02 - Modern Software Development and Deployment | Duvall
- 390-03 - Deep Connectomics | Songdechakraiwut
- 390-04 - Computer Game Design | Velasco
- 390-05 - Computer Game Design | Velasco
- 590-01 - Moral Artificial Intelligence Research | Fain
- 590-02 - Large Language Models | Dhingra
- 590-03 - Language-Based Security | Zhang
*Special Topics Course descriptions below
More About Special Topics Courses
Course Descriptions Coming Soon...
Special Topics courses are new courses that we are trying out and eventually may give a permanent number.
COMPSCI 190-01 -
COMPSCI 290-01 -
COMPSCI 290D-001 -
COMPSCI 390-01 -
COMPSCI 390-02 -
COMPSCI 390-03 -
COMPSCI 390-04 -
COMPSCI 390-05 -
COMPSCI 590-02 -
COMPSCI 590-03 -
New! RE-NUMBERED COURSES
These new courses, which have all been taught previously as Special Topics courses (i.e., CompSci 290 and/or 590), now have permanent course numbers. If you have already taken them as a Special Topics course, you may not take the re-numbered course.
COMPSCI 390 (old - previously taught Spring 2023 and Spring 2024) → COMPSCI 376 Computational Approaches to Language Processing (cross LINGUIST 399)
COMPSCI 590 (old) → COMPSCI 526 Introduction to Data Science
COMPSCI 590 (old) → COMPSCI 535 Algorithmic Game Theory
COMPSCI 590 (old) → COMPSCI 565 Modern Optimization for Statistical Learning
COMPSCI 590 (old) → COMPSCI 574 Elements of Deep Learning
COMPSCI 590 (old - previously taught Fall 2022) → COMPSCI 584 Foundations of Blockchains
COMPSCI 590 (old) → COMPSCI 585 Secure Software Systems
COMPSCI 590 (old) → COMPSCI 586 Human-Centered Security and Privacy
PERMISSION NUMBER REQUESTS FOR SUMMER 2025/FALL 2025
Please use the following forms (Duke login required) to request a Permission Number for a COMPSCI course for Summer 2025 and/or for Fall 2025. This permission number is generally only for bypassing pre-requisites, and will place you on the waitlist if a course is full.
Questions? Email dus@cs.duke.edu.