Fall 2022 Course Bulletin

IMPORTANT DATES AND LINKS

 

**Shopping carts open March 21, 2022 and the first registration window is March 30, 2022.**

 

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.


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.


PROJECTED LIST OF COMPSCI COURSES FOR FALL 2022

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

  • 94 - Programming and Problem Solving | Rodger
  • 101L - Intro to Computer Science | Rodger
  • 110 - Information, Society & Culture: Bass Connections Gateway (cross ISS 110) | Giugni
  • 112S - Intro to Digital Feminism (cross GSF 2655) | Benack
  • 190FS - Game Programming | Duvall
  • 201 - Data Structures and Algorithms | Fain
  • 210D - Intro to Computer Systems | Chase
  • 216 - Everything Data | Stephens-Martinez
  • 230 - Discrete Math for CompSci | Donald
  • 240 - Race, Gender, Class, & Computing (cross GSF 242) | Washington
  • 250 - Computer Architecture (cross ECE 250D) | Bletsch
  • 260 - Intro to Computational Genomics | Hartemink
  • 307 - Software Design and Implementation | Duvall
  • 310 - Intro to Operating Systems (cross ECE 353) | Zhuo
  • 316D - Intro to Database Systems | Roy
  • 321 - Graph Analysis with Matrix Computation | Sun
  • 330 - Intro to the Design and Analysis of Algorithms | Panigrahi
  • 350L - Digital Systems (cross ECE 350L) | Board
  • 351 - Intro to Computer Security | Reiter
  • 356 - Computer Network Architecture (cross ECE 356) | Gorlatova
  • 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) | Wagner
  • 510 - Operating Systems | Lentz
  • 514 - Advanced Computer Networks (cross ECE 558) | Maggs
  • 515 - Wireless Networking and Mobile Computing (cross ECE 556) | Chen
  • 521 - Graph Analysis with Matrix Computation | Sun
  • 524 - Nonlinear Dynamics (cross NCS 513) | Greenside
  • 531D - Intro to Algorithms | Reif
  • 532 - Design and Analysis of Algorithms | Agarwal
  • 550 - Advanced Computer Architecture (cross ECE 552) | Wills
  • 554 - Fault-Tolerant and Testable Computer Systems (cross ECE 554) | Sorin
  • 555 - Probability for Electrical and Computer Engineers (cross ECE 555) | Trivedi
  • 562 - High-Resolution Cryo-Electron Microscopy Image Analysis (cross BIOCHEM 562) | Bartesaghi
  • 570 - Artificial Intelligence | Parr
  • 572 - Intro to Natural Language Processing | Dhingra
  • 581 - Computer Security | Reiter 
  • 653 - Human-Centered Computing (cross ECE 653) | Daily
  • 671D - Theory and Algorithms for Machine Learning (cross ECE 687, STA 671) | Rudin
  • 675D - Intro to Deep Learning (cross ECE 685D) | Tarokh
  • 791  - Internship | Departmental Staff

Special Topics Courses

  • 390-01 - Computational Complexity | Rossman
  • 590-01 - Blockchains, Cryptocurrencies, and Smart Contracts | Zhang
  • 590-02 - Secure Distributed Computation | Nayak
  • 590-03 - Neurosymbolic Machine Learning | Wiseman
  • 590-04 - Advanced Web Application Development | Quan

COURSE-RELATED UPDATES

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 or CS minor 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 was introduced in Fall 2021. You will able to use either 210D or 250D to satisfy the major or minor requirement. If you have already taken 250D, you will not be able to take 210D.

New! COMPSCI 316D Introduction to Database Systems

COMPSCI 316D Introduction to Database Systems has undergone a title change. It is the same course as the old "Database Systems."  This course now includes a discussion section and has gained prerequisites as well -- COMPSCI 210D or 250.

New! COMPSCI 351 Introduction to Computer Security

COMPSCI 351 Introduction to Computer Security has an additional prerequisite of COMPSCI 230 along with either COMPSCI 210D or 250.


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/590 (old) → COMPSCI 321/521 Graph Analysis with Matrix Computation

COMPSCI 590 (old) → COMPSCI 562 High-Resolution Cryo-Electron Microscopy Image Analysis

COMPSCI 590 (old) → COMPSCI 572 Intro to Natural Language Processing

COMPSCI 590 (old) → COMPSCI 581 Computer Security


S/U COURSE CREDIT

MATH 111, MATH 112 and COMPSCI 101 -- Only these three courses may 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 -- 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.


REMINDER: 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 (previously COMPSCI 190 Fall 20 and Spring 21), COMPSCI 342, and COMPSCI 290 (cross PUBPOL 290).


PERMISSION NUMBER REQUESTS FOR FALL 2022

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


PREVIOUS COURSE BULLETINS: