SML Undergraduate Certificate Course Table

The course tables shown below are designed to help you understand the range of Princeton courses offered in Data Sciences, Machine Learning, Optimization, Probability and Statistics, and to assist students and faculty advisors in planning course selections.  All of the courses listed are full semester, graded courses.

Please note that courses may not be offered every semester nor every year. In addition, some courses have limited enrollment and fill up quickly. To check if a course is being courses offered in a particular semester, and its enrollment cap, please check the Registrar’s website, or the website of the home department. 

If you have any questions or see any errors or omissions, please send us an email.  


SML Undergraduate Certificate Course Table

Core Machine Learning Courses (at least one course from the list below)

COS 324: Introduction to Machine Learning (P)
COS 424/SML 302: Foundations of Machine Learning
ECE 364: Machine Learning for Predictive Data Analytics (P)
ECE 435: Machine Learning & Pattern Recognition (P)
MAT 490: Math of Machine Learning
ORF 350: Analysis of Big Data

Core Statistics Courses (at least one course from the list below)

ECO 202: Statistics and Data Analysis for Economics (STATA)
ORF 245: Fundamentals of Statistics (R)
POL 345/SOC 305: Intro.  to Quantitative Social Science (R)
PSY 251: Quantitative Methods (P)
SPI 200: Statistics for Social Science (?)

Electives (three electives, including additional courses from the lists above, with permission)

Data Science
POL 245 Visualizing Data (R)
SML 201: Introduction to Data Science (+R)
SML 310: Research Projects in Data Science (R, P)

Machine Learning
COS 402: Machine Learning and Artificial Intelligence
COS 485: Neural Networks: Theory & Applications
ECE 434/COS 434: Machine Learning Theory
ECE 477: Deep Learning Networks
ORF 418: Optimal Learning
SOC/SML 306: Machine Learning with Social Data: Opportunities and Challenges 

ORF 405: Regression and Applied Time Series
ORF 409: Introduction to Monte Carlo Simulation

ECE/COS 434: Machine Learning Theory
MAT 385: Probability Theory
ORF 309: Probability and Stochastic Systems
ORF 307: Optimization
ORF 363: Computing and Optimization for the Physical and Social Sciences

AST 303: Observing and Modeling the Universe (P)
CEE 460: Risk Analysis
COS 429: Computer Vision
COS 484: Natural Language Processing
ECE 382: Statistical Signal Processing
ECE/NEU 480: fMRI Decoding
ECE 488: Image Processing
ECO 302: Econometrics
ECO 312: Econometrics: A Mathematical Approach
ECO 313: Econometric Applications
ECO 491: Financial Risk Management
GEO 422: Data, Models, & Uncertainty in the Natural Sciences
MAE 345: Robotics & Intelligent Systems
NEU 330/PSY 330: Computational Models of Psychological Functions
NEU 395: Topics in Scientific Data Exploration
ORF 311: Stochastic Opt. & Machine Learning in Finance (P)
ORF 405: Regression and Applied Time Series
ORF 473: Fin Tech: Data Driven Innovation
POL 346: Applied Quantitative Analysis (R)
PSY 360/COS 360: Computational Models of Cognition
PSY 454/COS 454: Probabilistic Models of Cognition
QCB 408: Foundations of Applied Statistics and Data Science
QCB 455/COS 455/MOL455 Introduction to Genomics and Computational Molecular Biology
SOC 400: Applied Social Statistics
SOC 412: Designing Social & Behavioral Field Exp.s at Scale


NOTES (UG Certificate)


  1. Courses may have distinct prerequisites, and not all courses are offered every year. Please check the registrar’s website.

  2. The following codes are used in the tables:

    • (R) indicates a course using the programming language R.

    • (+R) indicates a course that teaches and uses R.

    • (P) indicates a course using the programming language Python.

    • Other statistics packages include STATA and SPS

  3. COS 302/SML 305 - Mathematics for Numerical Computing and Machine Learning is a new course that provides background for students interested in mathematics for computer science. It is a preparatory course for machine learning but it is not a core or elective course for the SML certificate.

Machine Learning

  1. COS 324, ECE 364 and ORF 350 are all introductory ML courses. The courses differ in focus and details, but are sufficiently similar in intent and content to be considered cognates. These courses are not recommended for students who have already taken a 4xx AI/ML course.

  2. COS 324 vs ECE 364. Both courses have similar prerequisites. Generally, the expected mathematical and programming level is higher in COS 324. Students with light programming experience and mathematical preparation will be better served in ECE 364.

  3. ORF 350 is a theoretically oriented introduction to machine learning, ranging from regression to neural networks. It’s heavier
    focus on theory distinguishes it from ECE 364 and COS 324. However, the topical overlap means that students should take at most one of these three courses.

  4. COS 424 vs ECE 435. Both of these courses cover ML algorithms, but differ in focus and many (but not all) of the specific topics. COS 424 focuses on the problem of analyzing large complex data sets including text, images, and biological data and has a major data analysis final project. ECE 435 is a proof based course focusing on the theoretical underpinnings and properties of ML algorithms. It has regular theory problem sets, programming assignments (Python), a midterm, and a final exam. The courses are sufficiently distinct in focus to be considered complementary.

  5. ECE 434 Machine Learning Theory covers algorithmic independent bounds on ML. It is complementary to both COS 424 and ECE 435.


  1. The following statistics courses: ECO 202, ORF 245, POL 345/SOC 305, PSY 251, SPI 200, differ in style, application domains, and some advanced topics, but have sufficient overlap to be considered cognates.
  2. Programming languages. Introductory data science and statistics courses with programming assignments in R or Python (or equivalent) are helpful for students intending to pursue advanced courses or research projects in data science.
  3. Since SML 201 teaches R and covers introductory statistics, taking SML 201 before a more advanced statistics course makes sense. The reverse order is not recommended. e.g. taking ORF 245, then taking SML 201 is not recommended.