Berkeley CS 188: Introduction to Artificial Intelligence
CS 188 is Berkeley's upper-division AI course, famous for its Pacman project series: search, constraint satisfaction, game trees, Markov decision processes, reinforcement learning, probabilistic inference with Bayes nets and HMMs, and an introduction to machine learning. The Pacman framework Berkeley built here is used in AI courses worldwide.
Fennie is independent and not affiliated with UC Berkeley. This is an unofficial study guide.
What makes it hard
The projects are guided and beloved, which lulls students. The exams are the hard part, demanding hand-execution of algorithms (minimax with pruning, value iteration, variable elimination) and probability manipulations under time pressure. The probabilistic second half punishes anyone whose CS 70 probability got rusty.
What you'll cover
- • Search algorithms and heuristics
- • Constraint satisfaction problems
- • Game trees and minimax
- • Markov decision processes and reinforcement learning
- • Bayes nets and probabilistic inference
- • Hidden Markov models and machine learning basics
The CS 188 study guide
How to study for Berkeley CS 188, step by step.
- 1
Refresh probability before the second half arrives
Bayes nets, HMMs, and particle filtering assume CS 70-level probability is instant. Review conditional probability and expectation mid-semester, before the probabilistic unit starts, not during it.
- 2
Hand-execute every algorithm, not just implement it
The Pacman projects make algorithms work for you; the exams make you be the algorithm. Run A*, minimax with alpha-beta, and value iteration on paper for small examples until execution is mechanical.
- 3
Treat the projects as concept previews
After each Pacman project, write down what the algorithm assumes and when it fails; that conceptual layer is what exam questions probe, and the project alone doesn't force it.
- 4
Drill past exams for speed
188 exams are long, and hand-simulation under time pressure is the recurring complaint. Past exams from the course archives, worked timed, are the only realistic rehearsal.
Today
Today's CS 188 plan
What a Fennie Daily Plan looks like for CS 188. Yours is built from your own syllabus and adapts every day to your deadlines and progress.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
FAQ
Is CS 188 hard?
The projects are among the best-liked in the major and quite guided; the exams are where the difficulty lives. Hand-executing algorithms and manipulating probabilities under time pressure takes deliberate practice beyond completing the projects.
Do I need machine learning background for CS 188?
No. 188 is the intro. It assumes data-structure fluency and CS 70-level probability, and its ML unit is a light introduction. If you want the math-heavy treatment, that's CS 189, which many students take after 188.
Should I take CS 188 or CS 189 first?
188 first is the common path: it's broader, lighter mathematically, and motivates the ML material 189 then treats rigorously. Students with strong math sometimes go straight to 189, but they're skipping the gentler on-ramp.
More Berkeley courses
CS 61A: The Structure and Interpretation of Computer Programs
CS 61A is Berkeley's legendary intro CS course, taught primarily in Python with excursions into Scheme and SQL. It emphasizes abstraction (higher-order functions, recursion, object-oriented programming, and interpreters) and it's the first course in the CS 61 series that every CS and Data Science student takes.
CS 61B: Data Structures
CS 61B is Berkeley's data structures course, taught in Java, covering lists, trees, hashing, graphs, sorting, and asymptotic analysis. It's the second course in the 61 series and the one most cited in industry-interview prep. Its projects, including the famous build-your-own-world and Gitlet (build a mini Git), are substantial software engineering exercises.
CS 70: Discrete Mathematics and Probability Theory
CS 70 is Berkeley's discrete math and probability course, required for the CS major, covering proofs, graph theory, modular arithmetic, RSA, polynomials, counting, and a substantial probability unit. It's the theory gateway and, by reputation, the hardest lower-division course in the major.
CS 61C: Great Ideas of Computer Architecture (Machine Structures)
CS 61C completes Berkeley's 61 series, going below the abstraction line: C programming, RISC-V assembly, CPU datapaths and pipelining, caches, virtual memory, and parallelism. It's required for the CS and EECS majors and is the course where software students finally see what the hardware is doing.