Professor: Lisa Meeden
Course: Mondays and Wednesdays 11:30-12:20, Sproul 300 Lab: Fridays 11:30-12:20, Sproul 201 Email: meeden AT cs.swarthmore.edu Office: Room 1 Sproul Phone: 328-8565 Office hours: Wednesdays 2:30-4: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, page 1). 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. Our main text is on machine learning which is concerned with the problem of how to create programs that improve automatically with experience.
On Mondays and Wednesdays we will meet in Sproul 300 for class, and on Fridays we will meet in Sproul 201 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 the Python programming language. For a quick introduction to Python, try How to think like a computer scientist: Learning with Python.
Find out about examples of AI in the news.
Your participation grade will be based on attendance and weekly written reactions to the assigned reading. Your reactions will be due by 8am every Monday 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 11:00am the next Friday. Projects will also be introduced on Friday, but will continue for two weeks. Late homework is not accepted, except if 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 | 1/19 - 1/23 | Introduction to AI | Luger, Chapter 1 | - | Lab 1: State space search |
2 | 1/26 - 1/30 | Game playing | Russell & Norvig, Chapter 6 | Drop/Add ends 1/30 | Lab 2: Minimax Konane |
3 | 2/1 - 2/6 | Introduction to ML | Mitchell, Chapter 1 | - | Lab 3: Konane tournament |
4 | 2/9 - 2/13 | Neural Networks | Mitchell, Chapter 4 | - | Lab 4: Using Conx |
5 | 2/16 - 2/20 | Recurrent Neural Networks | Elman paper | - | Project 1: Neural Networks |
6 | 2/23 - 2/27 | Decision Trees | Mitchell, Chapter 3 Shavlik, Mooney, and Towell paper | - | Project 1 continued |
7 | 3/1 - 3/5 | Review | None | Take-home midterm: due by noon 3/5, no class 3/3 or 3/5 | None |
- | 3/8 - 3/12 | Spring break | - | - | - |
8 | 3/15 - 3/19 | Genetic Algorithms | Mitchell, Chapter 9 | - | Lab 5: Experimenting with GAs |
9 | 3/22 - 3/26 | GAs with Nets | Nolfi paper | Last day to withdraw 3/26 | Project 2: Evolutionary Computation |
10 | 3/29 - 4/2 | Reinforcement learning | Mitchell, Chapter 13 | - | Project 2 continued |
11 | 4/5 - 4/9 | Braitenberg vehicles | Pfeifer & Scheier, Chapter 6 | - | Lab 6: Robots in Pyro |
12 | 4/12 - 4/16 | Behavior-based control SubsumptionSeek.py SubsumptionGrasp.py | Pfeifer & Scheier, Chapter 7 | - | Project 3: Robot learning |
13 | 4/19 - 4/23 | Robot learning | None | - | Project 3 continued |
14 | 4/26 - 4/30 | Film: The Thinking Machine, Review | None | - | None |
Finals | 5/6 - 5/15 | - | - | Final: Friday, 5/14, 2-5pm, SCI Lower-26 | - |