CSCI 335 - Artificial Intelligence
This course is an introduction to understanding
and implementing computer systems that fall under the heading of
"artificial intelligence". At the end of this course, you will be expected
to be able to:
Dr. Gabriel Ferrer
- 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
- Understand the basics of automated symbolic planning
- Understand and apply the following machine learning algorithms
- Multi-layer perceptron (including autoencoders)
- Self-Organizing Map
- Naive Bayesian Classifier
- Decision tree learning (including random forests)
- Distinguish among supervised learning, reinforcement learning, and unsupervised learning
- Employ scientific experiments to analyze the performance of an
- Assess the scientific basis for claims about artificial intelligence
Office Hours (M.C. Reynolds 312):
By appointment. To make an appointment with me, visit
From there, you can see my availability and select an appointment time.
Class Web Page:
B3 (1:15 - 2:30 pm, Tuesday/Thursday)
Final Exam Period:
Thursday, December 7, 2:00-5:00 pm
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.
There are a total of 1,000 points available over the course of the semester.
The thresholds for earning each letter grade are as follows:
|Letter grade||Points to achieve|
Here are the semester's assignments and the associated points for each:
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 Java programming language.
Each project (80 points total) will involve each of the following:
Presentations: As mentioned above, for each programming project you will give two presentations: a progress report and a final report. These
presentations will be graded for clarity of exposition, proper use of slides,
and accuracy of content and analysis.
- Programming assignment (20 points): Implement an AI algorithm for a given task.
- Experimentation (20 points): Run a series of experiments using your implemented algorithm.
- Progress report (5 points): Give a one-slide PowerPoint progress report during the class period prior to the project's due date. In this report, present the results of your experiments so far.
- Paper (25): You will write a paper describing the results of your experiments.
- Final presentation (10 points): Give a three-slide PowerPoint presentation describing the results from your paper.
After projects 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 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.
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 an essay 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.
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
It is the policy of Hendrix College to accommodate students with disabilities,
pursuant to federal and state law. Any student who needs accommodation
in relation to a recognized disability should inform the instructor at the
beginning of the course. Students should contact Julie Brown in Academic
Support Services (505-2954; email@example.com) to begin the accommodation
The anticipated schedule for the semester is below. The instructor reserves
the right to alter the schedule as necessary during the semester.
|8/24||Thursday||Search Algorithms||On Int 9-22||None|
|9/5||Tuesday||Planning||On Int 23-39||None|
|9/14||Thursday||Adversarial Search||On Int 40-64||None|
|9/21||Thursday||Machine Learning: kNN and Naive Bayes||None||None|
|9/26||Tuesday||Machine Learning: kNN and Naive Bayes||On Int 65-84||None|
|10/3||Tuesday||Neural Networks: Perceptrons||None||None|
|10/5||Thursday||Neural Networks: Perceptrons||On Int 85-105||None|
|10/17||Tuesday||Neural Networks: Self-Organizing Map||None||None|
|10/19||Thursday||Neural Networks: Self-Organizing Map||On Int 106-125 ||None|
|10/31||Tuesday||Q-Learning||On Int 125-144||None|
|11/7||Tuesday||Machine Learning: Decision Trees and Random Forests||None||Final Project Proposal|
|11/9||Thursday||Machine Learning: Decision Trees and Random Forests||On Int 144-164||None|
|11/16||Thursday||Recent advances in AI||On Int 164-176||Revised Final Project Proposal|
|11/28||Tuesday||Progress Reports||On Int 177-205||Progress Report|
|11/30||Thursday||Retrospective||On Int 205-233||None|
|12/7||Thursday||Final Project Presentations||None||Final Project Report|