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: TBA
Office hours (Salman): Monday/Wednesday 11:00–12:30 p.m., EC211D or by appointment
TA Office hours: TBA
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.
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 2 (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)
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.