Skip to main content

Artificial Intelligence - Berkeley (Summer 2016)


About This Course

This course will introduce the basic ideas and techniques underlying the design of intelligent computer systems. A specific emphasis will be on the statistical and decision-theoretic modeling paradigm. By the end of this course, you will have built autonomous agents that efficiently make decisions in fully informed, partially observable and adversarial settings. Your agents will draw inferences in uncertain environments and optimize actions for arbitrary reward structures. Your machine learning algorithms will classify handwritten digits and photographs. The techniques you learn in this course apply to a wide variety of artificial intelligence problems and will serve as the foundation for further study in any application area you choose to pursue.


CS 61A and 61B: Prior computer programming experience (see below) and knowledge of some basic theory from CS 61B are expected.

CS 70 or Math 55: Facility with basic concepts of propositional logic and probability are expected (see below); CS 70 is the better choice for this course.

This course has substantial elements of both programming and mathematics, because these elements are central to modern AI. You should be prepared to review basic probability on your own if it is not fresh in your head. You should also be very comfortable programming on the level of CS 61B.


Davis Foote

Davis Foote is a student in EECS and Math at UC Berkeley. He has been a TA/head TA for CS 188 three times in addition to previously being on staff for CS 61A: Intro to CS, CS 70: Discrete Math and Probability, and CS 170: Algorithms and Complexity and teaching some workshops (mainly on functional programming) for the student-run organization Hackers@Berkeley. His current research is under Professor Pieter Abbeel and focuses on neural optimization techniques for reinforcement learning. Previous areas have included algebraic path problems and reinforcement learning problems with conflicting objectives. Prior to all of that, he spent most of his time playing guitar in a prog metal band before selling out and going to school.

Jacob Andreas

Jacob is a third-year PhD student working with Dan Klein. His research focuses on learning models that link language to perception and control—current projects include systems that can answer questions about images and solve puzzles using written hints. He also consults with the research team at Semantic Machines. Jacob received a BS from Columbia in 2012 and spent a year at Cambridge before coming to Berkeley. He enjoys backpacking, bouldering, and brewing.