Prerequisites
 One of the following introductory COMPSCI courses or equivalent:
 COMPSCI 101L (Introduction to Computer Science)
 COMPSCI 102 (Interdisciplinary Introduction to Computer Science)
 COMPSCI 116 (Foundations of Data Science)
 MATH 111L (Introductory Calculus I) or equivalent
 MATH 112L (Introductory Calculus II) or equivalent
Requirements
 COMPSCI 201 (Data Structures and Algorithms)
 COMPSCI 230 (Discrete Math for Computer Science), see substitutions
 COMPSCI 210D (Introduction to Computer Systems) or 250D (Computer Architecture)
 COMPSCI 330 (Design & Analysis of Algorithms)
 One of the following COMPSCI courses on systems:
 COMPSCI 310 (Introduction to Operating Systems) or 510 (Advanced Operating Systems)
 COMPSCI 316 (Introduction to Databases) or 510 (Advanced Operating Systems)
 COMPSCI 345 (Graphics Software Architecture)
 COMPSCI 350 (Digital Systems) or 550 (Advanced Computer Architecture)
 COMPSCI 351 (Computer Security) or 581 (Computer Security)
 COMPSCI 356 (Computer Network Architecture) or 514 (Computer Networks)
 COMPSCI 512 (Distributed Systems)
 Linear Algebra  MATH 216, 218, or 221
 Probability  STA 230, STA 240L, MATH 230, or MATH 340
BS fiveelective requirement (more specific than BS)
Note: As with the BS, three out of the five electives must be COMPSCI courses.
AI/ML core (2 courses):
 One of COMPSCI 370* (Intro. Artificial Intelligence) or COMPSCI 570 (Artificial Intelligence)
 *Note: 370 was renumbered from 270 in Fall 2019.
 One of COMPSCI 371 (Elements of Machine Learning) or STAT 561/COMPSCI 571/ECE 682 (Probabilistic Machine Learning) or COMPSCI 671*/STAT 671/ECE 687 (Machine Learning)
 *Note: 671 was renumbered from 571 in Spring 2019.
Note: If you take two courses under the same bullet above (e.g., both COMPSCI 371 and 671), the extra course can still be counted as the 5th elective for your BS major. However, we do NOT recommend taking both 370 and 570, because of the overlap in their contents.
Two courses must be drawn from the list below:
 One of COMPSCI 260 (Intro. Computational Genomics) or COMPSCI 561 (Computational Sequence Biology)
 COMPSCI 290 (Topics) on following subject(s):
 Reinforcement Learning (Parr)
 One of COMPSCI 323 (Computational Microeconomics) or COMPSCI 590 (Topics) on Computational Microeconomics: Game Theory, Social Choice, and Mechanism Design (Conitzer)
 One of COMPSCI 362 (Intro to Computational Imaging) or COMPSCI 562 (CryoEM Image Analysis)
 COMPSCI 474 (Data Science Competition), renumbered from 290 in Spring 2021
 COMPSCI 527 (Computer Vision)

 Reinforcement Learning (Parr)
 Algorithmic Aspects of Machine Learning (Ge)
 Intro to Natural Language Processing
 Data Science Concepts and Applications (Spring 2023)
 Elements of Deep Learning (Spring 2023)
 COMPSCI 675D/ECE 685D (Intro to Deep Learning)
 STA 432/MATH 343 (Sta. Learning and Inference)
 Note: The following are approved substitutes:
 ECE 480 (Applied Probability for Statistical Learning)
 STA 250/MATH 342 (Statistics), if taken prior to Fall 2020
 Among these courses and STA 432/MATH 343, only one can be used to satisfy the BS requirements.
 Note: The following are approved substitutes:
 STA 325 (Machine Learning and Data Mining)
 STA 360 (Bayesian Inference)
 MATH 412 (Topological Data Analysis)
 MATH 465/COMPSCI 445 (Introduction to High Dimensional Data Analysis)
 MATH 466 (Math of Machine Learning)
 MATH 541/STA 621 (Applied Stochastic Processes)
Note: Other courses related to AI/ML not listed above may be used to satisfy this twocourse requirement, but must be approved by the DUS.
Finally, one additional course is needed to complete the BS fiveelective requirement.
 One elective at the 200level or higher in COMPSCI (independent study
possible), MATH (must be QS), STA (must be QS), or a related area approved by the Director of
Undergraduate Studies