CSCI 315: Artificial Intelligence

General Information

Professor: Simon D. Levy
Lecture: M/W/F 2:30 - 3:25 Parmly 404
Office: Parmly 407B
Office Phone: 458-8419
  Office Hours: T/R 11:00-3:00 and by appointment

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.


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:


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.


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





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
from Observations
from Observations
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