Skip to the content.

94889: Machine Learning in Practice

Carnegie Mellon University · Heinz College · Fall 2026

Lectures Tuesday & Thursday, 11:00am–12:20pm, HBH 2003
Lab section Friday, 9:30–10:50am, HBH 2008
Instructor Rayid Ghani
Teaching Assistant Logan Crowl

Assignments are submitted through Canvas. Class communication and announcements happen on Slack and by email. Everything else (schedule, slides, readings, tech instructions) is in this repo.

Course description

This is a project-based course designed to provide training and experience in solving real-world problems using machine learning, with a focus on problems from public policy and social good.

Through lectures, discussions, readings, and project assignments, students will learn about and get hands-on experience building end-to-end machine learning systems, starting from project definition and scoping, to modeling, to field validation, and turning their analysis into action. Through the course, students will develop skills in problem formulation, working with messy data, communicating about machine learning with non-technical stakeholders, model interpretability, understanding and mitigating algorithmic bias and disparities, evaluating the impact of deployed models, and understanding the ethical implications of design choices made throughout the ML pipeline.

The course is structured around three sessions each week:

Class time dedicated to project work will not be enough on its own — the project will require considerable work outside of class and constitutes the majority of the "homework" for this course.

Prerequisites

Students are expected to know Python (for data analysis and machine learning) and SQL, and to have prior graduate coursework in machine learning. This course assumes you have taken graduate ML courses before and focuses on how to use ML to solve real-world problems. Experience with *nix command line, git(hub), and working on remote machines is highly recommended.

Software

Project work uses a shared data and ML infrastructure provided for the class. Data lives in a PostgreSQL database; SQL and Python are the primary tools for coding. Project code is kept in private GitHub repositories for each team, so create an account if you don't have one. Modeling uses the triage machine learning pipeline package.

Textbook: none required. Readings are drawn from a variety of sources and listed in the syllabus; general background books are listed there as well.

People

Instructor

Rayid Ghani

Rayid Ghani — GHC 8023
Office hours: Tuesday 4-5pm, Wednesday 4–5pm
Email to meet outside these hours.

Teaching Assistant

Logan Crowl

Logan Crowl — HBH 2007 (Slack if you can't find it)
Office hours: Monday 11-12pm, Thursday 10-11am

Previous versions

Fall 2025 · Fall 2023 · Fall 2022 · Fall 2021 · Fall 2020 · Spring 2020

License

Course materials are released under the MIT License. If you adapt them for your own teaching, we'd love to hear about it.