CSCI 335 - Artificial Intelligence
Fall 2011
Course Overview:
This course is an introduction to designing, understanding, analyzing,
and implementing computer systems that fall under the heading of
"artificial intelligence". Topics will include search algorithms,
automated reasoning, genetic algorithms, machine learning, and
robotics. We will also investigate some of the philosophical issues related
to artificial intelligence.
At the end of this course, you will be expected to be able to:
- Develop software that exhibits some degree of intelligent behavior
relative to a given domain
- Understand and apply heuristic search
- Determine whether a heuristic function is monotonic
- Apply an adversarial search algorithm in the context of a computer game
- Develop a genetic algorithm to solve an optimization problem
- Understand the basics of automated theorem proving
- Understand and apply the following machine learning algorithms:
- Multi-Layer Perceptron
- Self-Organizing Map
- Decision Tree
- Q-Learning
- Distinguish among supervised learning, reinforcement learning, and unsupervised learning.
- Program a mobile robot to navigate and achieve goals in an unstructured
environment
- Employ scientific experiments to analyze the performance of an
intelligent system
- Assess the scientific basis for claims about artificial intelligence
Instructor:
Dr. Gabriel Ferrer
M.C. Reynolds 312
Office Hours:
MF: 1:30-3:00 pm
TR: 1:30-2:30 pm
Feel free to make an appointment, or to stop by whenever my door is open.
Class Web Page:
http://ozark.hendrix.edu/~ferrer/courses/335/
Lecture Time:
B4 (2:45 - 4:00 pm, Tuesday/Thursday)
Final Exam Period:
Thursday, December 8, 8:30-11:30 am
Required Textbook: On Intelligence, by Jeff Hawkins and Sandra Blakeslee
This book is an overview of a neuroscientific theory of intelligence; it is not
a computer science text. We will use its theory of intelligence as a basis for assessing the "intelligence" of the systems we develop.
Grading Criteria:
Programming Assignments: 55%
Term Paper: 20%
Final Project: 20%
Class Participation: 5%
Grading Scale:
Each assignment receives a letter grade. The grading criteria for each
assignment will be described when it is assigned. Each
letter grade has associated with it a percentage grade as follows:
| Letter grade | Percentage |
| A | 95 |
| B | 85 |
| C | 75 |
| D | 65 |
| F | 50 |
Missing grades will be scored zero. Any grade can have a "+" or "-" attached
to it. A "+" is worth +5, and a "-" is worth -4. A grade of "A+" will only
be assigned to work that in some way goes above and beyond the requirements
for the assignment. For each category above, the total points earned will be divided
by the total points possible to yield a percentage. These percentages will
be weighted as given above. A final average of at least 90 earns an A;
80 earns a B; 70 earns a C; 60 earns a D; below 60 is failing.
Programming Assignments:
You will develop your understanding of artificial intelligence by developing
software that uses AI algorithms to achieve goals in a concrete domain.
These assignments will use the Python, Java, and Lua languages.
Several assignments will involve programming a mobile robot.
Revisions:
After assignments are returned, you are welcome to revise and resubmit your
work. I will grade anew each submitted revision, and average the original
and revised grades together to produce a new grade for that assignment.
Revisions may be submitted anytime until the start of the final exam period.
No late work will be accepted. Any work not submitted on time
is a zero. However, you may submit a solution after the deadline to qualify
under the revision policy. In effect, this means that late work can
earn up to half credit.
Term Paper:
An important component of the course is developing the ability to reason
critically about claims that a system is "intelligent" and about computational
theories of mind. To this end, you will compose a term paper in which you
analyze the relationship between the cognitive theory described in the textbook
and the types of algorithms we have studied in the course.
Final Project:
Towards the end of the semester, you will select a final project topic.
You will develop an intelligent system that either extends a concept that
we have explored this semester, or uses a concept that we have not covered.
You will give an oral presentation of your project during the final
exam period for this course. The project write-up will also be due at that
time.