CS 730/830: Introduction to Artificial Intelligence
Professor Wheeler Ruml
TA Devin Thomas
The goal of this class is to help you learn how to build
intelligent software. We'll cover concepts and algorithms
from perception (learning about the world from data), through planning
(deciding what to do), all the way to acting (actually doing
something). Along the way, we'll see topics in knowledge
representation (how to represent what we know), learning (how to get
better), and agent architecture (how to organize all this).
You should already be a fluent programmer in a high-level language
(like Java, C++, Scala, or Rust), understand common data structures (like
trees, hash tables, and heaps), and be familiar with basic complexity
analysis (big-O notation). Contrary to the restriction listed in the
course catalog, students outside CEPS who meet these prerequisites are
welcome - just talk to me about getting a waiver.
In spring 2025, the class will meet Tuesdays and Thursdays 8:10-9:30am
and recitations will meet Fridays 3:10-4pm, all in Parsons N114. The
class is expected to be offered every spring for the foreseeable
future.
Here are the raw student
reviews from 2023.
Handouts
Assignments
- Asst 12: handout,
test harness,
sample problems,
reference solution
- Asst 11: handout,
test harness,
reference solution,
image generator,
image converter,
sample data
- Asst 10: handout,
test harness,
harness instructions,
reference solution,
tiny,
digits
- Asst 9: handout,
test harness,
reference solution,
sample input
- Asst 8: handout,
validator,
reference solution,
sample input
- Asst 7: handout,
validator,
reference solution,
same cnf converter as asst 6,
sample KBs
- Asst 6: handout,
validator,
reference solution,
sample input,
cnf converter
- Asst 5: handout,
validator,
reference solution,
3CNF generator,
sample input
- Asst 4: handout,
validator,
reference solution,
graph generator,
some graphs,
some complete graphs,
more
benchmarks
- Asst 3: handout,
validator,
reference solution,
sample worlds.
- Asst 2: handout.
- Asst 1: handout,
validator,
reference solution,
world generator,
sample worlds.
Generic submission instructions for all assignments are
here.
Bug reports and suggestions regarding assignments are always
appreciated.
Lectures
I'll try to post links to lecture slides, but no guarantees that I'll
have them up before you need them!
- Part 6, Outro: 4/30,
5/2
- Part 5, Inferring Stuff from
Data: 4/9
, 4/11, 4/16
and 4/18, 4/23, 4/25
- Part 4, More
Planning: 3/12, 3/14, 3/26
and 3/26, 3/28, 4/2
- Part 3, Knowing
Stuff: 2/22, 2/27, 2/29, 3/5, 3/7
- Part 2, Choosing What To
Do: 1/25,
1/30,
2/1,
2/6,
2/8, 2/13, 2/15, 2/20
- Part 1, Intro: 1/23
Other resources
Old Assignments from Spring of 2015
The binaries are for x86 Linux. They are 32-bit, but seem to run fine
on 64-bit systems.
- Asst 5: handout,
reference solution,
test harness,
harness info,
tiny data,
real data
- Asst 4: handout,
reference solution (only does vi),
simulators and worlds
- Asst 3: handout,
sample input,
validator,
reference milestone solution,
reference solution.
- Asst 2: handout,
cnf converter,
sample input,
validator,
reference solution
- Asst 1: handout,
milestone validator,
final validator,
reference solution,
world generator,
sample worlds
Old Lectures from Spring of 2012
These lecture videos and slides are from spring of 2012.
- Part 1,
Intro: video, slides: agents
- Part 2, Combinatorial
Search: video,
slides: search, heuristics, CSPs, optimization, games
- Part 3, Certain
Knowledge: video, slides: propositional
logic, reasoning, first-order
logic, resolution, logic
in practice,
- Part 4,
Planning: video, slides: some practical
logics, planning, planning
graphs, regression,
POP, MDPs, solving
MDPs
- Part 5, Learning: video, slides: reinforcement
learning, scaling
RL, supervised
learning, decision
trees, more supervised
learning, unsupervised
learning
- Part 6, Uncertain
knowledge: video, slides: Bayesian
networks, more Bayes
nets, particle
filters, HMMs
- Part 7, Conclusion:
video,
slides: wrap-up
- Bonus: motion planning