image of bot

UMBC CMSC 471 02 Spring 2021
Introduction to Artificial Intelligence

About CMSC 471

This course serves as an introduction to Artificial Intelligence concepts and techniques. We will cover most of the material in our text, Artificial Intelligence: A Modern Approach (4th edition) by Stuart Russell and Peter Norvig, including the agent paradigm in AI systems, search, game playing, knowledge representation and reasoning, constraint satisfaction processing, planning, machine learning and philosophical issues. See the schedule for a more detailed breakdown but be aware that the order and timing is subject to change.

This is an upper-level undergraduate level Computer Science course and we will assume that you will have a basic grounding in algorithms, statistics, logic, and programming. Many of the homework assignments will involve programming and you will be expected to do them in Python.

UMBC Policies and Resources during COVID-19

Please see the Retriever Ready: Covid-19 Response site for information, policies and sesources during COVID-19 pandemic.

Text Book

This course is part of UMBC's Course Materials Initiative (CMI), so an electronic copy of the text can be downloaded from this course on the UMBC Blackboard site. Note that this electronic copy can also be accessed online via Blackboard for up to three years if you are registered for the class. If you download the electronic copy, you can view it via the Bookshelf app on your computer, tablet or mobile phone and I'm told that you can use it indefinitely. Unfortunately, the app is not available on Unix.

Q&A and Discussion

We will be using Blackboard and Discord for email, questions, and class discussion..


A tentative schedule is available, but we will adapt this as we go along. Check this every week.


Grades will be based performance on quizzes, assigned homework, a mid-term examination and a final examination. The exact weight will be set at the end of the course, but the expected breakdown is: quizzes: 10%; homework: 45%; midterm: 20%; final: 25%. As per University policy, incompletes will be granted only under extraordinary circumstances; students who are enrolled after the last day to drop a class should be prepared to receive a grade of A-F.


We will have periodic quizzes on Blackboard based on the reading. Answering the quiz questions should be easy if you have attended class and done the reading.


There will a number of short homework assignments -- at least six and perhaps as many as eight. Each assignment will have a due date and it is expected to be turned in on time. A penalty for late homework will be applied. Homework will be submitted via github classroom repositories. As each assignment is released, we'll provide a link you can use to accept and download your personal repository for the assignment. If you do not have a GitHub account, please get one ASAP.


The material covered by the exams will be drawn from assigned readings in the text, from lectures, and from the homework. Material from the readings that is not covered in class is fair game, so you are advised to keep up with the readings.


We have a repository of Jupyter notebooks intended to run in Colab and python code (e.g., the aima code) that are examples we'll use in class and that you can use to understand concepts. You should clone this on your computer or in your account on The 671 resources page has some information on using git and jupyter notebooks

Academic Honesty

We will follow a policy described in this statement adopted by UMBC's Undergraduate Council and Provost's Office.

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community, in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory.

Cheating in any form will not be tolerated. In particular, all assignments are to be your own work. You may discuss the assignments with anyone. However, any help you receive must be documented. At the beginning of each assignment, you must include a comment indicating the sources you used while working on it (excluding course staff and text), and the type of help you received from them. Failure to include such a statement will result in the assignment being returned ungraded. You may resubmit such a returned assignment once over the course of the semester.

Written answers on essay questions for homeworks and papers must be your own work. If you wish to quote a source, you must do so explicitly, using quotation marks and proper citation at the point of the quote. Plagiarism (copying) of any source, including another student's work, is not acceptable and will result in at a minimum a zero grade for the entire assignment. Please review this overview of how to correctly cite a source and these guidelines on acceptable paraphrasing.


Many of the assignments will involve programming and/or using software packages and we will assume that everyone has a basic familiarity with Python.