This course felt very... meh. It didn't feel like I learned anything particularly useful if I want to go into Artificial Intelligence, and very much just felt like three separate courses squeezed into one. The course is split into three parts. The first two weeks delves into the different logic systems, including propositional logic, first order logic, and Horn logic. You learn how to prove statements, both semantically (interpreting its meaning) and syntactically (by manipulating symbols to arrive at other statements). The advantages and disadvantages of each logic system is explored and gives further motivation to why we should care about other logic systems (for example, our logic system should be complete and sound, yet simple and easy to adapt to new rules). I found this to be the easiest of the three topics because it's the topic that is the most familiar to me.
The next few weeks were exploring how agents share resources and how they should distribute bundles among each other so that certain properties of efficiency and fairness are respected. For example, if certain people express dissatisfaction about a candidate, their voice should at least be considered (which is something that's further explored in social choice). I found this topic to be... the most disconnected(?) of the three. It seems like this is a very specific field of artificial intelligence that should be taught as an economics course, not in this course. Even though the course content was interesting enough for me to continue, I often asked myself what the entire point of this topic was and found it hard to relate to aspects of artificial intelligence. The lecturer for this topic wasn't the best either; he didn't really go over how to do computations, but rather left it as an exercise for the viewer. So it took me longer to figure out what was happening than it needed to be. Even in the live session, he glossed over the computations and decided to focus on the less computationally heavy aspects, only for the bulk of the computations to appear in the final exam.
The last few weeks were left to explore a rather esoteric language. The notion of Answer-Set Programming is to convert a problem statement into a computational model whose answer sets correspond to solutions to the original problem statement. The theory of the last topic was interesting enough since this is a rather new way (not really new, the language is more or less the same as Prolog) to view problem solving. The interactive session was dedicated to solving NP-hard problems, Abdallah did a great job at motivating the use of answer set programming and teaching us the tricks of the language.
Overall, I felt that the course could have improved by making the link between the three topics a bit clearer and by motivating the middle topic a bit more. On their own, the topics would be interesting for anyone who just wants to learn new things. But if you're serious about artificial intelligence, it just felt very clunky and disjoint.