CPS 170
Introduction to Artificial Intelligence

Required Text

Artificiall Intelligence: A Modern Approach, Stuart Russell and Peter Norvig. Be sure to check for errata! (scroll down for a list of current errata)

Other texts

  • Artificial Intelligence: A New Synthesis, by Nils J. Nilsson.
  • The Quest for Artificial Intelligence, by Nils J. Nilsson.

    (Note: Below are machine learning texts that might be of interest to students who want to read further on machine learning.)

  • Pattern Recognition and machine Learning by Christopher M. Bishop. Be sure to download the errata!
  • Neural Networks for Pattern Recognition, Christopher M. Bishop. (It's not as much about neural networks as you might expect given the title. This is a good overview of many machine learning topics, but it is largely superseded by the required text.)
  • An Introduction to Computational Learning Theory, Michael J. Kearns and Umesh V. Vazirani. (A good introduction to computational learning theory - not really the focus of the class though.)
  • Reinforcment Learning, An Introduction, Richard S. Sutton and Andrew G. Barto. (An accessible introduction to reinforcement learning that is also available online.)
  • Machine Learning, Tom M. Michell. (An introduction to classic concepts in machine learning - a little dated now.)
  • The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Trevor Hastie, Robert Tibshirani, and Jerome Friedman. (Good coverage of machine learning with more of a statistician's perspective than the others in this list.)
  • Convex Optimization, Stephen Boyd and Lieven Vandenberghe. (Very thorough treatment by real experts and the full text is available online.)

    Tutorials and demos

  • An Introduction to Computational Complexity, by Kimon Spiliopoulos. (Parts A-D give a concise overview of some key concepts - a good read for non computer scientists who want to get up to speed quickly.)
  • Rabiner's classic HMM tutorial
  • The University of Alberta has a great tutorial and interactive demo on decision trees.
  • Perceptron Demo
  • k-means clustering demo

    Useful Code and Programs

  • matlab is an extremely convenient and useful language for machine learning work. It is installed on computer science department machines and Duke has a site license that should permit any student to run matlab while connected to the University's network.
  • octave is an open source alternative to matlab. It is included with many linux distributions and is now included with the latest version of cygwin, a linux-like environment for Windows.
  • Weka is a great environment for learning and experimenting with a variety of machine learning algorithms.
  • An extensive list of SVM related software is available.
  • ghostview is a free postscript interpreter that will let you viewer older papers stored in postscript format. (Newer papers tend to be stored in pdf.)
  • Virtual Box is a free virtual machine that will allow you to run a second OS inside of a window on your current Windows, Linux, Solaris, or OS X machine. This is useful if you want to try software tools that are not available for your native OS.
  • gnuplot is a useful program for plotting arbitrary functions.
  • CutePDF Writer is a free tool for generating PDFs from within Windows. It appears as a printer and has no ads or other distractions, so it's quite painless to use. (From Mac OS or linux, you can use the tools included with the OS distribution.)
  • Ubuntu is a popular, free, linux distribution that works on most x86 hardware.
  • SWI-Prolog

    Google Search

  • The original page rank paper.
  • A more mathematical view: The $25,000,000,000 Eigenvector, The Linear Algebra Behind Google.

    Careers

  • Occupational employment projections to 2018

    Planning

  • 2011 International Planning Competition
  • Remote Agent Planner at NASA.
  • Graphplan home page

    Question Answering

  • Building Watson: An Overview of the DeepQA Project, AI Magazine, Fall 2010. (Note: It's not clear how long this link will be active.)
  • Wolfram Alpha

    Autonomous Vehicles

  • Google's blog entry on autonomous vehicles
  • NY Times article on Google's Autonomous Vehicle efforts
  • Article on CMU's Urban Challenge Winner
  • Article on Stanford's Entry in the Urban Challenge (second place, but possibly more related to Google's current efforts)
  • Article on Stanford's Grand Challenge Winner