This course provides an introduction to how modern AI systems work. By “modern AI”, we specifically mean the machine learning methods and large language models (LLMs) behind systems like ChatGPT, Gemini, and Claude. [Note] In most academic settings, the term “Artificial Intelligence” refers to techniques much broader than machine learning and LLMs. However, in modern usage the term often refers to these kind of AI systems like chatbots that many of us use every day, and for this course we’ll use this common-usage sense. Despite their seemingly amazing generality, the basic techniques that underlie these AI models are surprisingly simple: a minimal LLM implementation leverages a fairly small set of machine learning methods and architectures, and can be written in a few hundred lines of code.
This course will guide you through the basic methods that will let you implement a basic AI chatbot. You will learn the basics of supervised machine learning, large language models, and post-training. By the end of the course you will be able to write the code that runs an open source LLM from scratch, as well as train these models based upon a corpus of data. The material we cover will include:
The topics above are a general framing of what the course will cover. However, as this course is being offered for the first time in Spring 2026, some elements are likely to change over the first offering.
A major component of the course will be the development of a minimal AI chatbot through a series of programming assignments. Each assignment will build upon the previous one, but we will also distribute intermediate solutions so that if you aren’t able to complete an assignment, you can use a reference solution to build upon in later assignments. In addition to the (main) programming aspect, each homework will also be accompanied by a shorter written portion that works out some of the mathematical details behind the approach.
Each homework will be accompanied by an in-class (15 minute) quiz that assesses basic questions based upon the assignment. This will include replicating (at a high level) some of the code you wrote for the assignment, or answering conceptual questions about the assignment. All quizzes are closed book and closed notes.
In addition to the homework quizzes, there will be 3 in-person exams, two midterms and a final (during finals period). The midterms will focus on material only covered during that section of the courses, while the final will be cumulative (but with an emphasis on the last third of the course). All midterms and final and closed book and closed notes.
Lecture schedule is tentative and will be updated over the course of semester.
| Date | Lecture | Homework |
|---|---|---|
| 1/12 | Class logistics and a brief history of AI | HW0 Out |
| 1/14 | Intro to supervised learning | HW0 Due |
| 1/19 | MLK Day - no class | |
| 1/21 | Machine learning models and linear algebra | |
| 1/26 | Basics of PyTorch | HW1 Out |
| 1/28 | Loss functions and probability | |
| 2/2 | Optimization and gradient descent | HW1 Due, HW2 Out |
| 2/4 | Putting it together: your first ML model | |
| 2/9 | Neural networks models | HW2 Due |
| 2/11 | Neural network implementation | |
| 2/16 | Midterm 1 - Supervised machine learning | HW3 Out |
| 2/18 | Sequence models: handling sets of inputs | |
| 2/23 | Self attention and positional embeddings | HW3 Due, HW4 Out |
| 2/25 | Transformer models | |
| 3/2 | Spring break - no class | |
| 3/4 | Spring break - no class | |
| 3/9 | Tokenizers | HW4 Due |
| 3/11 | Efficient inference and key-value caching | |
| 3/16 | Putting it together: your first LLM | HW5 Out |
| 3/18 | Midterm 2 - Large Language Models | |
| 3/23 | Supervised fine tuning | |
| 3/25 | Alignment and instruction/chat tuning | |
| 3/30 | Guest lecture | HW5 Due, HW6 Out |
| 4/1 | Guest lecture | |
| 4/6 | Reinforcement learning basics | HW6 Due |
| 4/8 | RL for LLMs | |
| 4/13 | Reasoning models | HW 7 Out |
| 4/15 | AI Safety and security | |
| 4/20 | The future: AGI and beyond | HW7 Due |
| 4/22 | Instructor Q&A | |
| TBD | Final |
Students are permitted to use AI assistants for all homework and programming assignments (especially as a reference for understanding any topics that seem confusing), but we strongly encourage you to complete your final submitted version of your assignment without AI. You cannot use any such assistants, or any external materials, during in-class evaluations (both the homework quizzes and the midterms and final).
The rationale behind this policy is a simple one: AI can be extremely helpful as a learning tool (and to be clear, as an actual implementation tool), but over-reliance on these systems can currently be a detriment to learning in many cases. You absolutely need to learn how to code and do other tasks using AI tools, but turning in AI-generated solutions for the relatively short assignments we give you can (at least in our current experience) ultimately lead to substantially less understanding of the material. The choice is yours on assignments, but we believe that you will ultimately perform much better on the in-class quizzes and exams if you do work through your final submitted homework solutions yourself.