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. 

Syllabus

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 

Assessments 

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.

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)

Lecture 2 (Intro part 2)

Lecture 3 (Agents and Search)

Lecture 4 (Search Algorithms)

Lecture 5 (Uninformed Search Algorithms)

Lecture 6 (Uninformed and Informed Search Algorithms)

Lecture 7 (Heuristic, Greedy, and A*)


Lecture 8 (A* Optimality and others)

Lecture 9 (graph search and review)

Lecture 10 (AS problem definition)

Lecture 11 (AS Minimax, Pruning, and Depth Limited search)

Lecture 12 (Evaluation functions and play under uncertainty)

Lecture 13 (Expectimax, Expectiminimax)

Lecture 14 (How to assign utilities)

Lecture 15 (MDP problem definition)

Lecture 16 (MDP discounting and solving MDP overview)

Lecture 17 (MDP Ballman Equations and Value iteration)

Lecture 17 (MDP Policy methods and rapping up)

Lecture 19 (RL part 1)

Lecture 19 (RL part 2)

Lecture 20 (RL part 3)

Lecture 21 (RL part 4)

Lecture 22 (RL part 5 and Probability part 1)

Lecture 23 (Probability part 2)


Lecture 24 (Probability part 3)

Lecture 25 (Probability and BN)

Lecture 26 (BN Part 1)

Lecture 27 (BN Part 2)

Lecture 28 (BN Part 3)

Lecture 29 (BN Part 4)

Lecture 29 continued (BN Part 5)

Lecture 30 (HMM)

Lecture 31 (NB part 1)

Lecture 32 (NB part 2)  (recorded lecture) 

Lecture 33 (Perceptron) 

Lecture 34 (Perceptron 2 and LR) 



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