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:
The courses differ, however, in their assumed background, relative emphasis on these goals and 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.
If you are a student in one of the following programs, we recommend:
Most advanced machine learning courses will accept any of these courses as a prerequisite. However, most students in the 700-level advanced machine learning 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.
Students choosing between 10-601 and 10-701 (e.g., non-MLD SCS M.S. students), may want to gauge their own mathematical preparedness to choose between the two courses.
If you have completed a full-semester undergraduate course on all of the following topics, you are likely prepared for 10-701:
If you have not completed all of the above coursework as an undergraduate, then we recommend 10-601. Undergraduates taking 10-301, which is crosslisted with 10-601 and has the same content, will have completed a full semester course on each of the following topics:
This course is intended for Ph.D. students in the Machine Learning Department. It is the fastest-paced and most mathematical of the courses. 10-715 is intended to prepare students to write research papers that rely on and contribute to machine learning. Ph.D. students from closely-related departments (such as the Computer Science Department or Robotics Institute) might consider this course if their research depends strongly on and contributes to machine learning. Master's students in MLD have the option of taking 10-715 or 10-701. It is not offered to undergraduate students.
This course is intended for Ph.D. students with strong mathematical and programming backgrounds. 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 Ph.D. students in SCS departments other than machine learning, or for MLD master's students. Ph.D. students from outside SCS could consider 10-701 if they have a strong background in math and programming, including linear algebra, probability and matrix calculus. To gain the required background, non-MLD SCS master's students may take one or both minis of 10-606/607 then 10-701.
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 introduced in 15-281, such as reinforcement learning and Bayesian networks.
Students in this course have the most diverse collection of backgrounds. The most typical student is a master's student from SCS or a non-SCS undergraduate, but the course is intended to allow students from anywhere in the university to catch up and do well — including those whose mathematical backgrounds may be rusty or incomplete. 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 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 machine learning class at CMU. Previously taking one or both minis of 10-606/607 can make it easier to do well in 10-601.
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 M.S. and Ph.D. 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 Machine Learning. The topics are covered quickly and under the assumption that the student will have seen at least some of them before, but needs additional depth and practice. 10-606 covers mathematical background for machine learning, with topics including linear algebra, multivariate differential calculus and probability. 10-607 covers computer science background for machine learning, and covers topics like proof techniques, computational complexity, data structures and algorithms.