Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#27 overall

CS188 Introduction to Artificial Intelligence

UC Berkeley

18 recommenders · 18 threads · recommended in 8 years, 2011–2018 · score 23.4

Go to course ↗

CS188 is UC Berkeley's introductory artificial intelligence course, covering classical AI such as search, game playing, and probabilistic reasoning, with later material on machine learning. Its assignments are built around the Pacman projects, and an edX version offered the first half of the material.

Commenters call it one of the best online courses they've taken, praising instructor Dan Klein and the Pacman programming assignments.

Machine Learning & AIintermediatefreemixed#artificial intelligence#search#minimax#pacman#klein

Recommendations by year

20062026

What commenters said (21)

  1. Strongly recommendsmanojkr2018in “CS 188 – Introduction to Artificial Intelligence”

    I had taken the edx version of this course. Professor Dan Klein is an amazing teacher. Its clearly one of the best online courses I took on Edx and coursera. Most interesting part for me was completing Pacman assignments using the concepts taught in the course.

  2. Strongly recommendsemp2ror2018in “Ask HN: What are the best MOOCs you've taken?”

    AI by UC brekely, was one of the best course on edx

  3. Strongly recommendsimranq2018in “Ask HN: What are the best MOOCs you've taken?”

    Best course so far: AI from BerkeleyX

    Other great courses: Learning to Learn, Irrational Psychology by Dan Ariely, and Algorithms by Sedgewick

    Can someone recommend a good way to work with other students on MOOCs? I've taken many courses, but they aren't much better than just reading the textbook and working on a personal project, although the curation of content is valuable.

    The relationship aspect is sorely missing from online courses. If there was an easy way to have a classroom setting with highly motivated peers each following the MOOC with a collaborative environment, then I would definitely want to sign up. You say that's what college is for? Well I've already graduated, signing up for random college classes is extremely expensive and the peer group is highly variable.

  4. Strongly recommendsiamlucaswolf2017in “Ask HN: Best books on AI?”

    This.

    If you're also looking for a course that goes alongside the book, I highly recommend UC Berkley's CS188 (you can find it at http://ai.berkeley.edu).

    The lecturer Pieter Abbeel does such a good job explaining stuff and the programming exercises are really neat.

    Edit: Formatting

  5. Strongly recommendsNamTaf2016in “CS188 Intro to AI – Course Materials”

    I did the first half of this as an edX course (CS188.1x) and it covered up to and including the reinforcement learning content. It was really fascinating and enjoyable - definitely one of my favourite courses that I've done.

  6. Strongly recommendsnlawalker2016in “Video games are essential for inventing artificial intelligence”

    To anyone who's never done the Pacman projects: I highly recommend them[1]. They are an absolute blast and incredibly satisfying. Plus, if you don't know Python, they are a great way to learn.

    The course I took used the Norvig text[2] as a textbook, which I also recommend.

    [1]http://ai.berkeley.edu/project_overview.html. See the "Lectures" link at the top for all the course videos/slides.

    [2]http://www.amazon.com/Artificial-Intelligence-Modern-Approac... Note that the poor reviews center on the price, the digital/Kindle edition and the fact that the new editions don't differ greatly from the older ones. If you've never read it and you have the $$, a hardbound copy makes a great learning and reference text, and it's the kind of content that's not going to go out of date.

  7. Strongly recommendsNamTaf2014in “GitHub goes to school”

    Consider getting involved in some of the edX courses.

    CS169.1 and CS169.2 draw from UC Berkeley's CS169 - Software Engineering and present a course in SaaS. They extensively use Github as the code repository and are really cool assignments to boot.

    CS188.1x covers the first half of an AI subject and whilst not using github, certianly was really enjoyable from solving machine learning puzzles. It's in fact probably one of my favourite courses I've done.

    It's a great way to stretch your brain by either learning new skills or revisiting old, possibly rusty ones. I try to keep doing 1 or 2 at a time.

  8. Strongly recommendstikhonj2012in “Edx Announced 7 Free Courses”

    I took CS188 (the AI course) recently and it was really great. Dan Klein is easily one of the favorite CS professors among the students--everyone really loves his class. He is, critically, a great educator. And, naturally, great fun. The lectures were certainly fun to attend even when the material was relatively easy.

    The online version only has half the material. However, this makes sense; the class is naturally divided into two parts. The first half was focused more on AI and search problems and the second part was more about machine learning. I suspect the only reason it is one class is because it has to fit in the semester system. Online, naturally, it's liberated from this constraint.

    Anyhow, I definitely recommend this for anyone interested in AI. And even if you're not interested in the field as much, it's a fun course and only lasts three months.

  9. Strongly recommendsxxbondsxx2012in “Show HN: A new A.I. Algorithm for Polygonal Mesh Mazes”

    If you guys are interested, the source is available here:

    https://github.com/pcottle/LiquidGraph

    Along with the emotional roller-coaster of commit messages. The source is pretty well commented and filled with ASCII diagrams so I tried to make it digestible.

    The actual AI algorithm is a standard uniform cost search, but the state exploration function is where the new work is found. I sent out different gravity transitions from each concave vertex to find where you can get to from each state. All the paths you see are parametric equations as well, so there's no error-prone Euler integration used!

    Edit: Also, the class lecture videos from this semester are here:

    http://itunes.apple.com/us/itunes-u/computer-science-188-001...

    if you would like an introduction to AI. It's a great class, I highly recommend it!

  10. Recommendsnrjames2018in “Ask HN: How to Seriously Start with Machine Learning and AI”

    IMO, to start with AI, it's best to start as simple as possible so that you understand the algorithms that drive things that are accessible to tweak. If you are a gamer, think about the various AI routines that control pathfinding, resource collection, and strategy for computer players in strategy games. Some of the concepts of BFS and DFS build into Minimax strategies and other types of "simple" approaches to searching decision spaces/states for optimal approaches to problem solving. This gets into the development of heuristics for approximating outcomes. All of this is fantastic baseline for understanding more complex AI and machine learning algorithms. While it's easy to jump into ML or AI at a higher level, without the baseline understanding of the search algorithms and probability landscapes that are underpinnings to advanced work in these fields, you'll probably never feel like you understand what is going on.

    You can find some fun tutorials here: https://www.redblobgames.com

    The CS 188 "Intro to AI" class at Berkeley is excellent: http://ai.berkeley.edu/home.html

    It used to be on edx.org but I think a lawsuit about accessibility required them to remove it? Perhaps you can find it in the edX archives.

    Edit: looks like you can find the lecture videos and other resources on the Berkeley site: http://ai.berkeley.edu/lecture_videos.html

  11. Recommendslngnmn2017in “Ask HN: Is a master degree in CS worth it”

    It, obviously, depends. If you went through really good courses and extraordinary teachers, like old-school scheme-based Berkeley CS61A, then, perhaps, some AIMA based course with CL code, leave alone original SICP courses at MIT, then it definitely worth it. Berkeley CS188 (Python-based) is very good one too.

    But if you just passed through some crappy courses which ends with "in Java" in some third-rate school, then you have, probably, wasted your time and money.

    Good schools which still taught fundamental principles, like MIT, will always worth it.

  12. Recommendskriro2016in “Minecraft to run artificial intelligence experiments”

    The fact that they want to use it as a teaching platform of sorts has very exciting implications. Minecraft is really huge with kids and that's an excellent way of getting more young people interested in AI and programming in general. To this day I think the Berkeley intro to AI class[1] on edx is the best I've seen because it uses Pacman as the running example which makes everything more approachable. It would probably be interesting to turn some of the examples from AIAMA into Minecraft examples as well.

    [1] https://www.edx.org/course/artificial-intelligence-uc-berkel...

  13. Recommendsmindcrime2016in “Ask HN: AI is going to be big. How should we learn?”

    Assuming that you consider Machine Learning to be either a subset of AI (as I do) or a sibling field, and want to learn aspects of ML, then consider Andrew Ng's Machine Learning course on Coursera. It's a great introduction and doesn't require a ton in terms of prerequisites. You'll see some multi-variable calculus and linear algebra, but he does the calculus derivations for you, and there's a pretty adequate review of the relevant parts of Linear Algebra.

    In addition, if you don't already have a background in Calculus and Linear Algebra, then supplement the Ng course with the Khan Academy stuff on Calculus and Linear Algebra, or other courses you can pick up on Coursera or Edx or whatever.

    If you get really interested in neural networks (which are all the rage these days) after the Ng class, there's a freely available book on Neural Network design that you could look at. It doesn't cover all the very latest techniques, but it would help you build the foundation of understanding.

    http://hagan.okstate.edu/nnd.html

    There's also a MOOC around the Learning From Data book that you could check out.

    http://amlbook.com/

    https://work.caltech.edu/telecourse.html

    OTOH, if you're making a sharp distinction between "Classic AI" and "Machine Learning" and you really care mainly about the classical stuff, then you might want to start with the Berkeley CS188 class. You can take it through EdX (https://www.edx.org/course/artificial-intelligence-uc-berkel...) or just watch the videos and download the notes and stuff from http://ai.berkeley.edu/home.html

    And if you just want to dive into reading some classic papers and stuff, check out:

    http://publications.csail.mit.edu/ai/pubs_browse.shtml

    and/or

    http://ijcai.org/past_proceedings

    Another good resource is

    http://aitopics.org/

  14. Recommendsrayalez2015in “Ask HN: Best book about artificial neural networks?”

    I have recently wrote an article collecting the best AI resources:

    https://medium.com/@rayalez/best-deep-learning-resources-76b...

    Specifically, I would reccommend AIMA as the best introduction to AI in general, and a fantastic video course from Berkeley:

    https://www.youtube.com/channel/UCshmLD2MsyqAKBx8ctivb5Q/vid...

    and also Andrew Ng's course on coursera:

    https://www.coursera.org/course/ml

    For neural networks there's an awesome course by Hinton:

    https://class.coursera.org/neuralnets-2012-001/lecture

    and UFLDL tutorial:

    http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutori...

  15. Recommendsnemesisrobot2015in “Tic Tac Toe: Understanding The Minimax Algorithm (2013)”

    The Berkeley AI class on edX[0] covers this, and other related algorithms, like alpha-beta pruning. It's a very fun class; recommended for anyone interested in this sort of thing

    [0]: https://www.edx.org/course/artificial-intelligence-uc-berkel...

  16. Recommendsdlwh2015in “The Game AI Programmer's Bookshelf”

    (I'm one of the authors of Overmind.)

    First, it's important to know that AI is a very broad term. Roughly, there's "modern" AI (machine learning and statistical modeling) and "classical" AI (mostly logic and search). Game AI (as I understand it) falls more into the "classical" AI camp, and classes these days are focusing more and more on modern non-game techniques.

    kaybe's link is a good starter class for modern AI. Norvig quite literally (co)wrote the text book on AI, and Sebastian Thrun. The PI on Overmind (Dan Klein) co-taught a class on edX (https://courses.edx.org/courses/BerkeleyX/CS188.1x/2012_Fall...) that you might also want to check out. They're all based on the same underlying book, just different focuses.

    Overmind itself is a collection of some reasonably sophisticated ML/modern AI, classical AI (which is more common in games), and a lot of horrible hacks. Really, tons of them.

    If you want, I can try to dig up the lecture slides for the "advanced" AI class we taught once that specifically focused on the kinds of techniques one would want to write StarCraft bot AIs.

  17. Recommendsnotimetorelax2013in “I Wasn’t Prepared to Work”

    If you have difficulty reading AI book, I highly recommend taking this course:

    https://www.edx.org/course/uc-berkeley/cs188-1x/artificial-i...

    Just read the chapters that are being covered in the course and you will have read one third of it! Second part will start early next year with further chapters covered.

  18. Recommendssravfeyn2011in “Stanford class on Information Theory”

    Is it just me that doesn't like these stanford offerings? I find it very, 'to the point' kind of teaching, AI and ML. I prefer to watch Profs teach to a live audience. They normally fill a sense of energy in live classes. The style of teaching in lumps of 5-6 mins on youtube is very boring. And also the assignments here lack a serious effort compared to their original offerings.

    I started my learning way back with http://www.cs50.net. I thought it would be great watching ai-class.org, but it isn't. Anyway, I found a very good AI course from UC-Berkeley (CS188). It's a streaming of live class sessions and is very interesting. And the assignments are top-notch as they are original class room psets.

    It would be great if the videos are sessions to live audience.

  19. Recommendssameep2011in “Ask HN: How do I start with Machine Learning?”

    For a broad(er) perspective on AI, checkout UC Berkeley's CS188 http://inst.eecs.berkeley.edu/~cs188. I think it's a good entry course into AI. One advantage is that the math requirement is not as high as Stanford's CS229 or EE263 (both of which are fantastic courses to be clear, but are easier to appreciate with the correct background).

  20. Mentionsdlo2016in “Ask HN: How to get started with machine learning?”

    Contrary to the other advice around here, I would strongly advise NOT taking a course. I think it is a good idea at some point, but it is not the first thing you should be doing.

    The very first thing you should do is play! Identify a dataset you are interested in and get the entire machine learning pipeline up and running for it. Here's how I would go about it.

    1) Get Jupyter up and running. You don't really need to do much to set it up. Just grab a Docker image.

    2) Choose a dataset.

    I wouldn't collect my own data first thing. I would just choose something that's already out there. You don't want to be bogged down by having to wrangle data into the format you need while learning NumPy and Pandas at the same time. You can find some interesting datasets here:

    http://scikit-learn.org/stable/datasets/

    And don't go with a neural net first thing, even though it is currently in vogue. It requires a lot of tuning before it actually works. Go with a gradient-boosted tree. It works well enough out of the box.

    3) Write a classifier for it. Set up the entire supervised machine learning pipeline. Become familiar with feature extraction, feature importance, feature selection, dimensionality reduction, model selection, hyperparameter tuning using grid search, cross-validation, ....

    For this step, let scikit-learn be your guide. It has terrific tutorials, and the documentation is a better educational resource than beginning coursework.

    http://scikit-learn.org/stable/tutorial/

    4) Now you've built out the supervised machine learning pipeline all the way through! At this point, you should just play:

    4a) Experiment with different models: Bayes' nets, random forests, ensembling, hidden Markov models, and even unsupervised learning models such as Guassian mixture models and clustering. The scikit-learn documentation is your guide.

    4b) Let your emerging skills loose on several datasets. Experiment with audio and image data so you can learn about a variety of different features, such as spectrograms and MFCCs. Collect your own data!

    4c) Along the way, become familiar with the SciPy stack, in particular, NumPy, Pandas, SciPy itself, and Matplotlib.

    5) Once you've gained a bit of confidence, look into convolutional and recurrent neural nets. Don't reach for TensorFlow. Use Keras instead. It is an abstraction layer that makes things a bit easier, and you can actually swap out Tensorflow for Theano.

    6) Once you feel that you're ready to learn more of the theory, then go ahead and take coursework, such Andrew Ng's course on Coursera. Once you've gone through that course, you can go through the course as it actually has been offered at Stanford here (it's more rigorous and more difficult):

    https://see.stanford.edu/Course/CS229

    I will also throw in an endorsement for Cal's introductory AI course, which I think is of exceptionally high quality. A great deal of care was put into preparing it.

    http://ai.berkeley.edu/home.html

    There are other good resources that are more applied, such as:

    http://machinelearningmastery.com/

    I hope this helps. What I am trying to impart is that you will understand and retain coursework material better if you've already got experience, or better yet, projects in progress that are related to your coursework. You don't need to undergo the extensive preparation that is being proposed elsewhere before you can start PLAYING.

  21. MentionsjoshAg2011in “List of best free online learning sites”

    Course material (lecture notes, projects, some have links to videos of lecture, &c). for every undergrad berkeley cs course is available for free if you know the website!

    http://inst.eecs.berkeley.edu/classes-eecs.html has links to all course websites and archives.

    you can look at what courses descriptions here: http://sis.berkeley.edu/catalog/gcc_list_crse_req?p_dept_nam...

    the main courses are:

    /cs61[abc]/ # intro cs

    /cs70/ # discrete math

    /ee122/ # networking with a cs bent in fall and an ee bent in spring

    /cs160/ # ui

    /cs161/ # security

    /cs162/ # systems and os (not recommended right now; the class is going through a restructuring and completely sucks)

    /cs164/ # compilers

    /cs169/ # software engineering

    /cs170/ # algorithms, this class usually doesn't have a website aside from homework assignments; i'd recommend just buying the textbook since its only $30 and the course very closely follows the entire text (save for the quantum chapter at the end)

    /cs172/ # Computability and Complexity

    /cs174/ # Combinatorics and Discrete Probability

    /cs184/ # graphics

    /cs186/ # databases

    /cs188/ # AI

    Lower division classes are numbered between 0 and 100, upper division classes are 100 to 199, and grad classes are 200 and up. A tens digit above 4 indicates a cs class, and a tens digit below five indicates an ee class.

    To get to the archive for a class without having to navigate to the first link first, go to inst.eecs.berkeley.edu/~<class>/archives if you want to go to the most recent website, just remove the /archives.

    EG, cs61's website archive is at http://inst.eecs.berkeley.edu/~cs61a/archives and http://inst.eecs.berkeley.edu/~cs61a will redirect to the most recent course's website.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help