About this course
Welcome to CS188.1x: Artificial Intelligence, Part I! We're excited to bring you this new online adaptation of the first half of UC Berkeley's on-campus AI course (CS188). You'll learn the same material, solve the same homework problems, and complete the same projects as in the on-campus offering. CS188.2x (to be offered in the future) will adapt the second half of the Berkeley course.
What is artificial intelligence? AI is already all around you, from web search to video games. AI methods plan your driving directions, filter your spam, and enable your camera to detect faces. AI lets you control your phone with your voice and read foreign web pages 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.
CS188x 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 adversarial settings, 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.
- Object-Oriented Programming
- Python or the ability to learn Python quickly (short referesher 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)
Assignments, Grading, and Certificates
This class includes five homework assignments, three programming projects, and a final exam. Your overall score will be determined as follows:
- Homework Assignments (40%)
- Programming Projects (30%)
- Final Exam (30%).
There are also small quizzes throughout the lectures; these are for practice only and do not count towards your grade. Quizzes, Homework and Projects will allow you to keep working (and re-submitting) as many times as you want until the deadline. On exams, you will only get a limited number of trials; the number of remaining trials will be shown to you.
If you earn more than 60% of the points in the course, you will receive a certificate stating that you completed the course.
You may discuss your homework and projects with classmates; in fact, we encourage you to do so (please avoid spoilers on the forums, though!). However, all submitted work must be your own, and you must abide by the edX Honor Code.
CommunicationThere will be several routes of communication for this course:
- Announcements will be posted to this website.
The main mode of electronic communication between students and staff, as well as amongst students, will be through Piazza. It is intended for general questions about the course, clarifications about assignments, student questions to each other, discussions about material, and so on. We strongly encourage students to participate in discussion, ask, and answer questions through this site. The course staff will monitor discussions closely.
Course programming assignments will be in Python. You can use either Python 2.6 or Python 2.7 for the programming projects; Python 3 will not work. We do not assume that students have previous experience with the language, but we do expect you to learn the basics very rapidly. Project 0 is designed to teach you the basics of Python, but if you want to get a head start here is a good tutorial: ACM Python Tutorial.
No textbook is required for this course, and the online materials are self-contained. For students who want to read more, we recommend Artificial Intelligence: A Modern Approach by Stuart Russell (UC Berkeley) and Peter Norvig (Google). Be aware, however, that this is not a course textbook, so our presentation does not necessarily follow the presentation in the book.