CMSC 471: Introduction to Artificial Intelligence
Spring 2015
Class Time and Location
Tuesday and Thursday, 11:30 a.m. to 12:45 p.m.,
Eng 231
Course schedule
Course Staff
Instructor
Max Morawski
mm11@umbc.edu
ITE 215
Office Hours: Mo/We 2:30-5:00
Schedule
This course schedule is subject
to change. We will follow the Russell and Norvig textbook fairly closely.
Course Description
This course will serve as an introduction to artificial intelligence concepts
and techniques. We will use the Lisp programming language as a computational
vehicle for exploring the techniques and their application. Specific topics
we will cover include the history and philosophy of AI, Lisp and
functional programming, the agent
paradigm in AI systems, search, game playing, knowledge representation and
reasoning, logical reasoning, uncertain reasoning and Bayes nets, planning,
mach1ine learning, and multi-agent systems. If time permits, we may also briefly touch on robotics, perception, and/or natural language processing.
Prerequisite
CMSC 341 and strong programming skills. Important material that
you should have learned in CMSC 203 and/or CMSC 341 includes
Boolean logic, basic probability theory and combinatorics, big-O
complexity analysis, algorithm design, and data structures.
If you did not learn much about these topics (or don't remember the
material), you may have to brush up on them on your own.
Additional probability theory/statistics, linear algebra, and
complexity theory will also be useful, but are not required.
Textbooks
We will be using the following:
-
Required textbook: Artificial Intelligence: A Modern Approach, 3/e, Stuart J. Russell and Peter Norvig. Prentice Hall, 2009. The website for this book has links to many useful online AI resources.
Note: The website for this book has links to many useful online AI
resources.
Communication
As you will learn, I am a strong believer in two-way communication. I
expect all students to participate in classroom discussions, both by asking
questions and by expressing opinions. In return, I will make myself available
to answer questions, listen to concerns, and talk to any student about topics
related to the class (or not). I welcome your feedback throughout the semester
about how the course is going.
I am very quick with email, so you should hear back from me within 24 hours of sending a note.
Grading
Course grades will be based on the following work. The final weighting
may be changed slightly.
Homework |
30% |
Projects |
35% |
Midterm exam |
15% |
Final exam |
20% |
Assigned Reading
At some points I will assign reading. You will do this reading. I will not do this often, and when I do it is important. Anything in the reading may be on the test.
Homework
There will be six homework assignments, which will
have a mix of written and programming components.
Students may work on homework assignments individually or in groups
of up to three students. It is in your best interest to work on the
homeworks as a group -- that is, physically together
in one place, working on all of the problems as a group, making sure that
every student fully understands the solutions. The exams will mostly
have very similar types of questions to the homework problems,
so if you split up the homework and each work on a problem independently,
you are undermining the intention of the homeworks, which is for you
to learn the concepts, apply them in practice, and prepare for the
exams.
For written homeworks and homework sections, you may
produce a single solution. You only need to submit one
hardcopy of that group solution, with everyone's name on the first page.
For programming homeworks and homework sections, you
must each individually implement the solutions. You may consult
with the members of your homework group to get help and debug
the code, but your
solution should be your own (i.e., you may not just copy
code from another student, or write code for another student).
You may not show your code to, or get help from, anyone other
than the students in your group, the instructor, the TA, and
help center or LRC tutors. See below for submission requirements.
Each assignment will have
a due date and is expected to be turned in on time. Late homeworks will be assessed a penalty as follows:
- More than 10 minutes and less than 24 hours late: 25% penalty
- 24-48 hours late: 50% penalty
- 48-72 hours late: 75% penalty
- After 72 hours, no credit will be given
Homeworks will be due as hardcopy (typed or neatly
handwritten) at the beginning of class on the due date.
That is, an assignment due on a Thursday will be due at 11:30 a.m.
on Thursday,
and must be turned in in class. If you will miss class, you must arrange
for your homework to be turned in to the instructor or TA during or before
class. There is a ten-minute grace period, but if you show up later than that, the late penalty will be assessed. If an emergency arises and you are absolutely unable to attend class, you may send me your homework via email as a "placeholder"; a hardcopy must still be submitted to me (under my office door or handed to me or the TA) within 24 hours to avoid the late penalty.
Programming assignments must be submitted both
as hardcopy and via the submit system on the gl machines. Documentation
on the submit facility is available at http://www.gl.umbc.edu/submit/ . The project name for the course is "cmsc471" (lower case).
Exams
There will be one in-class midterm and a final examination. 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.
Academic Honesty
This course adheres to the Provost's statement on academic integrity:
"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, examinations
are to be your own work. You may discuss the homework assignments with anyone.
However, any help you receive (other than from your homework group
members) must be documented. At the beginning
of your assignment or program, you must explicitly indicate the sources
you used while working on it (excluding course staff and text), and the type
of help you received from them. If you do not include such a statement, the
course staff will assume you worked entirely independently. Any indication
of collaboration with other students in this case will be considered a violation
of the academic honesty policy.
The implementation of the programming assignments must be your own work.
If you are working in a group, the guidelines discussed above apply (the
code must be your own but you can show your code to a group member and ask
them to help you figure out what is wrong with it).
If you are stumped on a particular error, you may consult with someone else;
however, if you consult with someone other than the instructor, the TA,
or the help center, you must place a comment in your code near the point of
the error, stating the source and scope of the help you received. Reasonable
help will not affect your grade; failure to cite your sources is academically
dishonest, and will be dealt with severely.
Written answers on essay questions for homeworks and exams must be your
own work.
If you wish to quote a source, you must do so explicitly at the
point of the quotation, with proper citation. Plagiarism of any source,
including another student's work, is not acceptable.
Any violation of the academic honesty policy will result in a minimum
penalty of a zero grade for that assignment. Additional penalties, depending
on the severity of the offense, may include a reduced or failing grade for
the class.
Acknowledgements
Thanks to Tim Finin (UMBC), Berthe Choueiry (University of Nebraska -
Lincoln), Daphne Koller (Stanford University), Eric Eaton (formerly of
UMBC), Don Miner (UMBC), and Lise Getoor (UMCP) for making their course
materials publicly available on the web. Some of the course materials (slides
and homeworks) have been adapted from those sources. Special thank to Marie desJardins who created this class and website.