UC BerkeleyX: CS188.1x: Artificial Intelligence

Play CS188.1x Video
School: UC BerkeleyX
Course Code: CS188.1x
Classes Start: 18 Feb 2013
Course Length: 11 weeks
Estimated effort: 15 hours/week



  • Object-Oriented Programming
  • Recursion
  • Python or ability to learn Python quickly (mini-tutorial provided)

Data Structures

see more...
CS188.1x - Artificial Intelligence

Artificial Intelligence

CS188.1x is an online adaptation of the first half of UC Berkeley's upper division course CS188: Introduction to Artificial Intelligence.

About this Course

*Note - This is an Archived course*

This is a past/archived course. At this time, you can only explore this course in a self-paced fashion. Certain features of this course may not be active, but many people enjoy watching the videos and working with the materials. Make sure to check for reruns of this course.

CS188.1x is a new online adaptation of the first half of UC Berkeley's CS188: Introduction to Artificial Intelligence. The on-campus version of this upper division computer science course draws about 600 Berkeley students each year.

Artificial intelligence is already all around you, from web search to video games. AI methods plan your driving directions, filter your spam, and focus your cameras on faces. AI lets you guide your phone with your voice and read foreign newspapers in English. Beyond today's applications, AI is at the core of many new technologies that will shape our future. From self-driving cars to household robots, advancements in AI help transform science fiction into real systems.

CS188.1x focuses on Behavior from Computation. It 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 stochastic and in adversarial settings. CS188.2x (to follow CS188.1x, precise date to be determined) will cover Reasoning and Learning. With this additional machinery your agents will be able to 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 CS188x 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.

Note: This is a past/archived course. Certain features of this course may not be active, but we still invite you to explore the available materials. Disabled materials include: the discussion forum.

Ways to take this edX course:

Simply Audit this Course

Audit this course for free and have complete access to all of the course material, tests, and the online discussion forum. You decide what and how much you want to do.

Course Staff

  • Dan Klein

    Dan Klein

    Dan Klein (PhD Stanford, MSt Oxford, BA Cornell) is an associate professor of computer science at the University of California, Berkeley. His research focuses on natural language processing and using computational methods to automatically acquire models of human languages. Examples include large-scale systems for language understanding, information extraction, and machine translation, as well as computational linguistics projects, such as the reconstruction of ancient languages. One of his best-known results was to show that human grammars can be learned by statistical methods. He also led the development of the Overmind, a galaxy-dominating, tournament-winning agent for the game of Starcraft. Academic honors include a Marshall Fellowship, a Microsoft Faculty Fellowship, a Sloan Fellowship, an NSF CAREER award, the ACM Grace Murray Hopper award for his work on grammar induction, and best paper awards at the ACL, NAACL, and EMNLP conferences. Professor Klein is the recipient of multiple teaching honors, including the UC Berkeley Distinguished Teaching Award.

  • Pieter Abbeel

    Pieter Abbeel

    Pieter Abbeel (PhD Stanford, MS/BS KU Leuven) joined the faculty of the Department of Electrical Engineering and Computer Sciences at UC Berkeley in 2008. He regularly teaches CS188: Introduction to Artificial Intelligence and CS287: Advanced Robotics. His research focuses on robot learning. Some results include machine learning algorithms which have enabled advanced helicopter aerobatics, including maneuvers such as tic-tocs, chaos and auto-rotation, which only exceptional human pilots can perform, and the first end-to-end completion of reliably picking up a crumpled laundry article and folding it. Academic honors include best paper awards at ICML and ICRA, the Sloan Fellowship, the Air Force Office of Scientific Research Young Investigator Program (AFOSR-YIP) award, the Okawa Foundation award, the MIT TR35, the IEEE Robotics and Automation Society (RAS) Early Career Award, and the Dick Volz award for best PhD thesis in robotics and automation.

  • Peter Cottle

    Peter Cottle

    Peter Cottle (BS UC San Diego) is a PhD student at UC Berkeley. He was one of the star students in the Spring 2012 offering of CS188, and he is currently a teaching assistant for the on-campus CS188 offering. He conducts his PhD research in the CADML group, which solves manufacturing problems with computer science. He has applied some of the concepts from CS188 for his MS Thesis, a search algorithm that drains polygonal meshes.

  • Ziang Xie

    Ziang Xie

    Ziang Xie is an undergraduate student at UC Berkeley, studying Electrical Engineering and Computer Science. He took the Spring 2011 offering of CS188, and is currently a member of the Robot Learning Lab, where he's worked on robotic laundry and robotic perception. He also coordinates tours for educational groups as part of the lab's outreach program.

  • Arjun Singh

    Arjun Singh

    Arjun Singh (BS UC Berkeley) is a PhD student at UC Berkeley and Berkeley's lead developer for the edX platform. He has been a teaching assistant for the on-campus CS188 offerings four times. As a member of the Robot Learning Lab, he has worked on autonomous helicoptersrobotic laundry, and now works on computer vision for robotics and technology for education. He led the development of the Coursesharing online education platform, which was merged into the edX platform.

  • Ketrina Yim

    Ketrina Yim

    Ketrina Yim (MS/BS UC Berkeley) is a programmer by day and an artist by night. As an undergraduate, she decorated the whiteboards of Soda Hall with computer-science-themed cartoons, which eventually led to CS Illustrated, a research project to apply visual metaphors to computational concepts. She is also a CS188 alumnus. Her artwork can be seen online here.

  • Zack Mayeda

    Zack Mayeda

    Zack Mayeda is an undergraduate student at UC Berkeley, currently enrolled in the on-campus offering of CS188. He is studying Electrical Engineering and Computer Science, and is interested in mobile application development and web design.


  • Introduction
    • Overview
    • Agents: Perception, Decisions, and Actuation
  • Search and Planning
    • Uninformed Search (Depth-First, Breadth-First, Uniform-Cost)
    • Informed Search (A*, Greedy Search)
    • Heuristics and Optimality
  • Constraint Satisfaction Problems
    • Backtracking Search
    • Constraint Propagation (Arc Consistency)
    • Exploiting Graph Structure
  • Game Trees and Tree-Structured Computation
    • Minimax, Expectimax, Combinations
    • Evaluation Functions and Approximations
    • Alpha-Beta Pruning
  • Decision Theory
    • Preferences, Rationality, and Utilities
    • Maximum Expected Utility
  • Markov Decision Processes
    • Policies, Rewards, and Values
    • Value Iteration
    • Policy Iteration
  • Reinforcement Learning
    • TD/Q Learning
    • Exploration
    • Approximation



  • Object-Oriented Programming
  • Recursion
  • Python or ability to learn Python quickly (mini-tutorial provided)

Data Structures

  • Lists vs Sets (Arrays, Hashtables)
  • Queuing (Stacks, Queues, Priority Queues)
  • Trees vs Graphs (Traversal, Backpointers)


  • Probability, Random Variables, and Expectations (Discrete)
  • Basic Asymptotic Complexity (Big-O)
  • Basic Counting (Combinations and Permutations)

This course requires both programming and math background. Required programming experience is at the level of a first course for CS majors. The language used will be Python—which in our experience students with programming experience pick up fairly quickly. Your best assessment on whether your programming background is sufficient is Project 1, which will go out in the first week, in which you will program an agent to intelligently navigate a maze. Math background: a first course in probability at the undergraduate level. We will post a self-assessment test in the first week.