Syllabus for

Automated Reasoning

COSC 661

(MW 5:30-8:10, PH520)

Instructor: Matt Evett
Dept. Computer Science; room 512E Pray-Harrold
Tel: 734-487-1227; e-mail: mevett@emich.edu;
https://emunix.emich.edu/~evett/AutomatedReasoning (archival)
http://canvas.emich.edu (current)

Office Hours: WM 3:00-5:00
You may drop by at times other than office hours, but in that case I cannot guarantee that I'll be able to see you.  Appointments by e-mail are welcome!

Prerequisite: A class in artificial intelligence at the graduate or undergraduate level, e.g: COSC532, is the "official" prerequisite, but graduate standing in the department and senior-level programming experience will be sufficient. Please see me, Prof. Narayanan or Dr. Ikeji to have the paper work completed for you to take the course if you don't meet the "official" prerequisites.

Textbook: Stuart Russell and Peter Norvig, Artificial Intelligence, a Modern Approach, 3e, Pearson Education, 2010

Course Summary: Students successfully completing the course will have learned major methodologies and practices concerning automated (simulated) reasoning, and related subareas, including planning, dealing with uncertainty, and learning.  We will pay particular attention to those aspects of the field that are important in data mining, autonomous vehicles, and computer gaming.

  • The course consists of a mix of theory and programming assignments spread throughout the semester.  Programming projects will be completed in Java, C++, or any other language you can convince me is a good choice!
  • Assignments:

    This is an incomplete list. See Canvas for all assignments and due dates.

    Course Calendar:

    Due dates for projects are underlined . Exam dates are in bold. Be aware that the due dates here are tentative.  The Canvas course shell will state correct due dates. You are responsible for monitoring the Canvas for the latest deadlines.  In addition, programming assignments (particularly the later ones) may be altered to accomodate the interests of the class as the semester progresses.
     
    Date Text Projects due
    5/2 Formal Logic, Ch7,8  
    5/7 Ch8  
    5/9 NO CLASS. See online material
    5/14 Inference, Ch 9  
    5/16 Constraint Satisfaction, Ch 6 Proj #1
    5/21 Classical Planning  Ch10  
    5/23 Reactive Planning 11 Midterm Exam
    5/28 MEMORIAL DAY NO CLASS
    5/30 Knowledge Representation Ch 12
    6/4 Uncertainty Ch 13  Proj #2
    6/6 Probabilistic Reasoning Ch 14  
    6/11 Bayesian Networks Ch 14  
    6/13

    Ch 16 Decision Networks

     
    6/18 Readings on reasoning in real world  Project #3
    6/20, 5:30-7:00
    Final Exam

     

    Grading Policy:

    The final course grade will be a weighted average of the grades received in each of the following categories, as specified: Small projects & homeworks 10%, Programs 40%, Midterm exam 20%, Final exam 30%..
     

    Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', I will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'.

    Attendance Policy: We're all grown-ups; when and whether you attend class is up to you. (Though lots of research has demonstrated that class attendance is strongly related to better performance and grades!) That said, missed assignments and exams will only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day.

    Grading of Programs: Grading of programming assignments will reflect three factors, weighted as shown.

    1. (70%) Correctness -- does the program run correctly.
    2. (15%) Style -- does the code adhere to class documentation standards? Is the code indented properly? Are the variable names mneumonic? How well has the student followed the basic formatting characteristics for the language?
    3. (15%) Design -- is the program adequately decomposed (i.e., are the functions and procedures small enough to be comprehensible)? Are the class and structure definitions well chosen? How well has the student taken advantage of the language's capabilities?

    Announcements and the Web Page:

    Students should view the course web page regularly for announcements regarding programming assignments, readings, etc. I update course web pages frequently!

    Cheating policy:

    Students are required to attend to the policy on academic irregularity outlined in the EMU student handbook. In addition, collaboration among students in solving programming and homework assignments is forbidden. If I receive programs or homework assignments that are substantially equivalent, or which are not the original work of the student submitting the material, I will not hesitate to punish all involved parties to the fullest extent, up to and including assignment of a failing grade for the course, and referral to the Office of Judicial Student Services for possible punitive action at the University level, which may include expulsion from the University. In addition, the University and the computer science department maintain policies regarding proper behavior on its computer systems. Failure to adhere to these policies can result in loss of computer privileges, and possible legal action.