Artificial intelligence · Data science · Computer science

Learning through concepts, code, and experimentation

I teach courses in artificial intelligence, reinforcement learning, data mining, and computer science, with an emphasis on connecting foundational ideas to practical implementations and reproducible experiments.

Current courses — Fall 2026

CS 5/7320 · Lyle School of Engineering

Artificial Intelligence

Course materials, examples, and exercises are available on the course website.

CS 5/7329 · Lyle School of Engineering

Reinforcement Learning

Course materials, examples, and exercises are available on the course website.

Teaching resources

Open lecture materials, code examples, exercises, and small teaching tools used in my classes.

Artificial Intelligence

Python · Course materials

Slides, compact code examples, and exercises for an introduction to AI using Russell and Norvig’s Artificial Intelligence: A Modern Approach.

Reinforcement Learning

Python · Course materials

Slides, code examples, and exercises for an introductory course in reinforcement learning.

Data Structures

C++ · Code examples

Code for an introductory data-structures course using Mark Allen Weiss’s Data Structures and Algorithm Analysis in C++.

gym-classics2

Python · RL package

Classic discrete finite Markov decision processes and algorithms for teaching reinforcement learning.

Additional examples

R · C++ · Small tools

Tools for fitting distributions and Gridhunt2, a game for teaching encapsulation, composition, inheritance, and polymorphism.

Video lectures

Introduction to R Programming

A video series covering the foundations of programming and data analysis with R.
Here is the lecture material, code examples, and data.

Watch the playlist