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 2023, the class meets Tuesdays and Thursdays 8:10-9:30am and recitations are Fridays 3:10-4pm, all in Parsons N114. The class is expected to be offered every spring for the foreseeable future.

- general information (revised 1/24/23)
- course schedule (revised 1/18/23)
- final project information (revised 1/24/23). Examples of strong final papers from previous years: Bond, Hatem, Leighton, Merrill, Wilt.

- 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.

Bug reports and suggestions regarding assignments are always appreciated.

- Part 4, More Planning: 3/21, 3/23
- Part 3, Knowing Stuff: 2/21, 2/28, 3/2, 3/7, 3/9
- Part 2, Choosing What To Do: 1/26, 1/31, 2/2, 2/7, 2/9, 2/14, 2/16
- Part 1, Intro: 1/24

- the class Q&A forum
- a simple example of recursive-descent parsing in OCaml and in Python.
- a primer on I/O redirection in Linux
- a unification algorithm, taken from Ed
Bender's book
*Mathematical Methods in Artificial Intelligence*(IEEE Computer Society Press, 1996). - AAAI-20 author kit with properly formatted templates for scientific papers.
- links to AI videos/demos
- the UNH AI Group
- Robotics at UNH
- Data Science at UNH
- AAAI has a set of overview pages called AI Topics
- Kevin Murphy's nice tutorial on Bayesian networks
- Nick Smith's Guide to Academic Success
- Rao's Intro AI Class at ASU
- Mausam's Intro AI Class at IIT Delhi

- 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

- 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