Topic Name Description
Course Introduction Page Course Syllabus
Page Course Terms of Use
Unit 1: Introduction to Artificial Intelligence (AI) and AI Programming Page Unit 1 Learning Outcomes
1.1:Artificial Intelligence Introduction and Overview URL University of California, Irvine: Max Welling's "Indtroduction to AI"

Read these slides, which summarize the types and scope of AI applications and the state of the art in the field, as well as the early history of AI.

URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapter 1 on pages 1-4. AI concepts and techniques are learned in two steps: theory, and implementation of theory in programs. AI techniques are difficult to program and can be obscured by the programming details. To make these techniques explicit and to hide the programming details, AI languages, such as Lisp, Prolog, Scheme, and others, have been defined to have language features that directly support the implementation of AI techniques. The use of class libraries and source code libraries serve the same purpose for general-purpose languages, such as C++ and Java. The Watson text uses Java Classes for program examples of AI concepts and techniques. Java, being widely used, has the added advantage of making these techniques more widely available.

1.2: Logic Programming URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Logic Programming"

Read these slides on logic as a programming language. In declarative programming, you write statements that specify how to manipulate the data; that is, you write specific algorithms. In logic programming, you write statements that specify what is true of the world represented and rely on general-purpose algorithms that are built into the logic (programming) system.

Unit 2: Search Page Unit 2 Learning Outcomes
2.1: Motivation URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapter 2 on the search problem. One way to solve a problem is by searching for a solution in a set, called the search space. This approach assumes that a search can be done in an acceptable amount of time at an acceptable cost.

2.2: Types of Searches URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Search, Part 1"

Read these slides.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Search, Part 2"

Read these slides.

2.3: Time and Space Requirements, More on Heuristics, and Complexity URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Search, Part 3"

Read these slides.

Unit 3: Constraint Satisfaction Page Unit 3 Learning Outcomes
3.1: Problem Definition and Approaches URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Constraint Satisfactory Problems (CSP) and Games"

Read these slides. CSP stands for Constraint Satisfaction Problems, which include, for example, problems in task scheduling, planning robot actions, solving puzzles (for example, the classic N-Queens Problem and the Four Color Problem), and interpreting sensory data.

Unit 4: Game Playing Page Unit 4 Learning Outcomes
4.1: Background: Game Playing in AI URL Wikipedia: "History of Artificial Intelligence"

Read this history of artificial intelligence.

URL University of California, Irvine: Max Welling's "Introduction to AI"

Review these slides. Game playing provided numerous applications that motivated the development of AI techniques, such as search and problem-solving techniques. In addition, it served as a popular benchmark for demonstrating progress and improvements of AI research.

4.2: Applicability of Search URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read section 2.5 for a discussion of how to program searching and implement those ideas in Java programs for game playing. Min-max is a search strategy for two-person games whereby a move is selected by choosing the child node that has either the maximum (a player strives to maximize his/her advantage) or minimum (a player strives to minimize the other player's advantage). Alpha-Beta search is an improvement of min-max searching by eliminating, or pruning, branches from the search tree.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Constraint Satisfactory Problems (CSP) and Games"

Read these slides, which discuss the application of ideas presented so far on two-person games, like tic-tac-toe, checkers, and chess. The states of a board game are the board positions or configurations of the game pieces, such as pieces on the chessboard. The states are represented by the nodes of a tree. The game moves, or operators, are represented by the arcs of a tree. The goal state is a goal node, i.e., the board configuration that depicts the winning position of the game pieces. In many games, the size of the search tree can be very large and the complexity of the search can be high. Heuristics are used to guide the search, increase efficiency, and improve game-playing ability.

URL University of California, Irvine: Max Welling's "Games"

Read these slides. MinMax and Alpha-Beta are fundamental search algorithms used in game playing.

Unit 5: Logic Page Unit 5 Learning Outcomes
5.1: Definition and Types of Logic URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Logic"

Read the following slides:

URL University of California, Irvine: Max Welling's "Logic"

Read these slides.

5.2: Some Examples of Practical Applications URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapters 3 through 5. Chapter 3 gives examples and tools for applying logic. Chapter 4 discusses the Semantic Web. Reasoning assumes a body of data from which inferences can be made, and this chapter discusses the Semantic Web as a source of data for use in programs, in particular for inference algorithms. Chapter 5 gives examples and tools for expert systems application in reasoning.

Unit 6: Machine Learning Page Unit 6 Learning Outcomes
6.1: Definition of Learning and Machine Learning URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Machine Learning Introduction"

Read these slides. Machine learning is learning using methods that can be implemented in software.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Machine Learning I"

Read these slides.

URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapters 6 and 7. Recognition of patterns occurs in search, game playing, language recognition, expert systems and rule-based systems, vision, and learning.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Feature Spaces"

Read these slides.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Machine Learning IV"

Read these slides, which deal with huge numbers of features by feature selection, ranking, and applications to clustering. 

6.2: Types of Machine Learning URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Machine Learning III"

Read these slides, which discuss training for artificial neural nets.

URL Wikipedia: "Types of Machine Learning"

Read the following articles on types of machine learning.

There are many learning methods, each having strengths and weaknesses in particular applications, for particular data sets and situations. Issues that have to be contended with include: bias (a predicted value of a learning algorithm is systematically incorrect when trained on several different data sets) and variance (variation of a predicted value for a given input when trained on different data sets), complexity of functions to be predicted, complexity of data, noisy data, missing data, etc.

URL University of California, Irvine: Max Welling's "Machine Learning"

Read these slides.

Page Stanford University: Andrew Ng's "Machine Learning"

Watch these lectures.

URL Stanford University: Samuel Ieong's "Probability Theory Review"

Read this section, which describes joint distributions. Joint distributions from probability theory are useful for studying semi-supervised learning. Two statistical techniques that are also helpful are maximum likelihood and expectation maximization, both of which are used to estimate the parameters of statistical models.

6.3: A Practical Tool for Machine Learning URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapter 8 on pages 129-136, which describes tool support for machine learning.

Unit 7: Natural Language Understanding Page Unit 7 Learning Outcomes
7.1: Language Overview and Basics URL Mark Watson's "Practical Artificial Intelligence Programming with Java"

Read Chapters 9 and 10. Chapter 9 gives practical examples of NLP from a programming perspective. Chapter 10 provides additional discussion on extracting semantic information from text and databases.

7.2: Syntax and Semantics URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Language Understanding I"

Read these slides.

URL Massachusetts Institute of Technology: Leslie Kaelbling and Tomás Lozano-Pérez's "Language Understanding II"

Read these slides.

Unit 8: Robotics Page Unit 8 Learning Outcomes
8.1: Introduction and Overview of Robotics URL Massachusetts Institute of Technology: Harry Asada and John Leonard's "Introduction to Robotics"

Read this section, which gives a mechanical engineering perspective on robotics.

URL Massachusetts Institute of Technology: Daniela Rus' "Introduction to Robotics"

Read this overview of the history of robots, definitions in robotics, and a less mechanically-oriented perspective on robotics.

8.2: Positioning, Vision, Planning, and Control Page Stanford University: Oussama Khatib's "Introduction to Robotics"

Watch these lectures.

8.3: Practical Software and System Process for Robotic Applications URL Massachusetts Institute of Technology: Seth Teller's "System Engineering and Testing Strategies"

Read these slides, which address systems issues in robotics applications.

Optional Course Evaluation Survey URL Optional Course Evaluation Survey

Please take a few moments to provide some feedback about this course. Consider completing the survey whether you have completed the course, you are nearly at that point, or you have just come to study one unit or a few units of this course.

Your feedback will focus our efforts to continually improve our course design, content, technology, and general ease-of-use. Additionally, your input will be considered alongside our consulting professors' evaluation of the course during its next round of peer review. As always, please report urgent course experience concerns to contact@saylor.org and/or our discussion forums.