Understanding Introduction to Machine Learning Courses on the Pittsburgh Campus

Home > Academics > Understanding Introduction to Machine Learning Courses on 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.

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.

Choosing an Intro to ML Course

Based on Your Program

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

Ph.D. Students

  • MLD Ph.D.: 10-715
  • Non-MLD SCS Ph.D.: 10-701
  • Non-SCS Ph.D.: 10-601

M.S. Students

  • MLD M.S.: 10-701 or 10-715
  • Non-MLD SCS M.S.: 10-601 or 10-701
  • Non-SCS M.S.: 10-601

Undergraduate Students

  • SCS undergraduates planning to apply for the Fifth-Year Master's Program in MLD: 10-315 (or occasionally 10-701, but fifth-year credit for 10-701 can be obtained by completing both 15-281 and 10-315. For an undergraduate to take 10-701, their major adviser must email Diane Stidle stating their approval for taking this doctoral-level course. Most undergrads should take 15-281 and 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.

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

Based on Your Prerequisite Knowledge

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:

  • Probability and Statistics
  • Linear Algebra
  • Multivariate Calculus
  • Discrete Math (sets, logic, combinatorics) — you must be proficient with writing proofs
  • 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 crosslisted 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 OR Linear Algebra OR Multivariate Calculus 
  • Intermediate Programming

Course Comparison

10-715: Advanced Introduction to Machine Learning (Advanced Ph.D. Level)

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.

10-701: Introduction to Machine Learning
(Ph.D. Level)

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.

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 introduced in 15-281, such as reinforcement learning and Bayesian networks.

10-301/10-601: Introduction to Machine Learning
(Undergraduate/Master's Level)

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.

10-606 and 10-607: Mathematical and 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 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.