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 |
Quick links
- Schedule — week-by-week dates, topics, slides, and due dates
- Syllabus — detailed weekly topics and required/optional readings
- Project — group project structure, assignments, and deliverables
- Policies & grading — grading breakdown, data security, AI use, attendance, CMU resources
- Tech setup — server access, database, and environment instructions
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:
- Tuesday — lectures and discussion of the weekly topic.
- Thursday — lectures and discussion early in the semester; once projects are underway, most Thursdays are reserved for group meetings and project work.
- Friday (lab) — hands-on tech sessions for the first few weeks, then team check-ins for the rest of the semester. Check-ins are built around short update assignments every 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 — GHC 8023
Office hours: Tuesday 4-5pm, Wednesday 4–5pm
Email to meet outside these hours.
Teaching Assistant
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.