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:
Lecture: 3656 Geology Monday/Wednesday 4-5:50
Recitation: 5249 Boelter, Friday 4-5:50
- Elaine Wah
- Office Hours: TBD
"Artificial Intelligence: A Modern Approach", by Stuart Russell and Peter
Norvig, Edition 2, Prentice Hall, 2003.
Programming ability in a high level language. Programming exposure to LISP
or SCHEME prefered. Not recommended for students without programming
Optional Lisp Primer:
"Lisp: A Gentle Introduction to Symbolic Computation" by Touretzky.
Very Optional Lisp (Encyclopedia) Reference:
"Common Lisp" by Steele.
There is a very detailed
online which serves as a quick tutorial
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"
and Steele's "Common Lisp" book in HTML at the CMU AI Repository
There will be a midterm exam, and a final exam, and an indeterminable
number of quizzes
Grading (Tentative and subject to change):
Late work will not be accepted.
30-35% on homework and quizzes,
30-35% on the midterm, and
30-40% on the final.
Cell Phone Policy: Turn off all cell phones and beepers.
If it rings, I get to answer it.
Class participation is strongly encouraged and may influence your grade.
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.
Introduction to course and artificial intelligence, LISP expressions,
Recursion, LET, list primitives, recursive list functions.
Problem spaces, problem types, search trees and graphs, AND/OR trees.
Brute-force search, breadth-first, depth-first, depth-first iterative-deepening.
Backward chaining, bidirectional search, best-first search, uniform cost
Pure heuristic search, A*, iterative-deepening-A*, depth-first branch-and-bound.
Two-player games, minimax search, alpha-beta pruning.
Constraint-satisfaction problems, backtracking and heuristic repair.
Planning, subgoaling, General Problem Solver.
Propositional and predicate calculus.
Resolution in propositional logic, conversion to clause form.
Unification, resolution theorem proving in predicate calculus, Prolog.
Non-monotonic reasoning, default logic, decidability, multiple extensions.
Probabilistic reasoning, Bayes theorem.
Production systems, expert systems.
Natural language processing, grammars, syntax and semantics.
Structured representations, semantic nets, frames, scripts.
Perception, speech, vision, line labeling of polyhedral scenes.