CS5368 Fall 2023
Course Information
Time/Location: Mon/Wed/Fri 12:00-1:00 pm, Human Science 00169
Class material will be posted here and on Blackboard.
Piazza for the course is now alive. Please ask all questions/discussions via Piazza
Instructor/Staff Information
Instructor: Tara Salman (tsalman at ttu dot edu)
TA: TBA
Office hours (Salman): Mon/Friday 1:00-3:00 pm, EC211D
TA Office hours: TBA
Description
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.
Prerequisites
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
Assessments
Projects/programming assignments: 50% ( submitted via blackboard. You will be able to grade yourself)
Programming part 40%
Reports 10%
Attendance/participation: 5%
Midterm: 25% (Friday, October 13th, 5 PM-7 PM)
Final: 25% ( Tuesday, December 12th, 1:30 p.m. to 4:00 p.m. )
Some notes for assessments:
Programming assignments
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.
Midterm and Final
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.
Attendance
For D01, participate in Piazza by posting and answering class questions whenever possible. For all others, the grade will be divided into two segments.
- Attendance (2%): Attend class and write your R# or name whenever asked. Attend ungraded quizzes whenever possible. If you attend more than 50%, you will get 2. More than 25% will get 1. Less than 25% will get 0.
- Participation (3%): Participate by asking and/or answering questions. I will sometimes (my decision) give you a sticky note for your name. Get a few of those, and you will get the 3. Participation and focus in class is the key to these grades.
Late policy
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 panelized. 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.
Collaboration policy
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 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.
Projects and Assignments
Project 0 and its reports are available on Blackboard and are due on Friday, September 15th.
Project 1 and its reports are available on Blackboard and are due on Monday, October 2nd.
Project 2 and its report are available on Blackboard and are due Monday, October 23rd.
Project 3 and its report are available on Blackboard and are due Monday, Nov 20th.
Lectures
Note that to access the videos, you need both the link and the passcode
Lecture 1 (Introduction to the course)
None
Lecture 2 (Intro part 2)
None. Maybe some of Chapter 1
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 (Search Algorithms)
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)
Lecture 5 (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 6 (Uninformed and Informed Search Algorithms)
Date: September 8th
Lecture slides: 1PP 4PP video Passcode: !zy4HST^ (sound quality is bad for today! sorry!)
Additional Resources:
none
Reading: Russel/Norvig, Chapter 3.1 to 3.6
Lecture 7 (Heuristic, Greedy, and A*)
Date: September 11th
Lecture slides: 1PP 4PP video (will be re-recorded and posted soon)
Additional Resources:
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)
Reading: Russel/Norvig, Chapter 3.1 to 3.6
Lecture 8 (A* Optimality and others)
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 9 (graph search and review)
Reading: Russel/Norvig, Chapter 3.5 to 3.6
Review Material can be found here
Lecture 10 (AS problem definition)
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 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 12 (Evaluation functions and play under uncertainty)
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 13 (Expectimax, Expectiminimax)
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 14 (How to assign utilities)
Reading: Russel/Norvig, Chapters 5.2-5.5
Lecture 15 (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 16 (MDP discounting and solving MDP overview)
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 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 17 (MDP Policy methods and rapping up)
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 (RL part 1)
Date: October 16th
Additional Resources:
Reading: Russel/Norvig, Chapter 21
Video: Pieter Abbeel giving the RL part 1 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 19 (RL part 2)
Date: October 18th
Additional Resources:
Reading: Russel/Norvig, Chapter 21
Video: Pieter Abbeel giving the RL part 1 lecture for the Fall 2018 Berkeley CS 188 course (part of it only)
Lecture 20 (RL part 3)
Date: October 20th
Additional Resources:
Reading: Russel/Norvig, Chapter 21
Lecture 21 (RL part 4)
Date: October 23th
Additional Resources:
Reading: Russel/Norvig, Chapter 21
Lecture 22 (RL part 5 and Probability part 1)
Lecture 23 (Probability part 2)
Date: October 27th
Additional Resources:
Reading: Russel/Norvig, Chapter 13.1-5
Video: Dan Klein giving the probability lecture for the Fall 2018 Berkeley CS 188 course
Lecture 24 (Probability part 3)
Date: October 30th
Additional Resources:
Reading: Russel/Norvig, Chapter 13.1-5
Video: Dan Klein giving the probability lecture for the Fall 2018 Berkeley CS 188 course
Lecture 25 (Probability and BN)
Lecture 26 (BN Part 1)
Date: Nov 3rd
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
Lecture 27 (BN Part 2)
Date: Nov 6th
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 and Dan Klein giving the BN Independence lecture for the Fall 2018 Berkeley CS 188 course (first part)
Lecture 28 (BN Part 3)
Date: Nov 8th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Klein giving the BN Independence lecture for the Fall 2018 Berkeley CS 188 course
Lecture 29 (BN Part 4)
Date: Nov 10th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Dan Klein giving the BN Independence lecture for the Fall 2018 Berkeley CS 188 course
Lecture 29 continued (BN Part 5)
Date: Nov 13th
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
Lecture 30 (HMM)
Date: Nov 15th
Additional Resources:
Reading: Russel/Norvig, Chapter 14.1-2,4
Video: Pieter Abbel giving the hidden Markov models lecture for the Fall 2018 Berkeley CS 188 course
Lecture 31 (NB part 1)
Date: Nov 17th
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) (recorded lecture)
Date: Nov 20th
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 (Perceptron)
Date: Nov 27th
Additional Resources:
Reading: Russel/Norvig, chapter 18.6.3
Video: Pieter Abbeel giving the Perceptron lecture for the fall 2018 Berkeley CS 188 course
Lecture 34 (Perceptron 2 and LR)
Date: Nov 27th
Additional Resources:
Reading: Russel/Norvig, chapter 18.6.3
Video: Pieter Abbeel giving the Perceptron lecture for the fall 2018 Berkeley CS 188 course
Resources:
This course is based on the CS 188 course at UC Berkeley. You may find lectures, slides, and more there.
Books
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.
Python Help
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.