COMP.4200/5430 Artificial Intelligence, Fall 2016
MWF 11:50p, Olsen 102
Prof. Fred Martin
TA: Pengfei Zhang
What is AI?
There are few areas in computer science as broad as artificial intelligence. AI encompasses algorithm design, agents and robots, natural language understanding, expert systems, music and sound, as well as philosophical questions about the nature of consciousness!
One organizing principle across the field is the formalization of real-world problems based on utility functions, and then the use of various techniques to maximize expected utility. Based on this unifying theme, we will study:
- adversarial and stochastic (probabilistic) search (as used in multi-player games)
- reinforcement learning, including value iteration and q-learning
- probabilistic inference, including Markov Decision Processes (MDPs) and Hidden Markov Models (HMMs)
Ideas will be developed theoretically and with practical programming challenges using the U.C. Berkeley Pac-Man projects, in which you program a progressively complex series of challenges inspired by the original Pac-Man arcade game.
These problem sets teach foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning. These concepts underlie real-world application areas such as natural language processing, computer vision, and robotics (see http://ai.berkeley.edu/project_overview.html).
Coding will be done in Python, which you must teach yourself during the class if you don't know it yet.
A big part of AI is not just knowing a collection of approaches, but understanding which approach is right for which problem. To encourage the development of these skills, there will be a significant semester project where you will apply ideas from the course to a problem of your own choosing.
The textbook, as shown above, is Artificial Intelligence: A Modern Approach, by Russell and Norvig. The book is comprehensive, is well-written in the most exemplary manner, and has detailed bibliographies for each chapter. It is by far the most popular book used to teach AI, and it is also the best.
The recommended book is the third edition. New and used copies are available at the UML bookstore, or from online sources (3rd edition: alibris; amazon; bookfinder). It would be acceptable to get a used second edition (alibris; amazon; bookfinder). Do not use the first edition.
There are five categories of work that will be assessed. These are:
- Programming assignments 30%. The assignments are the primary way for developing an understanding of how to put AI theory into practice. Assignments are due at 11:45p the day that they are due. Assignments will lose 20% of their value per day that they are late. One minute late counts as one day late.
- Literature review assignment 5%. In a collaboration with Professor Heidi Furey (UMass Lowell, Philosophy Department), you will read assigned paper(s) in the ethics of AI and prepare a reflection paper.
- Two mid-semester exams 10% each x 2 = 20%. Exams will be held in class. Exam 1 is Fri Sep 30. Exam 2 is Wed Nov 16. Make-ups are allowed only in the case of documented emergencies.
- Final exam 20%. The final exam is scheduled for Fri Dec 16 from 3p to 6p.
- Term project 25%. A significant part of the class will be an independent implementation project, which you will specify and carry out, primarily over the last month of the semester. We'll start conceptual work on the project earlier than that. I will expect the project to represent a significant work effort.
Undergraduate Project Sequence
For undergraduates, COMP.4200 Artificial Intelligence can be grouped with COMP.4210 Machine Learning or COMP.4500 Robotics I to form a course pair.
For graduate students, COMP.5430 is in Group III, Human-Computer Interaction, Visualization, Robotics and AI.
Collaboration and Academic Integrity Policy
You are welcome to discuss ideas in the class with your peers. However, pair programming or other side-by-side work that involves sharing of code is not allowed. By turning in an assignment, you attest that you have written the new code that it includes. Please be familiar with the university's academic integrity policies: for undergraduates for graduate students
Copying others' code or writing is not allowed.
Your coding assignments will be verified as being your own work using Stanford's Measure of Software Similarity (MOSS), as well as inspection by the TAs/graders and course professor.
If your code is found to substantively include the work of others, you will receive a grade of zero for that entire assignment. If there is a second offense, you will fail the course.
For the written assignments, you will be given instruction on how to properly cite others' work. Your written assignments will be verified using TurnItIn.
- Citing others' work is a sign of respect for others' contributions, and diligence and confidence on your part.
- Copying others' words into your own writingeven including rephrasing others' work without citationis considered plagiarism.
Plagiarism is a significant academic offense. Plagiarism on the final paper will result in receiving a grade of F for the course.
No Posting of Solution Code Policy
UMass Lowell’s policy on academic integrity states that assisting students in their own acts of academic dishonesty is itself an a violation of academic integrity. See Academic Misconduct Subject to Disciplinary Action, 1(f).
Consistent with this, you are not allowed to post solution code to problem sets assigned in this class in public places (e.g. Github). This includes your own solutions as well as solutions that may be provided by the instructors.
Please note that this is typical policy at premier computer science departments. E.g.:
- Princeton COS 126. Your work must never be shown or communicated to anyone who is taking COS 126 now or who might take COS 126 in the future. ... You must never place your work in any public location (including websites, leaving printouts in a classroom, etc.). ... The rules ... continue to apply even after this semester is over.
- Harvard CS50. Not reasonable: Providing or making available solutions to problem sets to individuals who might take this course in the future.
- MIT 6.01. Students should never share their solutions (or staff solutions) with other students, including through public code repositories such as Github. (emphasis in the original)
Thus: Do not publish your solutions to problem sets. Doing so will be considered an act of academic dishonesty and you will receive a grade of F for the course.
You may save your work to private repositories that cannot be retrieved by others. I encourage you to sign up for Github's Student Developer Pack, which allows you to create private repositories (among other benefits). It's free to students.
Students are responsible for all material covered in class. Attendance will not be taken.
Exams will be announced at least one week before they are administered. In-person participation of final project presentations is required.
Make-up opportunities will be made only in the case of emergencies, not scheduled conflicts (e.g., work).
Discussion Group / E-Mail List
We will use Google Groups for announcements and discussion of material outside of class.
To join the group, create a Google account (or log into your existing one) and go to:
Then request a membership.
Important: Set your “Email delivery preference” to ”Notify me for every new message.” Otherwise, you won't get announcements and discussions on a timely basis.