Professor: Lisa Meeden
Course: Tuesdays, Thursdays 1:15-2:30, SCI 252 Lab: Fridays 2:15-5:00, SCI 252 Email: meeden AT cs.swarthmore.edu Office: SCI 243 Phone: 328-8565 Office hours: Wednesdays 1:30-3:30pm, or by appointment |
Artificial intelligence (AI) may be defined as the branch of computer science that is concerned with the automation of intelligent behavior (Luger). Intelligent behavior encompasses a wide range of abilities, and as a result AI has become a very broad field that includes game playing, automated reasoning, expert systems, natural language processing, modeling human performance (cognitive science), planning, robotics, and machine learning. We cannot possibly cover all of these areas in a one-semester course, so we will focus on a subset of these topics, including game playing, robotics, and machine learning.
On Tuesdays and Thursdays we will meet for class, and on Fridays we will meet for lab. The labs will introduce the tools you need to complete the homework assignments. We will be using a system called Pyro, which stands for Python Robotics. Pyro allows you to experiment with various robots and robot simulators while only having to learn one interface. It also includes a number of important machine learning tools such as neural networks and genetic algorithms. You will write programs in python, an interpreted programming language that can take on many different paradigms (such as imperative, functional, or object-oriented). For a quick introduction to Python, try How to think like a computer scientist: Learning with Python.
Your participation grade will be based on attendance and weekly written reactions to the assigned reading. Your reactions will be due by 8am every Tuesday morning. You will be posting your reactions to the online courseware package Edventure. Your username on this system will be the same as the username on your College email account. You should have already been sent an initial password. Once you post your reaction, you will be able to read other students' reactions for that week. Your reactions should not be summaries of the reading, instead they should be the product of the reading process (e.g., questions that were raised, points that were not clear, connections to previous material you've read, etc). Typically they should be two to three paragraphs in length. You are expected to be an active participant in class and should come prepared for class every week.
Labs will be discussed and assigned on Friday and will be due before 11am the next Friday. Late homework is not accepted, unless an extension is requested and granted prior to the due date.
On some assignments you will work jointly with other students (with each assignment I will explicitly tell you if working as a team is allowed). When you work as a team, then you and your team members may share code for that particular assignment. The team should submit a single assignment with all names clearly indicated at the top of the program file(s). All team members will receive the same grade for that assignment.
Programs will be graded with respect to correctness, efficiency, and style.
WEEK | DATES | TOPICS | READINGS | ANNOUNCEMENTS | LAB |
1 | 8/29 - 9/2 | Introduction to AI | Coppin Ch. 1-3 | - | 1: State space search |
2 | 9/5 - 9/9 | Search
nqueens.py hillClimbing.py annealing.py | Coppin Ch. 4 | Drop/Add ends 9/9 | 2: Eight-puzzle |
3 | 9/12 - 9/16 | Game playing | Coppin Ch. 6 Schaeffer article | - | 3: Konane |
4 | 9/19 - 9/23 | Machine Learning Reinforcement Learning | Coppin Ch. 10 Tesauro article | - | 4: Konane tournament |
5 | 9/26 - 9/30 | Decision trees | Shavlik et. al. article | - | 5: Decision trees |
6 | 10/3 - 10/7 | Review for exam | None | Midterm Exam: Thursday, 10/6 | None |
- | 10/10 - 10/14 | - | - | Fall break | - |
7 | 10/17 - 10/21 | Braitenberg Vehicles | Pfeifer & Scheier Ch. 6 | - | 6: Vehicles |
8 | 10/24 - 10/28 | Behavior-Based Control | Pfeifer & Scheier Ch. 7 | - | 7: Subsumption |
9 | 10/31 - 11/4 | Neural Networks NNvoting.py votingData.py | Coppin Ch. 11 | Last day to withdraw 11/4 | 8: Neural networks |
10 | 11/7 - 11/11 | Recurrent Networks srn.py sraam.py | Elman article | - | 9: Learning to predict |
11 | 11/14 - 11/18 | Genetic Algorithms GAMaxBits.py GPxor.py | Coppin Ch. 14 | - | 10: GA experiments |
12 | 11/21 - 11/23 | Artificial Life CArule110.py CAruleGKL.py | Coppin Ch. 13 | Thanksgiving break | None |
13 | 11/28 - 12/2 | Evolving Neural Networks | Meeden & Kumar article | - | Review for exam |
14 | 12/5 - 12/6 | - | - | Final Exam: Monday 12/5 | - |