cs161 Syllabus

Fundamentals of Artificial Intelligence - CS161


This is an undergraduate course that introduces the fundamental problem solving and knowledge representation paradigms of artificial intelligence. The first couple lectures review the LISP programming language. The next part of the course will cover problem solving including problem spaces, brute-force and heuristic search, two-player games, constraint-satisfaction problems, and planning techniques. The third section will deal with knowledge representation including predicate calculus, non-monotonic inference, probabilistic reasoning, production systems, semantic nets, frames, scripts, and semantic primitives. Finally, there will be several lectures dealing with specialized topics such as expert systems, natural language processing, speech, vision, and neural networks.


Classroom Place and Time: Teaching Assistant: Course Prerequisite: Required Textbook: "Artificial Intelligence: A Modern Approach", by Stuart Russell and Peter Norvig, Edition 2, Prentice Hall, 2003.

Optional Lisp Primer: "Lisp: A Gentle Introduction to Symbolic Computation" by Touretzky.

Very Optional Lisp (Encyclopedia) Reference: "Common Lisp" by Steele.

Online Resources

There is a very detailed "Lisp Primer" online which serves as a quick tutorial

The "Crimson Editor" is an editor for creating and modifying Lisp programs. It supports color coding for over 100 different programming languages, but Lisp mode is not enabled by default. But if you go into the preferences, you can disable and enable whichever languages you want. It's primary advantage over dumb editors is that it has parenthesis matching; when the cursor is placed on a forward or backward parenthesis, it shows the matching parenthesis.

There are several online Lisp books including A Gnu Common lisp reference manual , "Ansi Common Lisp" , "On Lisp" "On Lisp" , and Steele's "Common Lisp" book in HTML at the CMU AI Repository "Common Lisp" ,


Late work:

Grading (Tentative and subject to change):

Cell Phone Policy: Turn off all cell phones and beepers. If it rings, I get to answer it.

Class Participation:

Collaboration Policy:

You are encouraged to work on your own in this class. If you get stuck, you may discuss the problem with other students, PROVIDED THAT YOU SUBMIT THEIR NAMES ALONG WITH YOUR ASSIGNMENT. ALL CODE MUST BE WRITTEN UP INDEPENDENTLY, HOWEVER.  You may always discuss any problem with myself or the TA, without attribution. You are expected to subscribe to the highest standards of academic honesty. This means that every idea that is not your own must be explicitly credited to its author. Failure to do this constitutes plagiarism. Plagiarism includes using ideas or code from any other students or individuals, or any sources other than the required text, without crediting these sources by name. YOU MAY NOT USE OLD SOLUTION SETS UNDER ANY CIRCUMSTANCES. Plagiarism will not be tolerated in this class. Any student suspected of plagiarism will be reported to the Dean of Students for disciplinary action, which may result in suspension or dismissal from the University. In order to have any work graded in this class, you must sign and return the separate collaboration policy form that is being distributed.

Tentative Course Outline:
The outline below is tentative and subject to change.