Semester year: Spring 2023
Time/Location: MWF 12:00-12:50 PM, Indus. Manufac. and Sys. Engr (IMSE) Room 121
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 email: tsalman@ttu.edu
TA: Rukayat Olapojoye email:rolapojoye@ttu.edu
Office hours (Salman): MW 1:00 pm to 3:00 pm, EC306
TA Office hours: MW 10am – 11am, EC 016 (Basement) or EC203A
This course is an introduction to Artificial Intelligent (AI) course 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. Topic covered includes 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, 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.
The course targets upper-level undergraduate students. Evaluation is based on electronic assignments, programming assignments, two midterm exams, and a final exam. Get ready to play a lot (and a lot) with python and the Pac-man game.
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: 35% ( submitted via blackboard. You will be able to grade yourself)
Attendance/participation: 5%
HWs: 15% (submitted via gradescope)
Midterm 1: 10% (Friday, Feb. 24th 12:00 pm to 12:50 pm)
Midterm 2: 10% (Date: Friday, April 7th 12:00 pm to 12:50 pm)
Final: 25% ( Date: Friday May 5th, 1:30 p.m. to 4:00 p.m)
All assignments are due before the lecture. Due dates are to be posted on blackboard and on the course website. The programming assignments for this course are a progression of Python programming assignments related to the classic game Pac-Man. These assignments are adopted and modified from the Pac-Man project for the introduction to AI course at Berkley. You will be given an auto-grader and can assess your work before submission. All submissions should be made via blackboard.
All assignments are due before the lecture. Due dates are to be posted on the course website. All submissions should be made via Gradescope (you should sign up using BBXWBZ as an entry code and then join the course via https://www.gradescope.com/courses/488247).
Mini assessments for the course. The dates are stated above. Generally, we would use one exam but since the class time is limited, we will use two. These exams will test your knowledge and skills on problem-solving, solution design and implementation up to that point in the course.
Bigger assessments for the course. The final exam will test your ability to apply the knowledge learned in this course for problem analysis, solution design, and appropriate computer implementation.
Assignments will be due at the beginning of class on the due date. I will allow you to turn in your programming assignment (and only programming assignments) in the upcoming class (the class after the deadline) only twice in the semester. After that, late submissions will be panelized. The late penalty is 10% for each day. Electronic homework do not have any late days and we will start penalizing from HW1. For example, if you submit the Project two days late, your grade will be 80% of the grade you get on autograder.
You may work on the assignments in pairs if you prefer. If you choose to work with someone, please be sure to indicate this via the partners.txt file in your Subversion repository.
Homework 0 is available on Gradescope. It is due on Monday, Jan 30th.
Project 0 is available here and on Blackboard and is due on Monday, Jan 30th.
Project 1 is available here and on Blackboard and is due on Friday, Feb 17th.
Homework 1 is available on Gradescope. It is due on Monday, Feb 13th.
Homework 2 is available on Gradescope. It is due on Monday, Feb 27th.
Project 2 is available on Blackboard and here. It is due on Monday, March, 27th.
Homework 3 is available on Gradescope. It is due on Friday, March 24th.
Homework 4 is available on Gradescope. It is due on Monday, April 10th.
Project 3 is available on Blackboard and is due on Tuesday, May 2nd end of the day. You can download the PDF for it here.
Note that to access the videos, you need both the link and the passcode
Lecture 1 (Introduction to the course)
None
Lecture 2 (AI and Agents)
Reading: Russel/Norvig, Chapter 1, Sections 26.3 and 27.4
Lecture 3 (Search and Search Formulation)
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 material)
Lecture 4 (Uninformed Search Algorithms)
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 5 (Informed Search Algorithms)
Reading: Russel/Norvig, Chapter 3.5 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 6 (Informed Search Algorithms --- part 2)
Date: January 25th
Note: this is a tiny lecture. We had technical difficulties with the project and we did not start until 12:30
Additional Resources:
Reading: Russel/Norvig, Chapter 3.5 to 3.6
Lecture 7 (Search Heuristics and Graph Search)
Reading: Russel/Norvig, Chapter 3.5 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)
Lecture 8 (Search Final Part and CSP 1)
Date: January 30th
Additional Resources:
Reading: Russel/Norvig, Chapter 3.1 to 3.6 and Chapter 6.1
Lecture 9 (CSP 1)
Reading: Russel/Norvig, Chapter 6.1-6.5,
Video: Dan Klein giving the CSP part 1 lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all our lectures 9 and 10)
Lecture 10 (CSP 2)
Reading: Russel/Norvig, Chapter 6.1-6.5,
Video: Dan Klein giving the CSP part 1 lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it... the lecture covers material for all our lectures 9 and 10)
Lecture 11 (CSP 3)
Date: Feb 8th
Note: A short lecture that only covers the last part of CSPs
Additional Resources:
Reading: Russel/Norvig, Chapter 6.1-6.5,
Video: Dan Klein giving the CSP part 2 lecture for the Fall 2018 Berkeley CS 188 course (not all, but some part of it)
Lecture 12 (AS 1)
Date: Feb 10th
Additional Resources:
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 13 (AS 2)
Date: Feb 13th
Additional Resources:
Reading: Russel/Norvig, Chapter 5.1-5.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 14 (AS 3)
Date: Feb 15th
Additional Resources:
Reading: Russel/Norvig, Chapter 5.2-5.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 15(AS 4)
Date: Feb 17th
Lecture slides: 1PP 4PP demos video Mediasite link (use your TTU ID if needed)
Additional Resources:
Reading: Russel/Norvig, Chapters 5.2-5.5
Video: Pieter Abbeel giving the Game Tree: Expectmax/Utilities lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 16(MDP part 1)
Date: Feb 20th
Lecture slides: 1PP 4PP video Mediasite link (use your TTU ID if needed)
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 17 (MDP part 2)
Date: Feb 27th
Lecture slides: 1PP 4PP video Mediasite link (use your TTU ID if needed)
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 18 (MDP part 3)
Date: March 1st
Note: this class was canceled. You were asked to watch a video and March 3rd class will discuss questions (among other things)
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) and Dan Klein giving the MDP part 2 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 18 (MDP part 3)
Date: March 3rd
Note: the plan was originally for questions and problem-solving, but we needed to cover the material all over again.
Additional Resources:
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)
Lecture 19 (MDP part 4)
Date: March 6th
Additional Resources:
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)
Lecture 20 (Probability)
Date: March 8th
Additional Resources:
Reading: Russel/Norvig, Chapters 13.1-5
Video: Dan Klein giving the probability lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 21 (Probability 2)
Date: March 10th
Additional Resources:
Reading: Russel/Norvig, Chapters 13.1-5
Video: Dan Klein giving the probability lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 22 (BN 1)
Date: March 20th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Klein giving the BN Representation lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 23 (BN 2)
Date: March 22nd
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Klein giving the BN Representation lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 24 (BN 3)
Date: March 24th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Kleingiving the BN Independence lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 25 (BN 4)
Date: March 27th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Kleingiving the BN Independence lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 26 (BN 5)
Date: March 29th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Kleingiving the BN inference lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 27 (Decision network and value of perfect information)
Date: March 31st
Additional Resources:
Reading: Russel/Norvig, Chapter 16.5-6
Video: Dan Kleingiving giving the decision diagrams/VPI lecture for Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 28 (VPI part 2)
Date: April 3rd
Additional Resources:
Reading: Russel/Norvig, Chapter 16.5-6
Video: Dan Kleingiving giving the decision diagrams/VPI lecture for Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 29 (HMM)
Date: April 12th
Additional Resources:
Reading: Russel/Norvig, Chapter 16.6 and 15.2,5
Video: Pieter Abbel giving the hidden Markov models lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 30 (HMM 2)
Date: April 14th
Additional Resources:
Reading: Russel/Norvig, Chapter 16.6 and 15.2,5
Video: Pieter Abbel giving the hidden Markov models lecture for the Fall 2018 Berkeley CS 188 course (part of it only) and Dan Klein giving the hidden Markov models lecture for the Fall 2018 Berkeley CS 188 course (part of it)... Dan explains this specific lecture better than anyone I have seen.
Lecture 31 (NB part 1)
Date: April 19th
Additional Resources:
Reading: Russel/Norvig, chapter 20.1-20.2.2
Video: Dan Klein giving the Naive Bayes lecture for the Fall 2018 Berkeley CS 188 course(part of it)
Lecture 32 (NB part 2)
Date: April 21st
Additional Resources:
Reading: Russel/Norvig, chapter 20.1-20.2.2
Video: Dan Klein giving the Naive Bayes lecture for the Fall 2018 Berkeley CS 188 course(part of it)
Lecture 33 (Brief Intro to Perceptron, Logistic Regression and Neural Networks)
Date: April 24th
Additional Resources:
Reading: Russel/Norvig, chapter 18.6.3 and chapter 18.8
Lecture 34 (AI recent applications and Course conclusion)
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.