Spring 2024 Course Bulletin

IMPORTANT DATES AND LINKS for Undergraduate Students

 

**Shopping carts open October 23, 2023 and the first registration window is November 1, 2023.**

 

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.

 

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.


LIST OF COMPSCI COURSES FOR SPRING 2024

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

  • 101L - Introduction to Computer Science | Velasco
  • 201 - Data Structures and Algorithms | Steiger
  • 207 - Introduction to Mobile Application Development in iOS | Phillips
  • 210D - Introduction to Computer Systems | Wills, Zhuo
  • 216 - Everything Data | Stephens-Martinez
  • 230 - Discrete Math for Computer Science | Ko
  • 232 - Discrete Mathematics and Proofs (cross MATH 242) | Akin
  • 250D - Computer Architecture (cross ECE 250D) | Sorin
  • 255 - Introduction to Cyber Policy (cross PUBPOL 255) | Hoffman
  • 260 - Introduction to Computational Genomics | Hartemink
  • 288 - Logic and Its Applications (cross PHIL 350, MATH 388) | Richardson
  • 308 - Advanced Software Design and Implementation | Duvall
  • 323D - Computational Microeconomics (cross ECON 336D) | O'Hanlon
  • 330 - Introduction to the Design and Analysis of Algorithms | Fain
  • 334 - Mathematical Foundations of Computer Science | Rossman
  • 342 - Technical and Social Analysis of Information and the Internet | Astrachan
  • 345 - Graphics Software Architecture | Reed
  • 350L - Digital Systems (cross ECE 350L) | Board
  • 351 - Introduction to Computer Security | Nayak
  • 356 - Computer Network Architecture (cross ECE 356) | Gong
  • 370D - Introduction to Artificial Intelligence | Songdechakraiwut
  • 391 - Independent Study | Departmental Staff
  • 394 - Research Independent Study | Departmental Staff
  • 474 - Data Science Competition | Rudin
  • 516 - Database Systems | J. Yang
  • 520D - Numerical Analysis (cross MATH 565D, STA 612D) | Sun
  • 527 - Introduction to Computer Vision | Tomasi
  • 535 - Algorithmic Game Theory (cross MATH 571, ECON 565) | Munagala
  • 553 - Compiler Construction (cross ECE 553) | Hilton
  • 561 - Computational Sequence Biology (cross CBB 561) | Majoros
  • 562 - High-Resolution Cryo-Electron Microscopy Image Analysis (cross BIOCHEM 562, CBB 562) | Bartesaghi
  • 564 - Edge Computing (cross ECE 654) | Gorlatova
  • 571D - Probabilistic Machine Learning (cross STA 561D, ECE 682D) | Laber
  • 572 - Introduction to Natural Language Processing | Dhingra
  • 582 - Cryptography (cross ECE 656) | Reiter
  • 583 - Applications in Data and Materials Science (cross ME 582) | Guilleminot
  • 585 - Secure Software Systems | Lentz
  • 586 - Human-Centered Security and Privacy (cross PUBPOL 586, ISS 586) | Emami-Naeini
  • 634 - Geometric Algorithms (cross CBB 634) | Agarwal
  • 676 - Advanced Topics in Deep Learning (cross ECE 689) | Tarokh
  • 791  - Internship | Ge

Special Topics Courses

  • 190-01 - An Introduction to Racial Statistics (cross AAAS 190-01, STA 190-01) | Peoples
  • 290-01 - Server-Side Web Applications | Phillips
  • 290-02 - Educational Technology | Duvall
  • 390-01 - Computational Approaches to Language Processing (cross LINGUIST 490-01) | Osborne
  • 390-02 - Programming Languages Concepts | Zhang
  • 390-03 - Software Reverse Engineering | Sparko
  • 590-02 - Advanced Web Application Development | Quan
  • 590-04 - Generative AI in Protein Design (cross BME 590-04) | Chatterjee
  • 590-05 - Fullstack IOT Systems (cross ECE 590-05) | T. Chen
  • 590-09 - Robot Studio (cross ME 555-09, ECE 590-09) | B. Chen
  • 590D-001 - Molecular Assembly and Computation | Reif

COURSE-RELATED UPDATES

New! COMPSCI 232 Discrete Mathematics and Proofs

COMPSCI 232 - 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. COMPSCI 232 can be taken in lieu of COMPSCI 230.


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) → 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 535 Algorithmic Game Theory

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

COMPSCI 590 (old) → COMPSCI 585 Secure Software Systems

COMPSCI 590 (old) → COMPSCI 586 Human-Centered Security and Privacy


OTHER COURSE OFFERINGS

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


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

2 )  You are now able to use COMPSCI 232 in lieu of the COMPSCI 230 requirement.

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

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.


PERMISSION NUMBER REQUESTS FOR SUMMER 2024

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