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) 

Core Statistics Courses (at least one course from the list below) ECO 202: Statistics and Data Analysis for Economics (STATA) 

Electives (three electives, including additional courses from the lists above, with permission) Machine Learning Statistics Theory Applications 
NOTES (UG Certificate)
General

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

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


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

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.

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.

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

ECE 434 Machine Learning Theory covers algorithmic independent bounds on ML. It is complementary to both COS 424 and ECE 435.
Statistics
 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.
 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.
 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.