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.



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: