Time/Location: Monday/Wednesday/Friday 10:00–11:00 a.m., T Fuller Petr Eng Research 110
Class material will be posted here and on Blackboard.
Piazza for the course is now alive. Please ask all questions/discussions via Piazza
Instructor: Tara Salman (tsalman at ttu dot edu)
TA: Samin Dehbashi
Office hours (Salman): Monday/Wednesday 11:00–12:30 p.m., EC211D or by appointment
TA Office hours: Thursday 2 pm-3 pm and Friday 2 pm-4 pm, room EC 203A or by appointment.
This course is an introduction to Artificial Intelligence (AI) that will focus on how to build systems that think and act like humans or rationally on some absolute scale. A specific emphasis will be on the statistical and decision-theoretic modeling paradigm. Topics covered include problem-solving via search, game playing, logical and probabilistic reasoning, planning, Markov modeling, and machine learning (neural nets, reinforcement learning, and genetic algorithms).
The course can be considered as a blend of "classic AI" (still relevant), "statistical AI," and machine learning. Classic AI topic includes Heuristic search and adversarial search. Statistical AI includes probabilistic reasoning, i.e., Bayesian networks, Markov chains, and hidden Markov models. Machine learning includes Naive Bayes, (hopefully perceptron), and neural networks.
By the end of this course, you will have built autonomous agents that efficiently make decisions in fully informed, partially observable, and adversarial settings. Your agents will draw inferences in uncertain environments and optimize actions for arbitrary reward structures. The techniques you learn in this course apply to a wide variety of artificial intelligence problems and serve as the foundation for further study in any application area you choose to pursue.
If you are unsure about any of these, please speak to the instructor
The course is for undergraduate CS students
Classes Prerequisites: CS 1382 (Discrete Computational Structures) is a must. CS 2413 (data structures and programming principles) and CS3364 (design and analysis algorithms) are additions. CS 2413 is highly recommended (very highly)
Knowledge Prerequisites:
Lots of Python programming! This will be critical to complete the programming assignments. If you do not know Python, or are rusty, you may find some resources below. Project 0 will help you assess your knowledge in python
Some basic knowledge of statistics, probabilities, and logical thinking. Homework 0 will help you assess your knowledge
Projects/programming assignments: 50% ( submitted via blackboard. You will be able to grade yourself)
Programming part 25%
Reports 10%
Problem solving 15%
Attendance/participation: 5%
Midterm: 25% (TBA)
Final: 25% ( Tuesday, December 9th, 10:30 a.m. to 1:00 p.m.)
All assignments are due before the lecture (for distance learning before 12 a.m.). Due dates are to be posted on the course website and Blackboard. The programming assignments for this course are a progression of Python programming assignments related to the classic game Pac-Man. You will be given an auto-grader and can assess your work before submission. All submissions should be made via Blackboard.
The assignment will consist of the programming tasks and a self-written report explaining your idea to program the assigned task. The student should write the report, which will be one of our many ways to detect plagiarism in such a large class. All reports will automatically run through plagiarism detection software, so don't copy your report (better yet, do not share your report with any other student). If a report is detected to be copied, all students involved will get a zero for that project (both programming and report grade) if it is the first time. A student will fail the class in any second detected attempt of cheating. This rule is to be strictly applied with no exceptions.
Note on collaboration: You may form a group of two to three students to solve the programming task. All students should submit the project. You may submit the same code in that case. However, to ensure everyone understood the task, everyone should submit their report. Again, reports should not be copied; the above plagiarism rule will apply here.
Primary assessments for the course. For distance learning students (D01), exams will be open on the exam date and time and available for two days (exactly 48 hours). Once you start, you will get 120 minutes to finish it (so plan accordingly). Exams will probably be done using Blackboard and proctorio.
Assignments will be due at the beginning of class on the due date. I will allow you to turn in your programming assignment in the upcoming class (the class after the deadline) only twice in the semester. After that, late submissions will be penalized. The late penalty is 10% for each day. For example, if you submit two days late, your grade will be 80% of your grade from the autograder and your report.
You may work on the assignments in pairs or a group of three if you prefer. If you choose to work with someone, please be sure to indicate this via the partners.txt file in your submission folder. Again, programming can be collaborative; reports and problem-solving have to be different.
Grading Rubric
A 90-100
B 80-89
C 70-79
D 60-69
F Below 60
The grading rubric is strict. All extra grades are given throughout the course.
Project 0 and its reports are available on Canvas and are due on Friday, September 12th.
Assignment 1, its report, and its problem-solving are available on Canvas and are due on Friday, October 3rd.
Assignment 2, its report, and its problem-solving are available on Canvas and are due on Friday, October 24th.
Note that to access the videos, you need both the link and the passcode
Lecture 1 (Introduction to the course)
Please read your syllabus carefully.
Lecture 2 (Introduction to the course)
None
Lecture 3 (Agents and Search)
Reading: Russel/Norvig, Chapters 3.1 to 3.4
Video: Pieter Abbeel giving the uninformed search lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all uninformed search material)
Lecture 4 (Agents and Search- Part 2)
Reading: Russel/Norvig, Chapters 3.1 to 3.4
Video: Pieter Abbeel giving the uninformed search lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all uninformed search material)
Lecture 5 (Agents and Search- Part 3 (Still uninformed search)
Reading: Russel/Norvig, Chapter 3.1 to 3.4
Video: Pieter Abbeel giving the uninformed search lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all uninformed search)
Lecture 6 (Agents and Search- informed search
Date: September 8th
Lecture slides: 1PP 4PP summary video (mediasite link this time)
Additional Resources:
Reading: Russel/Norvig, Chapter 3.1 to 3.6
Video: Pieter Abbeel giving the informed search lecture for the Spring 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all informed search/graph search/A* applications)
Lecture 7 (Agents and Search- informed search 2)
Reading: Russel/Norvig, Chapter 3.1 to 3.6
Video: Pieter Abbeel giving the informed search lecture for the Spring 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all informed search/graph search/A* applications)
Lecture 8 (Agents and Search- informed search 3)
Reading: Russel/Norvig, Chapter 3.1 to 3.6
Video: Pieter Abbeel giving the informed search lecture for the Spring 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all informed search/graph search/A* applications)
Lecture 9 (Adversarial Search- definition and min max)
Reading: Russel/Norvig, Chapter 6.2-5, and Chapter 5.2-5
Video: Pieter Abbeel giving the Game Tree: Minmax lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it)
Lecture 10 (AS Minimax, Pruning, and Depth Limited search)
Reading: Russel/Norvig, Chapter 6.2-5, and Chapter 5.2-5
Video: Pieter Abbeel giving the Game Tree: Minmax lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it)
Lecture 11 (AS Expectimax)
Reading: Russel/Norvig, Chapter 5.2-5
Video: Pieter Abbeel giving the Game Tree: Expectmax/Utilities lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 11 (AS Final)
Reading: Russel/Norvig, Chapter 5.2-5
Video: Pieter Abbeel giving the Game Tree: Expectmax/Utilities lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 13 (MDP problem definition)
Reading: Russel/Norvig, Chapters 17.1-3
Video: Dan Klein giving the MDP part 1 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 14 (MDP discounting and quantities)
Date: September 29th
Additional Resources:
Reading: Russel/Norvig, Chapters 17.1-3
Video: Dan Klein giving the MDP part 1 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 15 (MDP Ballman Equations and Value iteration)
Reading: Russel/Norvig, Chapters 17.1-3
Video: Dan Klein giving the MDP part 1 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 16 (MDP Value iteration examples)
Date: October 3rd
Lecture slides: 1PP
Additional Resources:
Lecture 17 (MDP policy methods)
Reading: Russel/Norvig, Chapters 17.1-3
Video: Dan Klein giving the MDP part 2 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
This course is based on the CS 188 course at UC Berkeley. You may find lectures, slides, and more there.
The recommended book for this course is Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig. Either the second or third edition is fine. This is a classic textbook and highly recommended! You can download the book from here.
Another good reference for reinforcement learning is Reinforcement Learning: An Introduction by Richard S. Sutton and Andrew G. Barto. The book is available online here.
The official Python tutorial is quite comprehensive. There is also a useful glossary.
The tutorial for the CS 188 AI course at Berkeley also contains a bit of information related to Project 0.
There is an interactive lesson plan available on Codecademy.
You might also find Google Python Class interesting.