Title: Syllabus
Course: CS171: Introduction to Artificial Intelligence

CS171: Introduction to Artificial Intelligence

Prof. Alexander Ihler | (Course & syllabus based on offerings by Prof. Richard Lathrop)

The goal of this class is to familiarize you with the basic principles of artificial intelligence. You will learn some basic AI techniques, the problems for which they are applicable, and their limitations.

The course content is organized roughly around what are often considered to be three central pillars of AI: Search, Logic, and Learning. Topics covered include basic search, heuristic search, game search, constraint satisfaction, knowledge representation, logic and inference, probabilistic modeling, and machine learning algorithms.

Class Setup

The course will be primarily lecture-based. There will be a Mid-term and a Final Exam. On every other Thursday before the Mid-term Exam, and every other Tuesday after it, the first 20 minutes will be an in-class pop quiz, followed by lecture (see specific dates calendar, below). The frequent quizzes are intended to encourage you to stay current with the course material. All exams and quizzes may cover all material presented in class, including lectures and assigned textbook reading. Quizzes will cover mostly material presented since the last quiz, and also may include questions that many students missed on the previous quiz. The Final Exam will cover mostly material since the Mid-term Exam, and also will include many questions intended to encourage you to remember the earlier material (i.e., the Final Exam will be comprehensive). Please study the previous CS-171 quizzes and exams (Files::Past Exams), which are made available as study guides to help you learn and master the class material; they are important guides about the performance that will be expected from you now.

We will use a course Piazza page for questions & discussion.  Please post your questions there; you can post privately if you prefer.  Use Piazza for all class contact enables responses by myself, the TAs, or fellow students (if public), which should get you answers more quickly.

Homework

Homework will be assigned, but is not graded. The reason is that prior student course evaluations alerted me to the existence of student cheating by way of copying the homework answers. I deplore this degree of personal degradation in dishonest students, but I cannot control it, and so I avoid the opportunity. I remain determined to create a fair and honest educational experience for all students, as best I can.

Course Project

There will be an AI coding project (see the Project details page). This is an individual or pair project, i.e., you must do it entirely by yourself or form a team of two people. Sometimes teams do not work out. Any team member may dissolve their team at any time by so notifying the Instructor, TAs, and Tournament Director. Any code written before the dissolution is “community property” which may be used freely by both former team members. Any code written after the dissolution is the sole property of the person who wrote it.

Please note that you are encouraged to discuss concepts, methods, algorithms, etc.; but you are forbidden to copy: (1) source code from any source, or (2) text from any source unless properly cited and set off as a quote. Except for class materials provided from this class website, you or your team must invent and write all of your own code by yourself. Except for properly referenced material, you or your team must write all of your own project report by yourself.

Please note that your source code and project report are subject to analysis by automated plagiarism detection programs, and that direct copying will be treated as an act of academic dishonesty (please see the section on “Academic Honesty” below). Please start your AI coding project earlier than you believe necessary, i.e., immediately; it will take longer and be more difficult than you expect (as is true of all coding projects everywhere at all times).

For your project report, please write a short (~2 page) description using the provided template (docx, pdf).

All the various CS-171 AI project shells were written by former CS-171 students who became interested in AI and signed up for CS-199 in order to pursue their interest and write more interesting AI project shells. Please let me know if this is of interest to you (CS-171 grade of A- or better required).

Textbook

Required: Russell & Norvig : Artificial Intelligence; A Modern Approach, 3rd edition.

The course is based on, and the UCI bookstore has, the 3rd edition. The assigned textbook reading is required, and is fair game for quizzes and exams. You place yourself at a distinct disadvantage if you do not have the textbook. I expect that you have a personal copy of the textbook, and quizzes and exams are written accordingly.

Please purchase or rent your own personal textbook for the quarter (and then resell it back to the UCI Bookstore at the end if you don't want it for reference). Please do not jeopardize your precious educational experience with the false economy of trying to save a few dollars by not having a personal copy of the textbook.

Also, for your convenience, I have requested that a copy of the textbook be placed on reserve in the UCI Science Library. There is a two-hour check-out limit. However, please understand that with high student enrollments, it is unrealistic to expect that these thin reserves always will be available when you need them. Please purchase or rent your own personal textbook. Otherwise, you are at a severe disadvantage.

I do deplore the high cost of modern textbooks. You may find the textbook cheaper if you look online at sites such as eBay.com, Amazon.com, etc.; or search the web for other sites related to the textbook.

Grading

Your grade will be based on Discussion Section participation (10%), a coding project (20%), the four quizzes (20%), a mid-term exam (25%), and a final exam (25%). Homework is assigned but ungraded.

- Discussion Section is REQUIRED and roll will be taken each period (10 periods = 1 period per week over 10 weeks). Each of the 10 periods counts as 1/10 of the 10% Discussion Section Participation points; however, 3 periods are "free" (i.e., to obtain full credit, you must attend at least 7 of the 10 weeks.)  You may not leave after roll has been taken and before the end of the period, i.e., it is not OK to show up for roll and then depart prematurely.
- The AI coding project will be a “Connect-K” AI agent. “Dumb” coding shells are available in C++, Java, and Python. You must write the “smarts.” This is a solo or pair project and you must do all of it all by yourself or with a single team-mate.
You are already behind schedule. Start coding now. More details below in the Project section. You will lose 10% of your Project grade for every day or fraction thereof your project submission is late. Your “Final AI” will be entered into a tournament against all of your classmate’s Final AIs. The top 10% will have their Project score increased by 10% (= 2% of total grade), the second 10% by 9%, the third 10% by 8%, and so on.
- Quizzes will be given the first 20 minutes of class every second Thursday before, and each second Tuesday after, the Mid-term Exam (dates are listed in the Syllabus Overview below), and are closed-book, closed-notes. Your lowest quiz score will be discarded in computing your grade. It is not possible to make-up missed quizzes, but one missed quiz may be discarded as your lowest quiz score.
- The mid-term exam will be given in class on Tuesday, 1 Nov., and is closed-book, closed-notes. It is not possible to make-up a missed Mid-term exam.
- The final exam will be given in class on Tuesday, 6 Dec., 4-6pm, and is closed-book, closed-notes. The Final exam will cover all course material from the entire quarter, with emphasis on the second half. It is not possible to make-up a missed Final exam.
- I honor all requests made by the UCI Disability Services Center.
Also, I make exceptions for:
  - genuine medical conditions (I require a signed note from your doctor on official letterhead),
  - births/deaths in the family (I require a copy of the birth/death certificate),
  - jury duty or other court proceedings (I require a copy of your jury service papers or other official court documents), or
  - field maneuvers of the US military or National Guard (I require a copy of your official orders).
- Every student who fills out a course evaluation for CS-171 will receive a bonus of 1% added to their final grade, free and clear, off the curve, simply a bonus.
EEE will return to me the names of students who fill out evaluations (but not the content, which remains anonymous), provided that enough students fill out evaluations so that anonymity is not compromised. I will add 1% free bonus to the final grade of each such named student.
Student course evaluations are very important to me for monitoring and improving the course content, and very important to UCI for evaluating our success at our educational mission. *Please* fill out your student course evaluations.

Study Habits

This course is technical, rigorous, and demanding. You will be expected to learn and master a large body of technical material in a very short period of time. You must demonstrate your mastery by (1) accurate performance on frequent quizzes and exams, and (2) successful implementation of an AI coding project.

I deliberately treat you as adults who are responsible for your own educational decisions, and so Lecture is optional. Discussion Section is required and roll will be taken, because it is part of our educational mission to train our TAs to become future professors. Nevertheless, students who do not attend Lecture are at a serious disadvantage and do not succeed as well in this class. Students who spend Lectures and Discussion Section sleeping, on cell phones, surfing the Web, or on social media are wasting their time and might as well be absent. Such students send me email messages to ask questions that already were covered thoroughly and in detail during Lecture and once again in Discussion Section. On quizzes and exams, they miss points that already have been covered thoroughly.

Your educational moments are precious, and your education now will be the single most important factor in your future career success or failure. Please, make the most of your precious educational moments now. Please, attend both Lecture and Discussion Section, pay attention, ask questions, and master the material.
Please do not ever fall behind in the class material; instead, study frequently and diligently. Please begin your AI coding project earlier than you believe necessary; it will take longer and be more difficult than you expect (as is true of all coding projects everywhere at all times).

Please work harder and study longer. Please understand thoroughly all class material, and ask questions when you do not understand. Please attend all lectures and discussion sections. Please come to lectures and discussion sections prepared with questions about any material that is not clear. Please do all assigned reading, both before and again after lecture. Please review the lecture notes, several times over, both before and again after lecture, until you understand every detail. Please regularly attend office hours with me and the TA. Please ask questions about any class material that is not absolutely crystal clear.

Please work and understand all past quizzes and exams; they are important guides about the performance that will be expected from you now. Please work and understand all the optional homework.

Please OVERSTUDY!!

Week | Date | Event | Lecture Topic | Lecture Reading
1 | Thu 22 Sep | Lecture | Class setup, Intro Agents (Slides) | R&N Ch 1-2 Cultural Interest
 | Fri 23 Sep | Discussion | Review, questions |
2 | Mon 26 Sep | Project Q&A | Coding Project individual Q&A, Bren 3013 |
 | Tue 27 Sep | Lecture | Intro State Space Search (Slides); Uninformed Search (Slides) | R&N 3.1-3.4 Cultural Interest
 | Wed 28 Sep | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 29 Sep | Lecture | Heuristic Search (Slides) | R&N 3.5-3.7
 | Fri 30 Sep | Discussion | Review, questions |
 | Sun 2 Oct | Team formation deadline | You must register your team name (yourself alone, or a team of at most two people).
3 | Mon 3 Oct | Project Q&A | Coding Project individual Q&A, Bren 3013 |
 | Tue 4 Oct | Lecture | Local Search (Slides) | R&N 4.1-4.2 Cultural Interest
 | Wed 5 Oct | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 6 Oct | Quiz #1 Lecture | Game (Adversarial) Search A  (Slides) | R&N 5.1, 5.2, 5.4
 | Fri 7 Oct | Discussion | Review, questions |
 | Sun 9 Oct | Minimal AI deadline | Minimal AI must run on openlab.ics.uci.edu in the tournament shell and at least make a random move on its turn
4 | Mon 10 Oct | Project Q&A | Coding Project individual Q&A, Bren 3013 |
 | Tue 11 Oct | Lecture | Game (Adversarial) Search B | R&N 5.3 (optional: 5.5+) Cultural Interest
 | Wed 12 Oct | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 13 Oct | Lecture | Constraint Satisfaction A  (slides) | R&N 6.1-6.4, except 6.3.3
 | Fri 14 Oct | Discussion | Review, questions |
5 | Mon 17 Oct | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 18 Oct | Lecture | Constraint Satisfaction B (slides) | R&N 6.1-6.4, except 6.3.3 Cultural Interest
 | Wed 19 Oct | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 20 Oct | Quiz #2 Lecture | Propositional Logic A (slides) | R&N 7.1-7.4
 | Fri 21 Oct | Discussion | Review, questions |
 | Sun 23 Oct | First-Draft AI deadine | First-Draft AI must run on openlab.ics.uci.edu in the tournament shell and implement mini-max search with depth cut-off and heuristic static evaluation function
6 | Mon 24 Oct | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 25 Oct | Lecture | Propositional Logic B (slides) | R&N 7.5 (optional: 7.6-7.8) Cultural Interest
 | Wed 26 Oct | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 27 Oct | Lecture | Mid-term Exam Review | All of above
 | Fri 28 Oct | Discussion | Review, questions |
 | Sun 30 Oct | Alpha-beta AI deadline | Alpha-beta AI must run on openlab.ics.uci.edu in the tournament shell and extend First-Draft AI to include alpha-beta pruning
7 | Mon 31 Oct | Project Q&A | Coding Project individual Q&A, Bren 4011 | Happy Halloween!
 | Tue 1 Nov | Mid-term | Mid-term Exam | All of above Cultural Interest
 | Wed 3 Nov | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 3 Nov | Lecture | Predicate Logic A (slides) | R&N 8.1-8.5
 | Fri 4 Nov | Discussion | Review, questions |
8 | Mon 7 Nov | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 8 Nov | Lecture | Predicate Logic B (slides) | Review R&N 8.3-8.5, Read 9.1-9.2 (optional: 9.5) Cultural Interest
 | Wed 9 Nov | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 10 Nov | Lecture | Probability, Uncertainty (slides) | R&N Ch 13, 14.1-14.5
 | Fri 11 Nov | Discussion | Review, questions |
9 | Mon 14 Nov | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 15 Nov | Quiz #3 Lecture | Bayesian Networks (slides) | R&N Ch 18.1-18.4 Cultural Interest
 | Wed 16 Nov | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 17 Nov | Lecture | Machine Learning (slides) | R&N Ch 18.5-12, 20.1-2
 | Fri 18Nov | Discussion | Review, questions |
 | Sun 20 Nov | IDS/Sorting AI deadline | IDS/Sorting AI must run on openlab.ics.uci.edu in the tournament shell and extend Alpha-beta AI to include IDS search up to the time limit plus sort moves based on the last IDS iteration to put the most favorable moves first for A/B pruning
10 | Mon 21 Nov | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 22 Nov | Lecture | Clustering, Regression | R&N Ch 18.6.1-2, 20.3.1 Cultural Interest
 | Wed 23 Nov | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 24 Nov | Holiday! | Happy Thanksgiving Holiday! |
 | Fri 25 Nov | Holiday! | Happy Thanksgiving Holiday! |
11 | Mon 28 Nov | Project Q&A | Coding Project individual Q&A, Bren 4011 |
 | Tue 29 Nov | Quiz #4 Lecture | Special Topics Lecture: (1) Special topics request from students; (2) TA or Prof present their own research; (3) Catch-up lecture if needed; (4) Any other use desired. | TBA
 | Wed 30 Nov | Project Clinic | Coding Project Clinic, 5-6pm, MSTB 120 |
 | Thu 1 Dec | Lecture | Final Exam Review (slides) | All of the above
 | Fri 2 Dec | Discussion | Review, questions |
 | Sun 4 Dec | Final AI deadline | Final AI must run on openlab.ics.uci.edu in the tournament shell and extend IDS/Sorting AI to be your best and final AI that will compete for you in the tournament.  Let the Games begin!
12 | Tue 6 Dec | Final Exam | 4:00 - 6:00 p.m. | All of the above

Academic Honesty

Academic dishonesty is unacceptable and will not be tolerated at the University of California, Irvine. It is the responsibility of each student to be familiar with UCI's current academic honesty policies. Please take the time to read the current UCI Academic Senate Policy On Academic Integrity and the ICS School Policy on Academic Honesty.

The policies in these documents will be adhered to scrupulously. Any student who engages in cheating, forgery, dishonest conduct, plagiarism, or collusion in dishonest activities, will receive an academic evaluation of "F" for the entire course, with a letter of explanation to the student's permanent file. The ICS Student Affairs Office will be involved at every step of the process.  We seek to create a level playing field for all students.