CSCI 108

Artificial Intelligence: Image and Reality

Professor:Andrea Danyluk
email:andrea "at" cs "dot" williams "dot" edu
phone: x2178
Office:TCL 305
Office Hours:M 8:00-10:00 PM, T 1:00-3:00 PM, W 10:00-11:00 AM, by appointment
Lectures:MWF 9:00-9:50, TCL 206
Labs:Thurs 1:00-2:30, TCL 312B
TA:Bill Jannen
TA Hours:Sun 8:00-10:00 PM (CS Lounge or TCL 312), W 5:30-8:30 PM (TCL 217 or 217A)


The Essence of Artificial Intelligence, Alison Cawsey
additional readings in the Course Packet

Course Description

Computer Science 108 is an introduction to the field of Artificial Intelligence (AI). Artificial Intelligence is a concept that has been pondered by many, from computer scientists to philosophers to novelists and film-makers. "AI" has made its way into our vocabulary and brings to mind images of walking, talking, and thinking robots. Great strides have been made in the field, but promises have also been broken in the 50 years since this area of research was officially named.

In this course, we will explore the field of Artificial Intelligence, considering the state of the art as well as the ways in which the field is depicted in literature and film.

We will also consider the practical issues involved in building AI systems. We will explore game-playing systems, systems that learn from their environments, and systems that create plans for complex tasks. In weekly lab sessions, held on Thursdays, you will work in groups to build small, mobile robots and to program them to perform a variety of tasks such as obstacle avoidance and light seeking. Please note that attendance at lab sessions is mandatory.

Lectures and Discussions

In class we will begin with an overview of the history of AI. After this brief introduction, we will examine robotics and, in particular, some of the major paradigms of robot control. Later in the semester we will study fundamental AI techniques that are useful for, but not limited to, robotic systems.

In discussions we will consider a wide range of topics. We will discuss robot ethics; we will consider how AI is portrayed in literature and film; we will discuss AI and creativity; and we will consider the merits of arguments made by opponents of AI.


While a number of early labs are devoted to building simple vehicular robots, the focus of labs will be on programming. You will write robot programs on Power Macintosh G4s in the special-purpose Computer Science lab in TCL 312B. The robots are controlled with the Handy Board, which is based on the Motorola 68HC11 processor. Programs will be written in Interactive C, a simplified version of C. No previous knowledge of C (or of any programming language) is required.

In the lab you will be working in small groups (typically two students per group). Each group will be asked to demonstrate that its robot appropriately performs the assigned task for the week. In addition, each group will turn in a program.

Lab assignments are not typically designed to be completed during the (short) lab session. However, the lab is open to you at most other times so that you may finish any work you were unable to complete during the scheduled lab.

Due Dates and Assignments

All lab work must be completed by 10:00 PM on the Monday following the lab. You will submit your laboratory programs electronically. Only one program needs to be turned in per group. You must also demonstrate your robot's behavior to me.

You will have four problem sets to complete over the course of the semester. You will find that these reinforce concepts that you consider in your reading and that we cover in lecture. In addition, you will find these to be good preparation for your final exam, which will largely follow the format of the problem sets. Dates on which these are handed out and due are as follows:
Handed out:Due:

In addition, you will write two short papers. Dates for these are as follows:
Handed out:Due:

Students with disabilities who may need disability-related classroom or lab accommodations for this course are encouraged to set up an appointment to meet with me as soon as possible and to contact the Dean's Office at x4262 to better insure that accommodations are provided in a timely manner.


10%Class participation
36%Problem sets
20%Labs (programs + demos + participation)
16%Final exam

All problem sets and papers are due at the beginning of class on the dates specified. You have two flex days that you can apply to problem sets or papers. You may use these, for example, to turn in one assignment two days late without penalty; or you may use these to turn in each of two assignments one day late. Once you have used up your flex days, I will apply a penalty of 20% per day for each assignment turned in late.

Please note again that lab attendance is mandatory. Please also note that class participation (in lecture sessions, discussions, and group problem solving) accounts for 10% of your final grade.

Honor Code and Account Agreement

The Honor Code as it applies to non-programming assignments is outlined in the Williams College Bulletin (i.e., the course catalog).

For programming assignments in Computer Science, the Honor Code is interpreted in very specific ways. Please see the guidelines at the end of this syllabus.

Please also read the Computer Science User Policy and turn in a signed copy of the Account Agreement.


The following is a list of topics and readings to be covered in this course. Normally the reading should be done before the first lecture for which it has been assigned. The reading should always be done before a class period designated as a discussion session.

Note that we will occasionally find it useful to explore a topic in more depth (or less) or even to add a new topic of interest to the class. I will update the on-line schedule for the course to reflect our actual progress.

Please keep in mind that one of the first three Fridays in October will be Mountain Day. This will require a change in the syllabus.

Week 0
Lecture: (9/5) Introduction to AI
Lab: None
Reading: None

Week 1
Lecture: (9/8) Introduction to AI
(9/10) Introduction to robotics: sensors and effectors
(9/12) Interactive C: sensors and motors
Lab: Soldering
Reading: Cawsey: Ch. 1
Hans Moravec (1999) Chapter 2 in Robot. New York, NY: Oxford University Press.
Brice Rebsamen, Chee Leong Teo, Qiang Zeng, Marcelo H. Ang Jr., Etienne Burdet, Cuntai Guan, Haihong Zhang, and Christian Laugier (2007) "Controlling a Wheelchair Indoors Using Thought," in IEEE Intelligent Systems, March/April: 18-23.
Masahiro Shiomi, Takayuki Kanda, Hiroshi Ishiguro, and Norihiro Hagita (2007) "Interactive Humanoid Robots for a Science Museum," in IEEE Intelligent Systems, March/April: 25-32.
Robert Wood (2008) "Fly, Robot Fly," in IEEE Spectrum, March: 25-29.
Michael Dumiak (2008) "Book-Scanning Robots Digitize Delicate Texts," in IEEE Spectrum, January: 18.

Week 2
Lecture: (9/15-17) Classical robot architecture: Planning
(9/19) Path planning
Lab: Testing motors and sensors
Reading: Cawsey: pages 87-90
Allen Newell and Herb Simon (1963) "GPS, A Program that Simulates Human Thought," in Computers and Thought, Edward Feigenbaum and Julian Feldman (eds): 279-293. New York: McGraw-Hill.

Week 3
Lecture: (9/22) Configuration space
(9/24-26) Problem solving as search
Lab: Mobile robot base
Reading: Fred G. Martin (2001) Chapter 2, pages 20-50 in Robotic Explorations. Upper Saddle River, NJ: Prentice Hall.
Cawsey: Ch. 4 to page 87 only.

Week 4
Lecture: (9/29) Programming Robots: Interactive C
(10/1-3) No Class: Speaking at Pomona; attending Grace Hopper Conference
Lab: None
Reading: Fred G. Martin (2001) Chapter 2, pages 71-75 in Robotic Explorations. Upper Saddle River, NJ: Prentice Hall.

Week 5
Lecture: (10/6) More on Interactive C programming
(10/8) The behavioral approach
(10/10) Mountain Day
Lab: Maze Exercises: non-reactive plan execution
Reading: Ronald C. Arkin (1998) Pages 20-27 in Behavior-Based Robotics. Cambridge, MA: MIT Press.
Rodney A. Brooks (1993) "Elephants Don't Play Chess," in Designing Autonomous Agents: Theory and Practice from Biology to Engineering and Back, Pattie Maes (ed), 3-16. Cambridge, MA: MIT Press.

Week 6
Lecture: (10/13) Reading Period
(10/15-17) Programming robot behaviors in Interactive C
Lab: Bumper sensing and navigating around obstacles
Reading: Fred G. Martin (2001) Chapter 2, pages 75-83 in Robotic Explorations. Upper Saddle River, NJ: Prentice Hall.
Valentino Braitenberg (1996) Pages 95-108 in Vehicles. Cambridge, MA: MIT Press.

Week 7
Lecture: (10/20) Braitenberg
(10/22-24) Vision
Lab: Line following
Reading: Cawsey: Ch. 6

Week 8
Lecture: (10/27) Sonar
(10/29) Discussion: Robot ethics
(10/31) Natural language processing
Lab: Sonar
Reading: Michael Anderson and Susan Leigh Anderson (2007) "Machine Ethics: Creating an Ethical Intelligent Agent," in AI Magazine, 28(4): 15-25.
Christopher Grau (2006) "There is No 'I' in 'Robot': Robots and Utilitarianism" in IEEE Intelligent Systems, July/August: 52-55.
Isaac Asimov (1950) Pages 240-272 in I, Robot. New York: Bantam Books.
Watch I, Robot.
Begin Cawsey: Ch. 5

Week 9
Lecture: (11/3) Natural language processing
(11/5) Chatbots and the Turing Test
(11/7) Logic and reasoning
Lab: Trashbot I: finding trash
Reading: Finish Cawsey: Ch. 5
Alan Turing (1950/1997) "Computing Machinery and Intelligence," in Mind Design II, John Haugeland (ed): 29-56. Cambridge, MA: MIT Press.
Begin Cawsey: Ch. 2.3

Week 10
Lecture: (11/10-12) Logic and reasoning
(11/14) No class: Speaking at Advanced Career Mentoring Workshop, Computing Research Association
Lab: Trashbot II: grippers
Reading: Finish Cawsey: Ch. 2.3

Week 11
Lecture: (11/17-11/21) Learning
Lab: Trashbot III
Reading: Cawsey: Ch. 7

Week 12
Discussion: (11/24) Knowledge and creativity
(11/26-28) Thanksgiving recess
Lab: None
Reading: Stanislaw Lem (1974) "How the World Was Saved" and "The First Sally (A) Or Trurl's Electronic Bard" in The Cyberiad. Harcourt Brace and Company.
Harold Cohen (1994) "The further exploits of Aaron, painter," text for Stanford Humanities Review, 4(2):141-158.
Richard Ellis (2008) "The Painting Fool," excerpt from "AI Developers: Stand Up and Be Counted!," IEEE Intelligent Systems, May/June:69-71.

Week 13
Lecture: (12/1) Games
(12/3) Discussion: AI - hype or reality?
(12/5) Wrap up
Lab: Clean up
Reading: John R. Searle (1980/1997) "Minds, Brains, and Programs," in Mind Design II, John Haugeland (ed):183-204. Cambridge, MA: MIT Press.
Christof Koch and Giulio Tononi (2008) "Can Machines Be Conscious?" in IEEE Spectrum, June:55-59.

The Honor Code for Courses in Computer Science

The Honor Code as it applies to non-programming assignments is outlined in the Student Handbook.

For programming assignments in Computer Science courses, the honor code is interpreted in very specific ways. When a program is assigned, your instructor will identify it as a "practice," "test," "laboratory," or "team" program. The Honor Code applies to each as follows (unless otherwise specified by the instructor):

Practice Programs. These are provided to help you gain an understanding of a topic, and are not graded.
Guideline: Help on these programs is unrestricted.

Test Programs. Any assignment designated as a test program is to be treated exactly as a take-home, open-book test. You are allowed to read your textbook, class notes, and any other source approved by your instructor. You may not consult anyone other than your instructor. The instructor encourages the asking of questions, but reserves the right not to answer, just as you would expect during an exam.
Guideline: Any work that is not your own is considered a violation of the Honor Code.

Laboratory Programs. Laboratory programs are expected to be the work of the individual student, designed and coded by him or her alone. Help locating errors and interpreting error messages are allowed, but a student may only receive help in correcting errors of syntax; help in correcting errors of logic is strictly forbidden.
Guideline: Assistance in the design or coding of program logic will be considered a violation of the Honor Code.

Team Programs. Team programs are laboratory or test programs to be worked on in teams of two or more students. You are allowed to discuss team programs with your partners, but work with others is otherwise restricted by the appropriate rules above.
Guideline: Any work that is not the work of your team is considered a violation of the Honor Code.

If you do not understand how the Honor Code applies to a particular assignment, consult your instructor.

Students should be aware of the Computer Ethics outlined in the Student Handbook. Violations (including uninvited access to private information and malicious tampering with or theft of computer equipment or software) are subject to disciplinary action.
Guideline: To protect your work dispose of printouts and copies of your work carefully, and avoid leaving your programs on hard disks in labs and other public storage areas.

The Department of Computer Science takes the Honor Code seriously. Violations are easy to identify and will be dealt with promptly.