Spring 2023 Course Bulletin

IMPORTANT DATES AND LINKS

 

**Shopping carts open October 24, 2022 and the first registration window is November 2, 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.


LIST OF COMPSCI COURSES FOR SPRING 2023

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

  • 101L - Intro to Computer Science | Rodger
  • 201 - Data Structures and Algorithms | Fain
  • 207 - Introduction to Mobile Application Development in iOS | Phillips
  • 210D - Intro to Computer Systems | Lentz
  • 216 - Everything Data | Stephens-Martinez
  • 230 - Discrete Math for Computer Science | Munagala
  • 240 - Race, Gender, Class, & Computing (cross GSF 242) | Washington
  • 243 - Programming Interview Skills and Practice | Astrachan
  • 250D - Computer Architecture (cross ECE 250D) | Sorin
  • 288 - Logic and Its Applications (cross MATH 388) | Departmental Staff
  • 308 - Advance Software Design and Implementation | Duvall
  • 330 - Intro to the Design and Analysis of Algorithms | Agarwal, Fain
  • 334 - Mathematical Foundations of Computer Science | Rodger
  • 342 - Technical and Social Analysis of Information and the Internet | Astrachan
  • 345 - Graphics Software Architecture | Reed
  • 350L - Digital Systems (cross ECE 350L) | Board
  • 356 - Computer Network Architecture (cross ECE 356) | Narten
  • 362 - Introduction to Computational Imaging | Bartesaghi
  • 370D - Introduction to Artificial Intelligence | Parr
  • 391 - Independent Study | Departmental Staff
  • 394 - Research Independent Study | Departmental Staff
  • 474 - Data Science Competition | Rudin
  • 512 - Distributed Systems | Zhuo
  • 520 - Numerical Analysis (cross MATH 565, STA 612) | Sun
  • 527 - Introduction to Computer Vision | Tomasi
  • 534 - Computational Complexity | Reif
  • 553 - Compiler Construction (cross ECE 553) | Hilton
  • 561 - Computational Sequence Biology (cross CBB 561) | Majoros
  • 564 - Edge Computing (cross ECE 654) | Gorlatova
  • 571D - Probabilistic Machine Learning (cross STA 561) | Laber
  • 582 - Cryptography | Reiter
  • 638 - Graph Algorithms | Panigrahi
  • 650 - Advanced Computer Architecture II | Towles
  • 703 - Programming Interview Skills and Practice | Astrachan
  • 791  - Internship | Departmental Staff

Special Topics Courses

  • 290-02 - Server-side Web Applications | Phillips
  • 390-01 - Building Educational Technology | Duvall
  • 390-02 - Computational Approaches to Language Processing | Osborne
  • 390-03 - Software Reverse Engineering | Sparko
  • 590-01 - Causality and Fairness for Data Analysis | Roy
  • 590-02 - Computer Architecture and Hardware Acceleration | Wills
  • 590-03 - Usable Security | Emami-Naeini
  • 590-04 - Data Science Concepts and Applications | Pei
  • 590-05 - Seminar on Computational Biology: Focus on COVID-19 and Machine Learning For Therapeutic Design (cross CBB 590) | Donald
  • 590-06 - Elements of Deep Learning | Wiseman

COURSE-RELATED UPDATES

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. 


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


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 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, we 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).

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.


PERMISSION NUMBER REQUESTS FOR SPRING 2023

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

 


PREVIOUS COURSE BULLETINS: