The course is a basic introduction to artificial intelligence covering fundamental material in problem solving, heuristic search, knowledge representation, deduction, planning, uncertain reasoning, learning, and natural-language processing. The course will focus on understanding concepts and algorithms rather than programming, although there will be two projects involving some programming (in Java). See the course syllabus for further details.
Reading assignments from the text are listed on the syllabus. Be sure to keep up with the reading and study the corresponding chapters before the corresponding lecture. Class lectures will cover the slides available on the course homepage.
Prompt attendance at class is required. Attendance will be taken at the very beginning of every class period and a student's attendance record will count as part of the course grade. Leaving during the middle of class in unacceptable and will count as missing two class periods.
There will be four written assignments during the semester that involve working
out the solutions to a series of problems on paper. Many of the general types
of problems in the assignments will be representative of problems to appear
on the midterm and final. Sample previous assignments are available on the
course homepage, and their solutions are available on the department
file system in /u/mooney/cs343-code/old-solns/
There will be two class projects, one in each half of the course. These involve using existing AI software in Java to solve a realistic task. You will have to adapt the software for the current task, which will involve some Java programming. You will also run the programs on realistic data and measure the results. A major part of the assignment is to understand why you got the results you did, and write a short (one or two page) report on what you did and why, how it turned out, how you might improve the results, and generally what you learned from the assignment.
Programming assignments will be done on departmental UNIX workstations. If you do not have a permanent UNIX account, you can obtain one from the Undergraduate Office. If you are not a CS student, the Undergraduate Office can issue you a temporary account.
There will be a midterm exam the last class before spring break, March 12, that
will cover the material in the first half of the course. We will review for
the test the class before. Last year's midterm is available on the course
homepage, and its solution is available on the department
file system in /u/mooney/cs343-code/old-solns/
The final will be held on Saturday May 16, 2-5PM, in the normal classroom. It will be comprehensive test covering all material presented in the course; however, about 2/3 of the problems will involve material covered since the midterm. We will review for the final on the last class day.
Read the department's academic policy page. Students who demonstrably violate the Academic Honesty policy will receive a failing grade in the class. We will be using the Moss system to screen submited programs for plagiarism. Unfortunately, I have had to fail approximately 20 students in the past for copying on programming assignments. To avoid problems, limit any discussion of assignments with other students to clarification of the requirements or definitions of the problems, or to understanding the existing programs or general course material. I encourage you to interact with your fellow students in understanding the course materials and interpreting the requirements of the assignments but never discuss issues directly related to problem solutions.
24% Assignments 20% Projects 8% Attendance 22% Midterm 26% Final