Fundamentals of Artificial Intelligence

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisite: course 180. Introduction to fundamental problem solving and knowledge representation paradigms of artificial intelligence. Introduction to Lisp with regular programming assignments. State-space and problem reduction methods, brute-force and heuristic search, planning techniques, two-player games. Knowledge structures including predicate logic, production systems, semantic nets and primitives, frames, scripts. Special topics in natural language processing, expert systems, vision, and parallel architectures. Letter grading.

Review Summary

Clarity
8.3 / 10
Organization
8.3 / 10
Time
0-5 hrs/week
Overall
10.0 / 10

Reviews

    Quarter Taken: Spring 2020 In-Person
    Grade: A

    CS 161 with Darwiche is a great CS elective class. Darwiche is a great lecturer: his lectures are clear, organized, understandable, and he makes the material interesting. When uploading lecture recordings, he'd go back and edit each lecture with corrections and add fun intro music – his passion for student learning was really evident. The course itself is a cool overview of AI, which touches on algorithms, logic, bayesian networks, and ML. Homeworks are weekly and done in LISP, they're not too bad. Tests are very reasonable. The textbook is also great, it's the go-to book in the field. Definitely would recommend!

    Quarter Taken: Spring 2020 In-Person
    Grade: A

    The professor is one of the most caring I’ve ever had. Every lecture is meticulously prepared, with diagrams and data prepared in a neat folder on the professor’s computer and pasted into the lecture (digital) whiteboard when needed. He is also quite passionate about certain aspects of course that relate to his own research, which is always great to see in a professor. Course materials and homeworks are also well prepared and interesting.

    Quarter Taken: Spring 2022 In-Person
    Grade: A-

    This is a great CS elective, and I would definitely recommend CS 161 with Professor Darwiche. Overall, CS 161 focuses more on the conceptual, theoretical aspects of AI. You'll mainly be learning about various search algorithms and optimizations used in AI, as well as various forms of knowledge representation and reasoning that intelligent agents use. The material towards the later part of the course gets much more interesting, when you'll cover Bayesian networks, probabilistic reasoning, and neural networks (more ML type of stuff). Overall, Professor Darwiche was a very engaging lecturer, and took particular care to explain seemingly abstract concepts in a way that we students can easily understand.

    Here is a more detailed breakdown of the grading policy:

    Homeworks (30% of the final grade): Most of the written HW assignments are quite straightforward and take a few hours max. But some of the homeworks could be quite time consuming. One homework that stood out to me was creating an efficient SAT solver that could determine the satisfiability of boolean statements in CNF with more than 50 variables. The solution was definitely not obvious, and it took me more than 20 hours to eventually come up with an efficient implementation.

    Exams: The midterm was worth 30% and final 40% of the course grade. Honestly, exams were more straightforward than I expected them to be, as the questions on them were all clearly related to some concept either in the lectures or in the homeworks. The most important part of doing well on his exams is to really focus on understanding the concepts and understanding them precisely. Just sort of knowing the material won't cut it, since Darwiche's true/false test questions are really detail-oriented and it's quite easy to get them wrong if you aren't careful. For reference, the final was 60 multiple choice and true/false questions and the average was around a 79. Questions on the final often look easier than they actually are.

    The final grading was generous. I had an 88% raw score in this class and received A- as my final grade, so there was definitely some kind of curve for this quarter. Overall, highly recommend this class even if you're only slightly interested in AI and you are okay with a bit of theory.

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    Professor Darwiche is very passionate and clearly knows his material. He has also been involved in a lot of research in AI, particularly involving Knowledge Representation and Reasoning, and it was nice that he introduced us to some of his research in the course. His lectures were always very well planned, and he gave us a brief overview at the beginning of each lecture of the material we would go through that day.

    Exams were pretty easy, I didn't have to study as hard for them as I actually did.

    The first half of the course was very fun, very well structured, and was enjoyably challenging. For example we made a solver for the game Sokoban, which was pretty challenging but also pretty fun and very cool. The last half of the course felt sort of scattered and I wasn't sure why we were learning what we were being taught - things like learning Bayesian Networks from data (which we didn't actually do, we used a tool that did it for us). There was barely any programming in the last half.

    At the end of the day, however, I feel that I learned important material in this course. This course gives you an overview of the roots of AI, and with the modern success of Machine Learning, I feel that it's important to understand the real context around it, and how to judge it in comparison to other methods of AI.

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    CS 161 is a refreshing overview of AI that focuses primarily on non-machine learning approaches. The course content focuses on formulating problem solving as search, search techniques and optimizations, knowledge representation and reasoning, and Bayesian networks and probabilistic reasoning. There is a small section at the end covering decision trees and neural networks, although honestly the course would be better off without it (leave those to CS M146, where they can be explored in depth). If you enjoyed CS 180, and learning Lisp in CS 131, you will enjoy CS 161.

    Most of the homework assignments include some coding portion in Lisp. If you've already taken CS 131, you will already know if you like Lisp or if you hate it (there seems to be no in-between). If you haven't yet, you may discover that functional programming is a refreshing new paradigm that inspires you to broaden your horizons and rediscover a language that drove AI research in the 1960s and 70s... or you may curse yourself for signing up for a 6 week crash course in Lisp and vow to never use a linked list or parentheses anywhere in your code again. The former camp will enjoy this course much more. Overall, the difficulty of the assignments is determined largely by your ability to solve problems in a functional style. If you can do that, the assignments are very easy, and you will probably think this course is easier than most CS electives. If you struggle to think using functional patterns, you may find the homework harder than you expected.

    Professor Darwiche is a good lecturer. He explains concepts well, though he sometimes has a tendency to go on what seem like long tangents. It is unfortunate that he didn't post any course notes or written slides, because if you missed something in lecture it's impossible to find it again. The TA slides were somewhat helpful, but didn't always contain all the information from lecture. You should attend lectures live - do not plan on skipping them and still passing the course.

    The exams were pretty straightforward, although they do test on practically everything mentioned in lecture. There's unfortunately very little practice material posted to help study for the exams, so it's hard to judge your readiness. The textbook reading is a lot, but it didn't seem like it was necessary to do.

    Ultimately, one of the coolest aspects of the class was that Professor Darwiche lecturers on subjects that he researched himself. He doesn't mention it in class, but you can look up topics like d-DNNF circuits and find the research papers that originally proposed those topics, written by Professor Darwiche. It's an incredible opportunity to learn about those topics directly from the source himself, and you probably won't find them in any other undergraduate course at UCLA. That's what a research university should feel like.

    Quarter Taken: Spring 2023 In-Person
    Grade: B+

    He is very considerate of students (giving extensions for holidays and for big events if asked, and changing the grading scheme to 1 hw drop instead of all 9 counting). However, he didn't really explain some of the topics quite clearly, which leaves you confused for a majority of the lecture until you find out how it actually works.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Darwizard is fantastic! This man is renowned for some reasons.

    Quarter Taken: Spring 2023 In-Person
    Grade: A

    Adnan Darwiche knows his stuff, but sometimes it's difficult from the analogies or terms he chooses to grasp the concepts on the first try (as in, during lecture). He's definitely an expert in the field having written half the literature on classical AI and Bayesian Networks. He asks questions to the students during class and even though most of the time, student answers are misguided or incorrect, he helps guide people back to the point. I enjoyed this class and for the projects were likewise fun.

Course

Instructor
Adnan Darwiche
Previously taught
24S 23S 22S 21S 20S 18F 17F 16F 15F 14F 13F 12F 11F 08S 07S 06S 05S 04S 03S 02S 01S

Grading Information

  • No group projects

  • Attendance required

  • 1 midterm

  • Finals week final

  • 38% recommend the textbook