CS63 Artificial Intelligence
Spring 2017

Schedule | Grading | Course Policies | Resources


Course Information

Class: MWF 11:30–12:20am SCI 181
Lab A: Tu 1:05–2:35pm Clothier 016
Lab B: Tu 2:45–4:15pm Clothier 016

Office Hours: M 12:30–4:00, WF 12:30–2:00 SCI 262
Piazza Forum: piazza.com/swarthmore/spring2017/cs63

Please make a note of the office hour times and the Piazza link. Take advantage of them to ask a question if something I said in lecture didn't make sense, or you're stuck on a lab, or for any other reason. If you want to talk in person but can't make it during office hours, you can send me an email to set up alternate time, or just drop by any time my door is open. I'm always happy to answer questions, but it's up to you to come and ask.

Course Overview

Artificial Intelligence (AI) is the branch of computer science that is concerned with the automation of intelligent behavior. Intelligent behavior encompasses a wide range of abilities. As a result, AI has become a very broad field that includes search, game playing, reasoning, planning, optimization, natural language processing, modeling human performance (cognitive science), machine learning, and robotics. This course will focus on the topics of search and machine learning, while also drawing connections to several others.

We will begin by formulating abstract reasoning as a search problem, and exploring algorithms for solving such problems. The first search techniques we will encounter (breadth-first and depth-first) should be familiar, but will be followed by new techniques for heuristic search and local search. We will also consider how search works with multiple agents, leading to exploration of game tree search and Monte Carlo search methods. Finally, we will consider search with ucertain actions and in unknown environments, which will lead us into reinforcement learning.

After break, we will make what seems like a big jump into neural networks, inspired by human brains. But we will then formulate the task of machine learning and see that it encompases neural networks, reinforcement learning, and much more. We will proceed to study the machine learning problems of classification, clustering, and regression, and techniques for solving them. The semester will conclude on a more philisophical note, considering past, present, and future progress toward and the implications of true AI.

Goals for the course

After completing this course, you should be able to:


The reading for this class will be posted on this web page. You are expected to read assigned pages prior to the class meeting on which they are assigned. There will be occasional reading quizzes, so be sure to check the schedule each week and stay up to date.



Jan 16

No class: MLK Day

Introduction to AI
W: Wikibooks: AI Definition (Section 1: Overview)
F: State Spaces, and Utility (9.1–9.3)
Lab 0

Jan 18

Intro to AI

Jan 20

Modeling Dimensions


Jan 23

State Space Search

State Space Search
M: The Idea of Search and A Generic Searching Algorithm and Uninformed Search Strategies (3.5.1–3.5.3)
W: Heuristic Search (3.6–3.6.2)
F: More Sophisticated Search (3.7.3–
Lab 1

Jan 25

Heuristic Search: slides, notes

Jan 27

Analyzing and Improving Search


Jan 30

Local Search

Local Search
M: Local Search and Hill Climbing and Simulated Annealing
W: Population-Based Methods and Genetic Algorithms
F: Optimization (4.10, 4.10.2– and Linear Programming
Lab 2

Feb 01

Population-Based Search

Feb 03

Continuous Optimization


Feb 06

Game Tree Search

Game Search
M: minimax
W: alpha-beta pruning
F: extensive form games
extra: Alpha-Beta Pruning Practice
Lab 3

Feb 08

Alpha-Beta Pruning

Feb 10

Extensive Form Games


Feb 13

Monte Carlo Tree Search

Monte Carlo Search
M: Monte Carlo tree search
W:MCTS survey (1–1.2, 2–3.3)
F: MCTS survey (3.4–3.6, 5.2.8, 6.1.6, 6.1.9)
Lab 4

Feb 15

MCTS Extensions

Feb 17



Feb 20

MDPs & Value Iteration

Reinforcement Learning
M: MDPs and Value Iteration (9.5–9.5.3)
W: Q-Learning (11.3, 11.3.3–11.3.4)
F: Features and States (4.1) and Reinforcement Learning with Features (11.3.9–
supplemantal selections from Sutton & Barto: 1.1–1.4 3.3, 3.6–3.8, 4.1, 4.4, 6.5
Lab 5

Feb 22


Feb 24

Approximate Q-Learning


Feb 27


More Reinforcement Learning
M: Planning with MDPs (6.2–6.2.1)
W: Online Planning (2.4: 1st paragraph, 6.4: 1st paragraph, UCT)
F: Wikipedia: POMDPs; optional: Background on POMDPs
Lab 6

Mar 01

Online Planning

Mar 03

Partial Observability


Mar 06

Spring Break

Mar 08

Mar 10


Mar 13

Review for Exam 1

Review for Exam 1 Exam 1 in lab

Mar 15

Machine Learning Intro

Neural Networks
W: Visual Introduction to Machine Learning
F: Perceptrons 4–4.5, 4.7
extra: Neural Network Playground

Mar 17



Mar 20


More Neural Networks
M: Backpropagation 10–10.5
W: A Brief History of Deep Learning
F: Deep Learning 6–6.2 (through "in practice")
Lab 7

Mar 22

Beyond Backpropagation

Lecture Notes

Mar 24

Deep Learning


Mar 27

K-Nearest Neighbors

M: Classification and K-Nearest Neighbors
Decision Trees and Naive Bayes
F: Support Vector Machines, optional: Wikibooks: SVMs
Lab 8

Mar 29

Decision Trees & Naive Bayes

Mar 31

Support Vector Machines


Apr 03

K Means

Unsupervised Learning
M: Clustering Intro (1–2: What is Clustering?–The Goals of Clustering) and K-Means Clustering
W: Hierarchical Clustering
F: PCA tutorial: sections 1–5 (pages 1–6)
Lab 9

Apr 05

Hierarchical Clustering

Apr 07

Principal Component Analysis


Apr 10

Ensemble Learning

Ensemble Methods, Regression
M: Ensemble Methods 13–13.3
W: Neural Network Dropout (Sections 1–2)
F: Gradient Descent and Linear Regression
Machine Learning Project

Apr 12

Neural Network Ensembles

Apr 14

Linear Regression


Apr 17

Review for Exam 2

Review for Exam 2 Exam 2 in lab

Apr 19


Philosophy and Game Theory
W: Russell & Norvig: Philosophical Foundations (26–26.2.3)
F: P&M 10.2.1 and

Apr 21

Simultaneous Games


Apr 24

Mixed Strategies

Game Theory and Philosophy
M: P&M 10.4.0 and
W: The state of Computer Vision and AI and AI Won't Exterminate Us
F: DeepMind talk
work on projects

Apr 26

AI Progress

Apr 28

AI Ethics


Grades will be weighted as follows:
20%Exam 1
20%Exam 2
5%Class Participation
5%Reading Quizzes

Course Policies

Lab Assignments

Labs will be assigned on Tuesdays, during the scheduled lab time, and will be due on Mondays by midnight. Even if you do not fully complete a lab, you should submit what you have done to receive partial credit.

You are encouraged to work with a partner on all labs after lab 0. If you wish to work with a partner, you must inform me by Monday of week 2 (Jan. 23). If you wish to work with a partner, but have not found one, you should inform me by the same deadline, and I will try to assign you one. If you wish to change partners after week 2, please give me plenty of warning. If possible, all members of the affected groups should contact me to confirm the change.

You have three late days that you may use on any lab, for any reason. If you are using one or more late days, you must contact me by email when you submit your assignment.

Academic Integrity

Academic honesty is required in all of your work. Under no circumstances may you hand in work done with (or by) someone else under your own name. Your code should never be shared with anyone; you may not examine or use code belonging to someone else, nor may you let anyone else look at or make a copy of your code. This includes, but is not limited to, obtaining solutions from students who previously took the course or code that can be found online. You may not share solutions after the due date of the assignment.

Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook: "Because plagiarism is considered to be so serious a transgression, it is the opinion of the faculty that for the first offense, failure in the course and, as appropriate, suspension for a semester or deprivation of the degree in that year is suitable; for a second offense, the penalty should normally be expulsion."

Discussing ideas and approaches to problems with others on a general level is fine (in fact, I encourage you to discuss general strategies with each other), but you should never read any other student's code or let another student read your code. All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with a partner. In these cases, you should always include comments that indicate on which parts of the assignment you received help, and what your sources were.

Academic Accommodations

If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 113) or email lhempli1@swarthmore.edu to arrange an appointment to discuss your needs. As appropriate, she will issue students with documented disabilities a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the accommodations process visit Student Disability Services. You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through the Office of Student Disability Services.

Online Resources

General AI textbooks: Machine learning textbooks: Other books: Tutorials: Papers: Visualizations: Code/Tools: For Future Reference: