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.
New course COMPSCI 171CN - Learning How to Learn with AI | Instructor: Stephens-Martinez / This Constellation course will be offered during Fall 2025. It will explore how we can learn with generative AI (GenAI). GenAI is a general tool and, therefore, could be used to support learning. However, it may also hinder learning if used ineffectively. This course will explore these ideas by learning how humans learn and how GenAI works while applying that understanding by practicing learning. Prerequisites: None.
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. This course falls under the Social and Policy Oriented Computing courses category.
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. An introduction to computational complexity theory: Turing machines and computability, (non)deterministic polynomial time (classes P and NP), space complexity (classes L, NL, PSPACE), reductions and completeness, parallel and randomized computation, Boolean circuits, Kolmogorov complexity. Prerequisite: COMPSCI 230, 231, 232 or equivalent.
New course COMPSCI 372 - Introduction to Applied Machine Learning | Instructor: Fain / This course will be offered during Fall 2025. It was previously taught as COMPSCI 290 during Fall 2024 and Spring 2025. Introduction to machine learning with software and applications. Tabular data, computer vision, human language, reinforcement learning, deep learning with artificial neural networks, generative artificial intelligence such as large language models and image generation models. Prerequisite: COMPSCI 201 and MATH 111L or equivalent.
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 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.
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 FALL 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
- 171CN - Learning How to Learn with AI | Stephens-Martinez
- 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, Fouh
- 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
- 372 - Introduction to Applied Machine Learning | Fain
- 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
- 587 - Language-Based Security | D. Zhang
- 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*
- 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 & 390-05 (2 sections of the same course) Computer Game Design | Velasco
- 590-01 - Moral Artificial Intelligence Research | Fain
- 590-02 - Large Language Models | Dhingra
*Special Topics Course descriptions below
More About Special Topics Courses
Special Topics courses are new courses that we are trying out and eventually may give a permanent number.
COMPSCI 290D-001 - Cinema Perspectives on Artificial Intelligence | Instructor: O'Hanlon / In this course, we will use cinema as a lens on society’s view of artificial intelligence. We will discuss how this view has changed over time, and how it compares to the real-world status of AI. It will also include a unit on the usage of AI in creating cinema, and its accelerating impact on moviemaking. Throughout the course, we will be learning some of the real-life history of AIs and how a selection of modern systems work. Students should be prepared to watch one movie a week, and are expected to participate in class discussions. There will be four projects over the semester. Prerequisite: COMPSCI 101, 102 or 116; or COMPSCI 201; or equivalent.
COMPSCI 390-01 - Human Skills For Software Engineering | Instructor: Fouh / This course bridges the gap between software engineering and human skills. It teaches human skills associated with effective group collaboration and life satisfaction, including but not limited to emotional intelligence, empathy, resilience, conflict resolution, and stress management. Students enrolled in the course will apply those skills while using the Agile methodology to build -in group- a RESTful API backend application with Node.js and Express.js. Other software engineering skills include software design, testing, continuous integration, and deployment. Students will be able to hone their communication and critical thinking skills while participating in a debate league focusing on the Ethical and social impacts of computing. Prerequisite: COMPSCI 201
COMPSCI 390-02 - Modern Software Development and Deployment | Instructor: Duvall / Exploration of current trends in software development and deployment, such as LLMs, microservices, Cloud functions, web assembly, functional programming, containerization, and smart IDEs. Students will experiment with several technologies, compare different programming language features, and discuss their trade-offs and impact on the practice and process of developing software. Students will also consider the impact of software on society. Students will present topics and lead discussions during class. Students will work in teams to code a final project of their choice. Prerequisite: ECE or COMPSCI 300-level programming course (e.g., 307, 308, 310, 316, 345, 350, 351, 356, etc.) or equivalent.
COMPSCI 390-03 - Deep Connectomics | Instructor: Songdechakraiwut / This course provides an introduction to computational connectomics, with a focus on using deep learning techniques to study the brain's complex network of connections. Students will learn foundational concepts of connectomics, exploring both structural and functional connectomes to understand how different brain regions interact to support cognitive functions and behavior. The curriculum introduces key deep learning methods alongside traditional machine learning approaches to analyze connectome data and identify patterns in brain networks. Students will engage in hands-on activities to preprocess neuroimaging data, integrate multi-modal datasets, and apply basic neural network models to predict neurological outcomes. The course also addresses the broader context of connectome research, including its ethical implications and practical challenges, providing students with a well-rounded understanding of the field. Prerequisite: COMPSCI 201.
COMPSCI 390-04 & 390-05 (2 sections of the same course) - Computer Game Design | Instructor: Velasco / This course introduces students to the concepts and tools essential for developing modern real-time interactive video games. As an introductory course in video game design and production, we focus on both the creative design and technical aspects of game creation, covering everything from concept inception and prototyping to coding and playtesting. Prerequisites: COMPSCI 201and COMPSCI 210 or 250.
COMPSCI 590-01 - Moral Artificial Intelligence Research | Instructor: Fain / This course examines the impact of moral and ethical thought on research in algorithms, artificial intelligence, and machine learning. Central themes will include bias, fairness, justice, and alignment to human values and norms. Traditional classifiers, risk models, and clustering algorithms will be considered, as well as modern generative AI models for language and images. The class will read extensively in the interdisciplinary fairness and ethics for algorithms and AI research communities with a particular focus on the ACM FAccT and AAAI AIES conferences. Students will conduct original research projects designed to have the potential for publication in these same venues. Prerequisites for undergraduate students only: Should have some prior experience with machine learning such as a course like COMPSCI 371 or 671. Additional experience with independent research and at least one of the following will be helpful: deep learning, algorithms, ethics and human factors.
COMPSCI 590-02 - Large Language Models | Instructor: Dhingra / Seminar course covering recent advances in language modeling and large-scale training. The class will start by covering some of the fundamental concepts underlying statistical language models, but the majority of the course will cover modern techniques for building, training and deploying these models. The course will use a role-playing seminar format, where students will discuss 1-2 pre-selected papers in each lecture. Topics to be covered include: Transformers, statistical language modeling, data selection and preprocessing, pretraining, post-training, RLHF, DPO, scaling laws, evaluation and synthetic data generation. Prerequisites: COMPSCI 527 or COMPSCI 572 or COMPSCI 671 or COMPSCI 675
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 290 (old - previously taught Fall 2024 and Spring 2025) → COMPSCI 372 Introduction to Applied Machine Learning
COMPSCI 390 (old - previously taught Spring 2023 and Spring 2024) → COMPSCI 376 Computational Approaches to Language Processing (cross LINGUIST 399)
COMPSCI 390 (old - previously taught Fall 2022) → COMPSCI 335 Computational Complexity
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
COMPSCI 590 (old - previously taught Fall 2024) → COMPSCI 587 Language-Based Security
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.