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: 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 gradePercentage
A95
B85
C75
D65
F50

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.