TA Tianyi Gu

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++, or ML), understand common data structures (like trees, hash tables, and heaps), and be familiar with basic complexity analysis (big-O notation).

By taking a one-credit CS 696W alongside this class, it can be used as a writing-intensive class.

In spring 2020, the class meets Tuesdays and Thursdays 11:10-12:30 in Kingsbury N113, with recitations Fridays 11:10-noon in Kingsbury N334. The class is expected to be offered every spring for the foreseeable future.

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

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

Bug reports and suggestions regarding assignments are always appreciated.

- Part 5, Inferring Stuff from Data: 4/7, 4/9
- Part 4, More Planning: 3/10, 3/12, 3/24, 3/26, 3/31, 4/2
- Part 3, Knowing Stuff: 2/20, 2/25, 2/27, 3/3, 3/5
- Part 2, Choosing What To Do: 1/23, 1/28, 1/30, 2/4, 2/7/19, 2/12/19, 2/13, 2/18
- Part 1, Intro: 1/21

- the class Q&A forum
- a simple example of recursive-descent parsing (in OCaml)
- 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

- 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