Fall 2021 Course Bulletin

Sign up here to virtually meet with the DUS if you have questions

To Request a Permission Number, Fill out this Form

Get info on course registration logistics here

Have a question? email dus@cs.duke.edu with your question.


The University has pushed back the timeline for registering for Fall 2021 courses. Bookbagging will be available in June 28, and registration will start July 7, 2021.

At this time we only have the list of courses that we are planning on teaching in the Fall. Time and locations of each course will not be available to you until June 28 in DukeHub.

We are offering registration clearance starting July 1st. Get info on clearance for registration HERE

If you haven't submitted a preference for an advisor, or would like to change your advisor, please complete this form.


Projected List of CompSci Courses For Fall 2021

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

  • 93 - History of Computing, Cryptography, and Robotic Devices (Reif)
  • 94 - Programming/Problem Solving (Rodger)
  • 101 - Intro to Computer Science (Washington)
  • 116 - Foundations of Data Science (Stephens-Martinez)
  • 201 - Data Structures and Algorithms (Astrachan)
  • 207 - Intro to Mobile Application Development (Thomas)  cancelled for Fall 2021
  • 210D - Introduction to Computer Systems (Lebeck)
  • 216 - Everything Data (Stephens-Martinez)
  • 230 - Discrete Math for CompSci (Donald)
  • 240 - Race, Gender, Class, & Computing (Washington)
  • 250 - Computer Architecture (Bletsch)
  • 260 - Intro to Computational Genomics (Hartemink) this course is no longer being offered Fall 2021. It will be taught in Spring 2022
  • 307D - Software Design and Implementation (Duvall)
  • 310 - Intro to Operating Systems (D. Zhuo), cross ECE 353
  • 316 - Intro to Database Systems (J. Yang)
  • 330 - Design & Analysis of Algorithms (Munagala)
  • 333 - Algorithms in the Real World (Fain)
  • 350 - Digital Systems, cross ECE 350
  • 351 - Computer Security (Nayak & Reiter)
  • 356 - Computer Network Architecture (Gorlatova), cross ECE 356
  • 371D - Machine Learning (Tomasi)
  • 434 - Topological Data Analysis (Wagner), cross MATH 412
  • 445 - Introduction to High Dimensional Data Analysis, cross MATH 465
  • 514 - Advanced Computer Networks (Maggs), cross ECE 558
  • 550 - Advanced Computer Architecture I (Sorin)
  • 531 - Introduction to Algorithms (Pankaj)
  • 532 - Design and Analysis of Algorithms (Ge)
  • 555 - Probability for Electrical and Computer Engineers (Trivedi), cross ECE 555
  • 570 - Artificial Intelligence (Conitzer)
  • 671D - Machine Learning (Rudin), cross ECE 687D/STA 671D
  • 675D - Introduction to Deep Learning (Tarokh), cross ECE 685D

Special Topics Courses

  • 290.01 Great Ideas in Computer Science (Panigrahi)
  • 290.02 Intro to Computational Imaging (Bartesaghi)
  • 390.01 Collaborative Projects - From Concept to Delivery (Fain & Duvall)
  • 590.01 Secure Software Systems (Lentz)
  • 590.02 Cryptocurrency & Cryptography (Zhang)
  • 590.03 Intro to Natural Language Processing (Dhingra & Wiseman)
  • 590.04 Graph- Matrix Theory Computations & Applications (X. Sun)
  • 590.05 Consensus Protocols for Blockchains (Nayak)
  • 590.06 Algorithmic Privacy & Fairness (Machanavajjhala))
  • 590.07 Mobile App Development Business Models (Thomas)
  • 590.08 Cloud-based Security for Internet Services (X. Yang), cross ECE
  • 590.09 Human and Computer Interaction (Daily)
  • 590.10 Analysis of Boolean Functions (Rossman), cross MATH
  • 590.11 Reinforcement Learning (Parr)

New Faculty starting this Fall 2021 semester!

We welcome new faculty to the department who will all be teaching this Fall. Check out their information on their website:


New Course COMPSCI 210D Introduction to Computer Systems

COMPSCI 210D, Introduction to Computer Systems, provides an alternative to COMPSCI/ECE 250 for Trinity CS majors; taking either course will satisfy the CS major requirement. Pratt students are still required to take 250. The two courses share the general goal of introducing how programs execute and store information, and cover some of the same topics.  However, COMPSCI 210D focuses on software systems aspects from a programmer's perspective whereas COMPSCI 250D focuses on hardware and processor design aspects.  COMPSCI 210D introduces concepts that are broadly applicable across the many subfields of computer systems (big ideas in systems), with specific instances demonstrated through labs and assignments in the class.

COMPSCI 210D will be taught starting Fall 2021. You will able to use either 210D or 250D to satisfy the major requirement. If you have already taken 250D, you will not be able to take 210D.


Renumbering COMPSCI 190 Race, Gender, Class, & Computing (old) → COMPSCI 240 (current)

Nicki Washington's course on Race, Gender, Class & Computing has a permanent course number, COMPSCI 240. The Computer Science Department has approved the course COMPSCI 240 as a second Computer Science course with an SS tag. If you already took COMPSCI 240 as COMPSCI 190 this past year, we do plan to count that course as a CompSci 200 level course.

Note: Only one course in the "Social Analysis of CS" category can count for the major or minor. The "Social Analysis of CS" category includes COMPSCI 240 and COMPSCI 342


Changes to Major/Minor requirements

1) You will now be 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, we now have a new category of courses called "Social Analysis of CS". Only one course in this category can count as an elective for the COMPSCI majors or COMPSCI minor. The "Social Analysis of CS" category includes COMPSCI 240 (was previously COMPSCI 190 Fall 20 and Spring 21) and COMPSCI 342.


Renumbering COMPSCI 290 Algorithms in the Real World (old) → COMPSCI 333 (current)

Brandon Fain's course, Algorithms in the Real World, has a permanent course number, COMPSCI 333.


Permission Number Request for Fall 2021

Please use this form (Duke login required) to request a Permission Number for a course for Fall 2021. 


PREVIOUS COURSE BULLETINS: