Elements of AI

Category: Computer Science Published: Sunday, 24 May 2015

This is a graduate level course being offered at Indiana University as part of the foundational requirements for MS/PhD. I took this course on Fall 2011 with Prof. Kris Hauser. In this course we used the following book: Artificial Intelligence: A Modern Approach (3rd Edition). This is a classic Artificial Intelligence book which gives an overview of the subject. I recommend this book both for beginners and as a reference for more advance work. 

The following is a compilation of my solutions to assignments given in class. All code written by the course's associate Instructor Mark Wilson in Python.

Assignments


  1. Assignment 1 - [Solution] - [Code]
  2. Assignment 2 - [Solution] [Code]
  3. Assignment 3 - [Solution]
  4. Assignment 4 - [Solution] [Code]
  5. Assignment 5 - [Solution] [Code]
  6. Assignment 6 - [Solution] [Code]
  7. Assignment 7 - [Solution]
  8. Assignment 8 [Code]

More Resources


My take on the subject


Artificial Intelligence is one of the core areas of Computer Science. In essence the subject can be equated with Automated Decision Making. The central question is: how can we enable computers to make their "own" decisions?. This is by nature a philosophical inquiry. To begin with: what on earth does it mean for a computer to make a decision by itself? Can computers ever act on their own? These are very interesting question, however, this course does not deal with any of these issues - maybe a quick mention at the very first class and that is it. On the contrary, this course is mainly concerned with practical aspects related to such questions.

The current reality of the subject is far from what science fiction novelists would have us thinking. In fact, current AI can be thought of as a Framework composed of Techniques and Tools, the majority of them mathematical in nature, to make use of the vast quantities of data available by exploiting them and allowing computers to crunch numbers really, really fast and discover patterns that otherwise would be invisible to humans (see also Machine Learning).

At the end of the day we must remember that computers are machines capable of computation at speeds far beyond what any human is capable of doing. On the other hand, Computer Systems -the combination of all tools related to modern computers: Databases, Operating System, Networks, etc- does emerge as something more than number crunching. Is at this level that Artificial Intelligence is making a real contribution and will continue to do so in the future, even if it is does not become what the popular imagination think it will.