CS 540 - Introduction to Artificial Intelligence (Fall 2016)

This page contains information specific to Prof. Shavlik's section of CS 540 (Fall 2016).
Click here for general information about CS 540.

Instructor: Jude Shavlik

Office:      6393 CS Building 
Email:       shavlik@cs.wisc.edu 
Office Hours: Tuesday 2-3pm and Thursday 2-3pm (also for undergraduate advising on Thursday). Also by appointment (send email). 

Teaching Assistant: Sam Gelman

Office:        7367 CS Building 
Email:         sgelman@cs.wisc.edu 
Office Hours:  Wednesdays 2:30-3:30pm and Thursdays 11:00am-noon.  Also by appointment (send email) 

Additional Information

Table of Contents

Course Overview and Requirements

This course provides an introduction to artificial intelligence. Topics covered include knowledge representation, heuristic search, game playing, deductive reasoning, reasoning under uncertainty, planning, learning, (natural) language understanding, and philosophical foundations.

The work in the course will consist of 5-6 homework assignments (about one every two weeks), a midterm exam, and a final exam. Your programs will be partially automatically graded, so they must be written to run on the instructional Unix machines. Two or three of the homework assignments will involve programming tasks that are to be done in Java. You may write your code on any computer you wish, but it is your responsibility to ensure it runs on the CS Dept's instructional Unix machines (located in Rooms 1350 and 1370, and running Red Hat Enterprise Linux).

Homeworks will count for 35% of the grade, the 'midterm' exam for 30%, and the final for 35%. Quality class participation will have an impact on borderline cases. The course will be graded on the conventional (A-F) system.


  • HW 2 - Ensembles and Searching for Solutions
    Due 11:55pm 10/13/16 (not accepted after 11:55pm 10/20/16)

  • HW 1 - Learning Decision Trees from Training Examples
    Due 11:55pm 9/27/16 (not accepted after 11:55pm 10/4/16)

  • HW 0 - Hand-in Practice and Parsing ML Datasets
    Due 11:55pm 9/13/16 (not accepted after 11:55pm 9/20/16)

  • Academic Misconduct

    All examinations, programming assignments, and written homeworks must be done individually. Cheating and plagiarism will be dealt with in accordance with University procedures (see the Academic Misconduct Guide for Students). Hence, for example, code for programming assignments must not be developed in groups, nor should code be shared. You are encouraged to discuss with your peers, the TA or the instructor ideas, approaches and techniques broadly, but not at a level of detail where specific implementation issues are described by anyone. If you have any questions on this, please ask the instructor before you act.

  • Late policy on HWs

    Reading Assignments

    Assigned September 20, 2016:
    Chapter 3 & Section 4.1 of Russell & Norvig (Skim Section 3.6 and rest of Chapter 4) plus Sections 5.1, 5.2, 5.3, 5,7, 5.8, & 5.9 of Russell & Norvig (skim rest of Chapter 5)

    Assigned September 8, 2016:
    Section 18.8.1 of Russell & Norvig. (You might also want to read this Wikpedia page and you might also want to check out the broader perspective of 'case-based reasoning' - the material on these Wikpedia pages will not be on the final, unless it was also covered in lecture or in Section 18.8.1.)

    Assigned September 6, 2016:
    Skim Chapters 1 & 2 and Read Sections 18.1-18.3 plus Appendices A & B of Russell & Norvig
    Skim Artificial Intelligence and Life in 2030
    Read Pedro Domingos' paper "A Few Useful Things to Know About Machine Learning" (you can access this paper for free if you are on a UW-Madison network; if you use DoIT's VPN I believe you can also access this from a non-UW network, such as a computer in your apartment).
    Read the Algorithm section of the Wikipedia page on Random Forests (I will typically call these 'decision forests', ie a set of decision trees).

    Lecture Notes

    Exam Schedule

    Previous Exams (PDF unless otherwise noted)

    Some General AI Articles and Sites

    This page was created by shavlik@cs.wisc.edu