ECE537 J, Artificial Intelligence, Spring 2023
Mon, Wed from 5:05 to 6:20 p.m. in MCA 202 A

The Book

Examinations

Assignments

1 due: Sun 22nd January. A reading assignment.
2 due: Sun 5th February. A fairly simple program in Python.
3 due: Sat 25th February. A basic parser for a subset of English.
4 due: Sat 25th March. N Queens in two different ways.
5 due: Sat 15th April. Prolog family relationships, here's the diagram.
6 due: Mon 17th April. A special research project.
7 due: Wed 10th May. Create and train a single layer neural network.
Thursday 11th May is the absolute drop-dead deadline for everything.
Read the Important Rules link above before submitting.

Submit assignments (code + sample run(s)) through blackboard (under Assignments).
Submissions must be clearly readable word documents.

PC log in - use Putty or your own preferred SSH app.
OR mac users: start the terminal app, windows users: start powershell, then type the command
ssh username@rabbit.eng.miami.edu and type your password when prompted.
Windows users beware: you can't use ctrl-V in pico, but page up and page down will do the job.

Class History

Class 1 - Wed 18-1-2023 Quick introductions.
Some first thoughts on Artificial Intelligence.
Class 2 - Mon 23-1-2023 (Not deep learning or computer vision), (edges, borrowed from a google search)
An overview of what is to come.
A lot of it is just clever searching: where we got with the farmer.
Outlined Python notes.
Class 3 - Wed 25-1-2023 Finishing the farmer problem.
Thinking about the extent to which that program embodies intelligence.
A word about the second assignment, and a few more useful python bits.
Class 4 - Mon 30-1-2023 Python has a basic debugger.
The rest of strings and lists and tuples and sets and queues, quickly.
Today's little examples.
httpread.py, lispy.py, lispy2.py, llist0.py, llist.py, match.py, primes.py, qsort.py, revlist.py, tree0.py, tree1.py, tree2.py, treeen.py.
sample .csv file.
Class 5 - Wed 1-2-2023 Lisp-like things: being able to incorporate active code in data structures.
A bit about the problems of natural language processing.
Class 6 - Mon 6-2-2023 Grammar rules, BNF.
Basic parsing techniques.
An example grammar and parse trees, and firstfollow.py (incomplete).
Class 7 - Wed 8-2-2023 Finishing the basic parsing technique.
A big grammar in a slightly different format.
Intelligent Agents.
Class 8 - Mon 13-2-2023 Back to the vacuum cleaner for a moment.
Searching.
fourstart.py: Starting the sqrt, floor, factorial puzzle - a recursive depth first search.
Depth-first with recursion runs into stack size limit.
Making our own stack lets it get further but still isn't good enough.
Class 9 - Wed 15-2-2023 four.py: Replacing the queue with a stack gives a breadth first search.
More details of classes and functions (up to lambdas).
A screen capture of today's python demos.
Class 10 - Mon 20-2-2023 Finish off functions.
Some reinforcement: farmer.py farmers.py, farmerq.py.
Iterative deepening: plain old recursion, and the result.
Eight queens: chessboard, queensexplbt.py (corrected).
Class 11 - Wed 22-2-2023 Short review of methods for the assignment, (the provided basis), (a sample grammar).
Recursion giving backtracking for the eight queens problem.
fifteen.py, eight.py, three.py,
Best-first search, requires a score and a min-heap or priority queue.
Class 12 - Mon 27-2-2023 Priority queues and heuristics.
eightheap.py (reduce randomisation), eightheap2.py, eightheapc.py, eightheapc2.py.
Search Trees.
A few more language features: iterables, yield, iterators, special assignments, eval, exec, exceptions, already done classes?.
Class 13 - Wed 1-3-2023 Aside: why += on a tuple seems to work.
Review backtracking and best first.
Class 14 - Mon 6-3-2023 First mid-term.
1. Searching: depth-first, breadth-first, best-first, iterative deepening,
2. Backtracking, both explicit and through recursion,
3. Python ability.
Class 15 - Wed 8-3-2023 Finish off the few more features.
Hill climbing and genetic algorithms.
Break
Class 16 - Mon 20-3-2023 More Searching.
Strategies for dealing with incomplete knowledge (maybe not enough sensors)
or non-determinism (not sure what will happen, real world: turning motor on might not result in expected movement)
And-or trees.
Games.
Dealing with opponents. Minimax search.
Class 17 - Wed 22-3-2023 Alpha-beta pruning.
Logic based agents.
Propositional Logic.
We had just got into the paragraph labelled Resolution.
Class 18 - Mon 27-3-2023 An example showing the importance of resolution.
Predicate Calculus.
Unifying, Substituting, and Renaming variables.
Class 19 - Wed 29-3-2023 Prolog.
enemy.pl, tj1.pl, tj2.pl, tj3.pl, log.pl. member.pl.
Class 20 - Mon 3-4-2023 When something goes wrong, "Action (h for help) ?", type little t then capital A or sometimes little a, sometimes notrace. and sometimes nodebug..
Family tree assignment.
The knight's tour,
Farmer, Fox, Chicken, and Corn again,
Small parser for English sentences, we didn't do this one, but it would do you good to have a look at it,
Reversible operations on numbers, the Peano axioms,
Binary trees of numbers.
Class 21 - Wed 5-4-2023 13-Probability,
14-Probabilistic-Reasoning.
Class 22 - Mon 10-4-2023 No regular in-person classes this week. You should have received an email about that.
Use the time for a special research assignment, which I have added as assignment 6.
Class 23 - Wed 12-4-2023 Same as Tuesday.
Class 24 - Mon 17-4-2023 Neural Networks: intro, details, final words.
Class 25 - Wed 19-4-2023 Implementation ideas for multi-layer neural networks.
Learning decision trees,
The restaurant visit example, improved.
Class 26 - Mon 24-4-2023 Second mid-term.
1. Best-first and Heuristic searches,
2. Games, dealing with an opponent or uncooperative environment,
3. Propositional logic, predicate calculus, prolog,
4. Probability and probabilistic reasoning.
Class 27 - Wed 26-4-2023 Planning.
Other forms of learning.
Class 28 - Mon 1-5-2023 The minimax solution, just for reference.
Solution to question 6.
There will be no new question.
Natural language in prolog,
Natural language with ambiguity.