Overview
Artificial Intelligence is the area of computer science that
concerns itself with "smart" solutions to problems. How can we
find solutions faster than typical brute-force approaches by using
knowledge about the problem? How can we use higher-orders of
representation such as logic, graph structures, and others to solve
problems? How can we learn from data or from the environment? How
can we adapt the biological mechanisms of intelligence for
computational purposes?
We'll consider all of the above as we examine a variety of problems
in AI, including agent-based behavior (as in robotics), heuristic
search, strategy game playing, supervised learning, reinforcement
learning, logical deduction, and others.
Instructor Information
Graders:
- Tung Phan (email: phant)
- Bobby Davis (email: davisbo)
Textbook
- Artificial Intelligence: A Modern Approach, Stuart Russell &
Peter Norvig, 3nd edition, Prentice-Hall, 2009.
Important Dates
- Exam 1: Friday, April 13
- Exam 2: Friday, May 4
- Exam 3: Friday, May 25
- Final project due: Monday, June 4
Your Grade
- Assignments: 40%
- Exam 1: 16%
- Exam 2: 16%
- Exam 2: 16%
- Class project: 12%
Assignments & Class Project
- The assignments will include both non-computer activities and
programming.
- The class project is due at the end of the term. You can choose
to do essentially anything inside the area of AI, so long as I approve
it in advance. You can build on material we do in class, or you can
use it as an opportunity to learn about subject matter we don't have
time to cover.
Collaboration, Plagiarism, and the Difference Between the Two
There are two different kinds of working together: collaborating
and plagiarism.
Collaborating
- Collaborating is good.
- You are encouraged to collaborate on ideas and program design.
- Programming is often a social effort, and there is much you can learn
by talking out the ideas in this class with each other.
- You can by all means talk to each other, look at each others' programs
to help fix problems, and share ideas.
Plagiarism
- Plagiarism is bad. DON'T DO IT!
- Any programs that you turn in should be your work.
- Even if you work with someone else and share ideas, you must still
writ your own program.
- If a piece of your program utilizes someone else's idea, you must
make sure to give that person credit in program comments.
- Do not hand a printout of your program to other students. I
encourage you to work together to help debug your code, but you
should do so sitting together.
The following are examples of plagiarism:
- Taking someone else's program, changing comments and variable names,
putting your name at the top, and turning it in.
- Finding a similar program on the Internet, changing the variables
and comments around, putting your name at the top, and turning it in.
- Finding a similar program in a book, changing the variables and comments
around, putting your name at the top, and turning it in.
I am compelled by Carleton policy to submit plagiarism cases that I
find to the Dean of Students, who in turns brings the evidence before
the Academic Standing Committee. The academic penalty for a finding of
responsibility can range from a grade of zero in the specific
assignment to a F in the course.
Working from your own computer
Most of the programming that we do will be in Python, which will be
set up for use in the Computer Science labs. You should feel free to
install Python on your home machine and work from there if you
wish. If you do so, you are responsible for making sure that your
programs work under the version of the compiler that we have installed
in the labs. I am glad to informally provide whatever advice I can to
help you get the software running on your own machine, but home use is
technically "unsupported." We will be using Python 2, not Python 3.
Homework Policy
- Each assignment will have a specific time for which it will be
due. An assignment turned in late within one day of the due time
will be docked 25%. A program turned in later than one day of the
due date but within two days will be docked 50%. An assignment
turned in any time after this until the last day of classes will be
docked 75%. If you turn in work late, it is your responsiblity to
notify the grader(s) that you have done so, and that the assignment
needs to be graded.
- College policy dictates that there can be no grace period on the
final project.
Details
We will cover selected material potential from within the following
chapters in Russell & Norvig:
- Chapter 1: Introduction
- Chapter 2: Intelligent Agents
- Chapter 3: Solving Problems by Searching
- Chapter 4: Beyond Classical Search
- Chapter 6: Adversarial Search
- Chapter 7: Logical Agents
- Chapter 8: First Order Logic
- Chapter 9: Inference in First-Order Logic
- Chapter 18: Learning from Examples
- Chapter 20: Learning Probabilistic Models
- Chapter 21: Reinforcement Learning
- Chapter 10: Classical Planning
- Chapter 11: Planning and Acting in the Real World
- Chapter 13: Quantifying Uncertainty
- Chapter 14: Probabilistic Reasoning
- Chapter 15: Probabilistic Reasoning over Time
- Chapter 16: Making Simple Decisions
- Chapter 25: Robotics
- Chapter 26: Philosophical Foundations