# Intro to ML Courses at the Pittsburgh Campus

The Machine Learning Department offers four different “Introduction to Machine Learning” courses: 10-301/10-601, 10-315, 10-701, and 10-715, as well as a preparatory course 10-606/10-607. All four “Introduction” courses have a similar goal: to introduce students to the theory and practice of machine learning. That is, students who take these courses will be able to:

- select and apply appropriate machine learning algorithms for a given learning problem
- modify existing learning algorithms to apply to novel situations, and implement the modified algorithms
- read and understand research papers about machine learning algorithms

However, the courses differ in their assumed background, their relative emphasis on these goals, and their pace. This page is intended to help students choose which course is right for them.

For information about timing, please see the Schedule of Classes or Student Information Online.

## How to choose an Intro ML course?

### Based on your program

If you are a student in one of the following programs, we recommend:

**PhD students**- MLD PhD: 10-715
- non-MLD SCS PhD: 10-701
- non-SCS PhD: 10-601

**MS students**- MLD MS: 10-701 or 10-715
- non-MLD SCS MS: 10-601 or 10-701
- non-SCS MS: 10-601

**Undergraduate students**- SCS undergraduate planning to apply for 5th-year MS in MLD: 10-315 (or occasionally 10-701, but 5th-year MSML credit for 10-701 can be obtained by completing both 15-281 and 10-315)
*Note:*For an undergraduate to take 10-701, their major advisor must email Diane Stidle (diane@cs.cmu.edu) stating their approval for taking this doctoral-level course. Most undergrads should take 15-281+10-315 instead of 10-701.

- SCS undergraduate: 10-315
- non-SCS undergraduate planning to complete a double major in SCS: 10-315
- non-SCS undergraduate: 10-301

- SCS undergraduate planning to apply for 5th-year MS in MLD: 10-315 (or occasionally 10-701, but 5th-year MSML credit for 10-701 can be obtained by completing both 15-281 and 10-315)

### Based on what courses you want to take next

Most advanced machine learning courses will accept any of these courses as a prerequisite. However, most students in the 700-level advanced ML courses (e.g. 10-703, 10-707, 10-708) will have taken 10-701 or 10-715. Most students in the 600-level advanced ML courses (e.g. 10-605, 10-617, 10-618) will have taken 10-601. Most students in the 400-level advanced ML courses (e.g. 10-403, 10-405, 10-417) will have taken 10-301 or 10-315.

### Based on your prerequisite knowledge

Students choosing between 10-601 and 10-701 (e.g. non-MLD SCS MS students), may want to gauge their own mathematical preparedness in order to choose between the two courses.

If you have completed a full-semester undergraduate course on ** all** of the following topics, then you are likely prepared for 10-701:

- Probability & Statistics
- Linear Algebra
- Multivariate Calculus
- Discrete Math (sets, logic, combinatorics) - you
be proficient with writing proofs*must* - Intermediate Programming

If you have not completed ** all** of the above coursework as an undergraduate, then we recommend 10-601. Undergraduates taking 10-301, which is cross-listed with 10-601 and has the same content, will have completed a full semester course on each of the following topics:

- Probability (not Statistics)
- Univariate Calculus
- Discrete Math
- Intermediate Programming

# Comparison of the courses

## 10-715 Advanced Introduction to Machine Learning

(Advanced PhD Level)

This course is intended for PhD students in the Machine Learning Department. It is the fastest-paced and most mathematical of the courses. In addition to the goals listed above, 10-715 is intended to prepare students to write research papers that rely on and contribute to machine learning. PhD students from closely-related departments (such as CSD or RI) might consider this course if their research depends strongly on and contributes to machine learning. MS students in MLD have the option of taking 10-715 or 10-701. It is not offered to undergraduate students.

## 10-701 Introduction to Machine Learning

(PhD Level)

This course is intended for PhD students with a strong mathematical and programming background. It focuses more on the mathematical foundations of machine learning than on applications. Students must be comfortable writing proofs. It is typically the appropriate course for PhD students in SCS departments other than machine learning, or for MS students in MLD. PhD students from outside SCS could consider 10-701 if they have a very strong background in math and programming, including linear algebra, probability, and matrix calculus. To gain the required background, non-MLD SCS MS students may take one or both minis of 10-606/607 then 10-701.

## 10-315 Introduction to Machine Learning

(SCS Undergraduate Majors)

This course is intended for undergraduates in SCS. Unlike 10-301, the course is not paced to allow students with incomplete backgrounds to catch up; however, students who do well in the prerequisite and corequisite courses will have sufficient background to do well in 10-315. Because one of the main audiences for this course are AI majors who have taken 15-281 *Introduction to Artificial Intelligence*, this course typically does not cover certain topics that are introduced in 15-281 such as reinforcement learning and Bayesian networks.

## 10-301/10-601 Introduction to Machine Learning (Undergrad/Master's Level)

Students in this course have the most diverse collection of backgrounds. The most typical student is an MS student from SCS or a non-SCS undergraduate; but the course is intended to allow students from anywhere in the university, including those whose mathematical backgrounds may be rusty or incomplete, to catch up and do well. However, the course is mathematically rigorous and contains both programming and derivations in its homeworks, so students should expect to do extra work in proportion to the amount of background that they are missing. Compared to 10-701, this class is more focused on practical applications and is appropriate for a student who wants to take just one ML class at CMU. Taking one or both minis of 10-606/607 before 10-601 can make it easier to do well in 10-601.

## 10-606 & 10-607 Mathematical & Computational Foundations for Machine Learning

This two-mini course sequence provides a single place for students to gain the necessary mathematical / computational background necessary for further study in machine learning – particularly for 10-601 and 10-701. These courses are intended for MS and PhD students in SCS or outside SCS. Undergraduates cannot take 10-606 or 10-607 and should instead take the full set of prerequisite courses before taking Intro to ML. The topics are covered quickly and under the assumption that the student will have seen at least some of these topics before, but need additional depth and practice. **10-606** covers mathematical background for ML. Topics covered include linear algebra, multivariate differential calculus, and probability. **10-607** covers computer science background for ML. Topics covered include proof techniques, computational complexity, data structures, and algorithms.