## About

CS 181 provides a broad and rigorous introduction to machine learning, probabilistic reasoning
and decision making in uncertain environments. We will discuss the motivations behind common
machine learning algorithms, and the properties that determine whether or not they will work well
for a particular task. You will derive the mathematical underpinnings for many common methods,
as well as apply machine learning to challenges with real data. In doing so, our goal is that you
gain a strong conceptual understanding of machine learning methods that can empower you to pursue
future theoretical and practical directions.
Topics include: supervised learning, ensemble methods and boosting, neural networks,
support vector machines, kernel methods, clustering and unsupervised learning, maximum likelihood,
graphical models, hidden Markov models, inference methods, reinforcement learning.

The material is aimed at an advanced undergraduate level. Students should be comfortable with writing
non-trivial programs (e.g. any course, experience, or willing to self-study beyond CS 50). All staff-provided
scaffolding code will be in Python. Students should also have a background in probability theory (e.g. STAT 110
or equivalent), and familiarity with calculus and linear algebra (e.g. AM 22a, Math 21b, or equivalent).

**Note:** STAT 111 and CS 51 are not required for CS 181, although having these courses would be beneficial for students.

Full course description with policies.