CSCI 315: Artificial Intelligence
General Information
Brief Overview
This course provides an overview of Artificial Intelligence, the sub-field of
computer science that deals with problems that people are generally
better at solving than computers. These problems include
the "hard" (or NP-complete)
problems that you learn
about in a
theory of computation course, as well as everyday tasks like walking
around, planning, and understanding language, where computers still do
surprisingly poorly. As described in the
University Catalog,
the course combines a discussion
of philosophical issues with hands-on problem solving.
Textbook
S. Russell & P. Norvig (2003)
Artificial Intelligence: A Modern Approach, Second Edition.
Prentice Hall. AIMA has become the
most popular textbook in AI, and for good reason: it combines an
encyclopedic coverage of the field with clear, concise explanations, and uses
explicit pseudocode algorithms that can be translated easily into a high-level
language like Python.
Here are some additional readings that you may enjoy:
Because our assignments will be tested in a
"virtual world" of interacting human and AI agents, you might also find it enjoyable to
read some very prescient science fiction related to these topics. The following books can be
ordered from Amazon, borrowed from the library, or
borrowed from Prof. Levy:
Assignments
The assignments for this course will be based on the
Quagents
(Quake Agents) package from the University of Rochester. This package
provides an exciting "real-world" platform for learning, developing,
and testing AI algorithms, and is thoroughly integrated with the AIMA
textbook and its agent-based approach. Instead of interacting with your
programs in a command-line or GUI interface, you will be using them to
control virtual robots in a fast-paced 3D video game – one of the
most popular in
history. I have written a little
QuagentClient class in Python
that we will use for controlling these agents, and assignments will be
in Python unless otherwise specified.
Given enough time and interest, we may also want to look into the
NERO videogame platform, whose focus is more
on neural networks than general AI.
Attendance and Preparation
It is very important that you attend class. There will be considerable information
given in class that is not available elsewhere. Your participation is of value
to your classmates and to me. In preparation for class, be sure to review the
material covered in the last class meeting. See me or email me if you have
questions. Also, read over the material to be covered in the next class meeting.
Grading
-
Assignments
(written exercises and coding): Though there is no official lab
for this course, you will spend much of your time programming (50%).
- Two one-hour exams (30%)
- Final exam (20%)
- These percentages are flexible. If you have a bad day and don't do well on an exam or problem set, I will try and weight your other work more heavily.
The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69
D+; 63-66 D; 60-62 D-; below 60 F.
Honor System
Unless stated otherwise, the exams will be done without books or notes and without assistance from other people.
You may work with another person on the programming assignments, but this should be acknowledged
on your paper.
Tentative Schedule of Lectures and Exams
| |
Monday
|
Wednesday
|
Friday
|
03 Sep
Week 0 |
|
|
Course Overview;
What is Intelligence?
|
10 Sep
Week 1 |
Chapter 1: Introduction
Assignment 0 due
|
Chapter 2: Ingelligent Agents
|
Ingelligent Agents
|
17 Sep Week 2 |
Ingelligent Agents
Assignment 1 due
|
Ingelligent Agents
|
Chapter 3: Search
|
24 Sep
Week 3 |
Search
|
Search
|
Chapter 7: Logical Agents
|
01 Oct
Week 4 |
Logical Agents
|
Logical Agents
Assignment 2 due
|
Logical Agents
|
08 Oct.
Week 5 |
Logical Agents
|
Logical Agents
Assignment 3 due
|
Reading Day; No class
|
15 Oct
Week 6 |
Exam #1: Chapters 1,2,3,7
|
Chapter 22: Communication and Language
|
Communication and Language
|
22 Oct
Week 7 |
Communication and Language
|
Communication and Language
|
Chapter 18: Learning from Observations
Assignment 4 due
|
29 Oct
Week 8 |
Learning from Observations
|
Learning from Observations
|
Learning from Observations
|
05 Nov
Week 9 |
Language Processing in Prolog,
Part I
|
Language Processing in Prolog,
Part II |
Language Processing in Prolog,
Part II
Assignment 5 due
|
12 Nov Week 10
|
Language Processing in Prolog,
Part III
|
Exam #2: Chapters 18,22
|
Language Processing in Prolog,
Part III
|
26 Nov
Week 11 |
Genetic Algorithms in the Real World,
Part I:
Intro to Genetic Algorithms
|
Genetic Algorithms in the Real World
Part II:
Multi-Objective Optimization
|
Genetic Algorithms in the Real World
Part III:
The NSGA-II Algorithm  
(Article)
|
03 Dec
Week 12 |
Conclude MOO / NSGA-II
Assignment 6 due
|
Genetic Algorithms in the Real World
Part IV:
Learning with Neural Networks
|
Genetic Algorithms in the Real World
Part V:
The NEAT Algorithm & NERO Game
Wikipedia Entry
30-page NEAT article
9-page NEAT article
2-page NERO article
|
10 Dec
Finals Week |
|
|
Assignment 7 due
|