CS 540 Section 1: Introduction to Artificial Intelligence
Fall 2018 (T,Th 11am - 12:15pm, Van Vleck B102)
9/6 Introduction (Stanford One Hundred Year Study on Artificial Intelligence; optional: textbook ch 1, 2; AAAI)
Breadth-first search, depth-first search (slides, ch 3)
9/11 Uniform-cost search, iterative-deepening
9/13 Informed search: A* algorithm (slides, ch 3)
9/18 Hill-climbing (slides, 4.1)
9/20 Simulated annealing, genetic algorithms
9/25 Minimax Game playing (slides, 5.1 - 5.3)
9/27 Alpha-beta pruning
10/2 Probability and statistics basics (slides, 14.1, 14.2, 14.4, Introduction to Probability, Statistics, and Random Processes)
10/4 Probability and statistics basics
10/9 Natural language and statistics (notes, Stanford English Tokenizer)
10/11 Linear Algebra (notes, matlab demo PCA.m with its data files vocabulary_stopword_removal.txt and WARC201709BOW.txt, Numerical Algorithms Ch 1, math crib sheet)
10/16 Principal Component Analysis (PCA)
10/18 Propositional Logic (slides, 7.1, 7.3 - 7.5)
10/23 First Order Logic (slides, FOL inference slides)
10/25 Machine Learning basics
10/30 Hierarchical Clustering (slides, Z&G ch 1 [free access from UW IP addresses])
11/1 K-means Clustering
11/6 K-Nearest-Neighbor classifier (knn demo)
11/8 Linear regression (notes)
11/13 Logistic Regression
11/20 Neural networks
11/29 Deep learning (Nature'15, Deep Learning book, slides, Convolutional neural nets, 18.7, hand notes on backprop)
12/4 Deep learning
12/6 Deep learning
12/11 Markov Decision Processes (Sutton and Barto 2nd ed., 1.1-1.4, 3, 6.5)
12/13 Reinforcement Learning (Qlearning.m)
Homework assignments and solutions are posted here.
Homework 1, assigned 9/6, due 9/13 before class [pdf | latex | solution]
Homework 2, assigned 9/13, due 9/20 before class [pdf | successor.java | latex source files: hw2.tex, graphc.png, graph.jpg]
Homework 3, assigned 9/20, due 9/27 before class [version 2 (updated examples)]
The instructors and TAs will post announcements, clarifications, hints, etc. on Piazza. Hence you must
check the CS540 Piazza page frequently throughout the term. If you have a question, your best option
is to post a message on Piazza. The staff (instructors and TAs) will check the forum regularly, and if
you use the forum, other students will be able to help you too. When using the forum, please do not post
answers to homework questions before the homework is due.
If your question is personal or not of interest to other students, you may mark your question as private
on Piazza, so only the instructors will see it. If you wish to talk with one of us individually, you are
welcome to come to our office hours. Please reserve email for the questions you can't get answered in
office hours or through the forum.
Homework must be submitted via the Canvas system. Typically, you hand in a single pdf file.
If there is a programming part, electronically hand in files containing the Java code
that you wrote for the assignment. You do not need to hand in any class files.
We provide specific instructions for each homework.
Course Staff and Office Hours
Professor Jerry Zhu, email@example.com, T 4-5, CS 6391
TAs: hold office hours, grade your submissions
(head TA) Ara Vartanian, firstname.lastname@example.org, W 5-6, CS 4259
Yunang Chen, email@example.com, M 4-5, CS 7331
Siddhant Garg, firstname.lastname@example.org, Th 3-4, CS 1307
Yufei Wang, email@example.com, Th 4-5, CS 7351
Shuo Yang, firstname.lastname@example.org, F 4-5, CS 6378
Zhanpeng Zeng, email@example.com, W 4-5, CS 4360
Peer Mentors: hold office hours
Shrehit Goel, firstname.lastname@example.org
Pengyu Kan, email@example.com
Nicholas Mandal, firstname.lastname@example.org
Tushar Narang, email@example.com
Yash Shah, firstname.lastname@example.org
Shaoheng Zhou, email@example.com
All peer mentor office hours are in CS 1304:
Mon: 10:30 - 12:30 (Yash), 12:00 - 4:00 (Nicholas), 4:15 - 5:45 (Tushar)
Tue: 1 - 2:30 (Tushar), 1:00 - 3:00 (Yash), 4-5:30 (Tushar), 4:30 - 7:30 (Pengyu), 4:30 - 8:30 (Shaoheng)
Wed: 11:00 - 1:00 (Nicholas), 2:30 - 4:30 (Nicholas), 4:00 - 5:30 (Tushar)
Thu: 12:45 - 4:00 (Shrehit), 1:00 - 5:00 (Yash), 5:00 - 9:00 (Pengyu, Shaoheng)
Fri: 12:15 - 3:00 (Shrehit)
Graders: grade your submissions
Swati Mishra, firstname.lastname@example.org
Prerak Mall, email@example.com
Varun Batra firstname.lastname@example.org
Recommended Textbook: Artificial Intelligence: A Modern Approach, 3rd edition (blue) Stuart J. Russell and Peter Norvig. Prentice Hall, Englewook Cliffs, N.J., 2010
Prerequisite: (COMP SCI 300 or 367) and (MATH 211, 217, 221, or 275)
Note: The distribution of CS540 final grades has been as follows.
This is an approximation, and changes from semester to semester.
The median student's course grade is usually a low B or high BC.
The percentiles refer to ranking based on the final weighted score.
A top ~20% of class
AB next ~20%
B next ~20%
BC next ~20%
C next ~15%
D next ~3%
F next ~2%
- Midterm Exam: about 20%
- Final Exam: about 30%
- Homework Assignments: about 50%
Homework assignments will include written problems and sometimes programming in Java.
Accounts will be provided on the Computer Sciences Department's instructional
Unix workstations located in rooms 1350, 1351, and 1370. Frequently-asked
questions (FAQs) on homework assignments will be e-mailed to the class mailing
list. Homework is always due the minute before class starts on the due date.
Late submissions will not be accepted. Assignment grading questions must be
raised with the TAs within 72 hours after it is returned. Regrading request
for a part of a homework question may trigger the grader to regrade the entire
homework and could potentially take points off. Regrading will be done on the
original submitted work, no changes allowed.
We will drop two lowest homework scores from your final homework average calculation. These drops are
meant for emergency. We do not provide additional drops, late days, or homework extensions.
We encourage you to use a study group for doing your homework. Students are expected to help
each other out, and if desired, form ad-hoc homework groups.
Resources on Java for C++ programmers
Resources on Java for Python programmers:
Resources for basic Java syntax:
There is also the Computer Sciences Learning Center (CSLC) which provides drop-in tutoring:
There will be a midterm exam and a final exam. Makeup exams will not be scheduled. Please plan for
exams at these times and let the Head TA know about any exam conflicts during the first two weeks of
the semester. If an emergency arises that conflicts with the exam times, email the Head TA as soon as
possible. Emergency exam conflicts will be handled on a case-by-case basis. Exam conflicts originating
from a lecture conflict will not be accommodated. Exam grading questions must be raised with the
instructor within 72 hours after it is returned. If a regrade request is submitted for a part of a
question on the exam, the grader reserves the right to regrade the entire exam and could potentially take points off.
All exams are closed book. Bring a calculator and copious amount of blank scratch paper.
One 8.5x11 sheet of paper with notes on both sides allowed (handwritten or typed). Lectures
and readings on the syllabus page are required, with a few exceptions (to be posted before
the exam). You are responsible for topics covered in lecture even if there are no lecture
notes on the topic.
(Note the exam format, scope and order of topics might be different.)
Fall 17 final (with solution)
Fall 17 midterm (with solution)
Fall 16 final (with solution)
Fall 16 midterm (with solution)
Fall 14 final (with solution)
Fall 14 midterm (with solution)
Fall 13 final
Fall 12 final (with solution)
Fall 11 midterm (with solution)
Fall 10 final (with solution)
Fall 10 midterm (with solution)
Fall 09 final (with solution)
Fall 09 midterm | Answers
Fall 08 final
Fall 08 midterm
Fall 06 final
Fall 06 midterm | Answers
Fall 05 final
Fall 05 midterm | Answers
Prof. Dyer's CS540 exam archives
- Midterm Exam: Wed Oct 24 7:15-9:15pm. Room TBA
Topics covered: all topics in lectures up to the exam; related slides and notes.
- Final Exam: Wed Dec 19 12:25-2:25. Room TBA. Cumulative.
everything on the course webpage, including slides, notes, selected readings (but not whole books)
You are encouraged to discuss with your peers, the TA or the instructors ideas, approaches
and techniques broadly. However, all examinations, programming assignments, and written
homeworks must be written up individually. For example, code for programming assignments
must not be developed in groups, nor should code be shared. Make sure you work through all
problems yourself, and that your final write-up is your own. If you feel your peer discussions
are too deep for comfort, declare it in the homework solution: "I discussed with X,Y,Z the following
specific ideas: A, B, C; therefore our solutions may have similarities on D, E, F..."
You may use books or legit online resources to help solve homework problems, but you must always credit
all such sources in your writeup and you must never copy material verbatim.
We are aware that certain websites host previous years' CS540 homework assignments and solutions against the
wish of instructors. Do not be tempted to use them: the solutions may contain "poisonous berries" previous
instructors planted intentionally to catch cheating. If we catch you copy such solutions, you automatically fail.
Do not bother to obfuscate plagiarism (e.g. change variable names, code style, etc.) One application
of AI is to develop sophisticated plagiarism detection techniques!
Cheating and plagiarism will be dealt with in accordance with University procedures
(see the UW-Madison Academic Misconduct Rules and Procedures).
The University of Wisconsin-Madison supports the right of all enrolled students to a full and equal
educational opportunity. The Americans with Disabilities Act (ADA), Wisconsin State Statute (36.12),
and UW-Madison policy (Faculty Document 1071) require that students with disabilities be reasonably
accommodated in instruction and campus life. Reasonable accommodations for students with disabilities
is a shared faculty and student responsibility. Students are expected to inform Professor Zhu of their
need for instructional accommodations by the end of the third week of the semester, or as soon as
possible after a disability has been incurred or recognized. Professor Zhu will work either directly
with the student or in coordination with the McBurney Center to identify and provide reasonable
instructional accommodations. Disability information, including instructional accommodations as part
of a student’s educational record, is confidential and protected under FERPA.
Additional Course Information
Course learning outcomes: Students gain principles of knowledge-based search techniques;
automatic deduction, knowledge representation using predicate logic, machine learning,
probabilistic reasoning. Students develop applications in tasks such as problem solving,
data mining, game playing, natural language understanding, and robotics.
Number of credits associated with the course: 3
How credit hours are met by the course: For each 50min of classroom instruction, a minimum of two hours
of out of class student work is expected. This course has two 75-minute classes each week over approximately
15 weeks, which amounts to the standard definition of a 3-credit course.
Attend lectures! There is a reason that your professor is superior to online courses. Much information
is in neither the textbook nor the slides. Students do better in the course if they stay on track with lectures.
That also helps with your homework.
Do the homeworks! The homeworks are explicitly designed to help you to learn the material as you go along.
There is usually a strong correlation between homework scores and final grades in the class.
Visit the TAs and peer mentors! They are here to help you. The better prepared you are for the discussion,
the more you are likely to benefit from it.
Form study groups! You are encouraged to form small groups to work together on homeworks and on understanding
the class material on a regular basis. In addition to being fun, this can save you a lot of time by generating
ideas quickly and preventing you from getting hung up on some point or other. Of course, it is your responsibility
to ensure that you contribute actively to the group; passive listening will likely not help you much.
You must write up your solutions on your own. We advise you strongly to spend some time on your own thinking
about each problem before you meet with your study partners; this way, you will be in a position to compare ideas
with your partners, and it will get you in practice for the exams. Some groups try to split up the problems
("you do Problem 1, I'll do Problem 2, then we'll swap notes"); not only is this a punishable violation of our
collaboration policies, it also ensures you will learn a lot less from this course.
Don't Be Afraid to Ask for Help! Struggling? Convinced that you are the only one who doesn't know the material?
Don't feel that way. Please come talk to us early. Don't wait until the end of semester. We want to see you succeed in CS 540!