Fall 2023 Course Bulletin



**Shopping carts open March 27, 2023 and the first registration window is April 5, 2023.**


REGISTRATION CLEARANCE  -  Get info on clearance for registration HERE.

A VIRTUAL MEETING WITH THE DUS  -  SIGN UP HERE to meet virtually with the DUS for questions that cannot be emailed.

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.

Questions? Email dus@cs.duke.edu.


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.


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

  • 93 - History of Computing, Cryptography, and Robotic Devices | Reif
  • 101L - Introduction to Computer Science | Velasco
  • 110 - Information, Society & Culture: Bass Connections Gateway (cross ISS 110) | Giugni
  • 112S - Introduction to Digital Feminism (cross GSF 265S) | Gelfand
  • 201 - Data Structures and Algorithms | Astrachan
  • 210D - Introduction to Computer Systems | X. Yang
  • 216 - Everything Data | Stephens-Martinez
  • 230 - Discrete Math for Computer Science | O'Hanlon
  • 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) | Bletsch
  • 310 - Introduction to Operating Systems (cross ECE 353) | Lentz
  • 316D - Introduction to Database Systems | J. Yang
  • 321 - Graph Analysis with Matrix Computation | Sun
  • 330 - Introduction to the Design and Analysis of Algorithms | Agarwal, Fain
  • 333 - Algorithms in the Real World | Fain
  • 350L - Digital Systems (cross ECE 350L) | Board
  • 351 - Introduction to Computer Security | Reiter
  • 371 - Elements of Machine Learning | Tomasi
  • 391 - Independent Study | Departmental Staff
  • 393 - Research Independent Study | Departmental Staff
  • 434 - Topological Data Analysis (cross MATH 412) | Bendich
  • 445 - Intro to High Dimensional Data Analysis (cross MATH 465) | Cheng
  • 514 - Advanced Computer Networks (cross ECE 558) | Maggs
  • 521 - Graph Analysis with Matrix Computation | Sun
  • 526 - Introduction to Data Science (cross CBB 526) | Pei
  • 531D - Introduction to Algorithms | Munagala
  • 532 - Design and Analysis of Algorithms | Ge
  • 550 - Advanced Computer Architecture I (cross ECE 552) | Sorin
  • 555 - Probability for Electrical and Computer Engineers (cross ECE 555) | Trivedi
  • 574 - Elements of Deep Learning | Wiseman
  • 581 - Computer Security | Reiter
  • 653 - Human-Centered Computing (cross ECE 653) | Daily
  • 671D - Theory and Algorithms for Machine Learning (cross ECE 687D, STA 671D) | Rudin
  • 675D - Introduction to Deep Learning (cross ECE 685D) | Tarokh
  • 791  - Internship | Departmental Staff

Special Topics Courses

  • 290-01 - Qualitative and Quantitative Methods for Human-Centered Research (cross ISS 290) | Emami-Naeini
  • 390-01 - Full Stack IoT Systems (cross ECE 495) | Chen
  • 590-01 - Deep Generative Models and their Applications | Dhingra
  • 590-02 - Computational Complexity of Subgraph Isomorphism (cross MATH 590) | Rossman
  • 590-09 - Robot Studio (cross ME 555) | Chen


New! COMPSCI 247S Human Flourishing in a Digital Age

COMPSCI 247S - The digital age has enhanced human life in many ways: communication is faster, medicine is better, and our knowledge of the world is deeper. But it has also changed the nature of work, society, and our sense of well-being, and raised fundamental questions about the meaning and purpose of human life. This course asks what it means for humans to flourish in a digital age. It considers how new technologies through the centuries have impacted human flourishing—making certain aspects easier and others harder—and perhaps even altered our conception of what flourishing looks like. Our ultimate goal is to ponder together how we should practically live in today’s digital age. For sophomores only.

New! COMPSCI 582 Cryptography

COMPSCI 582 - Cryptography is an introduction to the design and analysis of cryptographic algorithms. Topics include basics of abstract algebra and number theory; symmetric and asymmetric encryption algorithms; cryptographic hash functions; message authentication codes; digital signature schemes; elliptic curve algorithms; side-channel attacks; and selected advanced topics. The prerequisite for this course is COMPSCI 230 or an equivalent.


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) → COMPSCI 207 Introduction to Mobile Application Development in iOS

COMPSCI 290 (old) → COMPSCI 345 Graphics Software Architecture

COMPSCI 290 (old) → COMPSCI 362 Introduction to Computational Imaging

COMPSCI 551 (old) → COMPSCI 581 Computer Security

COMPSCI 590 (old) → COMPSCI 526 Introduction to Data Science

COMPSCI 590 (old) → COMPSCI 574 Elements of Deep Learning


COMPSCI 260 - Introduction to Computational Genomics will be offered Spring 2024.


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 250D, you will not be able to take 210D. If you are an ECE major, you must take COMPSCI 250D.

2 )  For the CompSci majors and minor, only one CompSci course can be included whose primary purpose is not quantitative studies. Examples include COMPSCI 240, COMPSCI 247S, COMPSCI 255 and COMPSCI 342.

3 )  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.


Please use this form (Duke login required) to request a Permission Number for a course for Fall 2023. 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.