General Information
Course Description:
[from the Cal Poly 2011-13 Catalog] "Programs and techniques that characterize artificial intelligence. Programming in a high level language. 3 lectures, 1 laboratory." Prerequisites: CSC 103 (Fundamentals of Computer Science III), with a grade of C- or better. Students should be familiar with programming in Java, and be able to work with elementary statements in propositional and predicate logic.Meeting Times and Places:
Lecture Section 1: Tue/Thu, 9:40 - 11:00 am, in 14-257
Lab Section 1: Tue/Thu, 12:10 - 1:30 pm in 14-257
Lecture Section 2: Tue/Thu, 1:40 - 3:00 pm, in 14-257
Lab Section 2: Tue/Thu, 3:10 - 4:30 pm in 14-257
Instructor: Dr. Franz J. Kurfess
Office hours: TBA in class
Office: 14-218, Email fkurfess@calpoly.edu
Goals and Objectives
The goal of this course is to understand important problems, challenges, concepts and techniques from the field of Artificial Intelligence. In order to achieve this, students learn how to analyze, design, and program intelligent agents of varying complexities. These agents gather information from their environment, convert it into a suitable internal representation (which may be augmented with information provided by the designer or other sources), analyze their internal knowledge to determine suitable actions, and finally execute some actions. More specifically, after successful completion of the course, students should- know classical examples of artificial intelligence
- be able to identify critical aspects of intelligence in humans and in computer-based systems
- know characteristics of programs and systems that can be considered "intelligent"
- be familiar with the main problem solving methods used in AI programs
- understand the use of heuristics in search problems and games
- know a variety of ways to represent, process and retrieve knowledge and information
- know the fundamentals of artificial intelligence programming techniques in a modern programming language
- consider ideas and issues associated with social technical, and ethical uses of systems that involve artificial intelligence
The following textbooks will be used in this course:
- Artificial Intelligence: A Modern Approach (Third Edition) by Stuart Russell and Peter Norvig; Prentice Hall, 2009. ISBN 978-0136042594.
It is available from the El Corral bookstore, which also has a customized edition that contains only the chapters relevant for our class here, for about half the price. You can also check http://isbn.nu/9780136042594 for prices of new and used copies at online bookstores like Amazon, Abebooks.com, Half.com and a few others. While it is better to have the newest edition of the textbook, much of the material covered in this class is also well presented in the older editions. There are also international editions available; I assume that the contents will be the same, but I have not checked this. - Introduction to Artificial Intelligence by Wolfgang Ertel, Springer, 2011; ISBN 978-0857292988. This is a shorter and significantly cheaper book, written by a former colleague of mine. The German original was translated into English by Nate Black, a Cal Poly CSC alum. Structure and content are similar to Russell and Norvig’s book, but the level of detail and amount of material are significantly reduced. For our class, however, it is sufficient.
- A comparison of AI text books by Stuart Russell and Peter Norvig.
- The lecture notes from MIT's course on Artificial Intelligence are available through their OpenCourseWare project. The topics covered are similar to ours, and some of the notes contain nice examples.
- The book Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010 by David Poole Alan Mackworth is available for free on the Web. It uses AILog, a logic-based language specifically intended for educational purposes.
- Another AI textbook with an agent-based perspective is Artificial Intelligence: A New Synthesis by Nils J. Nilsson, Morgan Kaufmann, 1998, ISBN 1-55860-467-7.
- The fourth edition of "Artificial Intelligence - Structures and Strategies for Problem Solving" by George F. Luger , Addison Wesley, 2008, ISBN 9780321545893 is based on a more traditional approach to AI, with less emphasis on intelligent agents.
- A more philosophically oriented treatment of the major AI topics is Paradigms of Artificial Intelligence -- A Methodological and Computational Analysis by Achim Hoffmann, Springer-Verlag, August 1998, ISBN 981-3083-97-2.
- Programming Collective Intelligence Building Smart Web 2.0 Applications. Toby Segaran, August 2007, ISBN 10: 0-596-52932-5 ISBN 13: 9780596529321 O'Reilly 400 pages, $39.99 US.
- This book is focused on Web applications like recommendation engines, and gives Python code samples for the underlying methods.
- AI for Game Developers. David M. Bourg, Glenn Seeman, O'Reilly July 2004, ISBN 0-596-00555-5, 400 pages, $39.95 US. The complete set of examples from this book is available at http://examples.oreilly.com/ai/.
- AI Game Programming Wisdom Edited by Steve Rabin. Charles River Media, ISBN 1-58450-077-8, Price $69.95, March 2002.
- AI Game Programming Wisdom Vol. 2 Edited by Steve Rabin. Charles River Media, ISBN 1-58450-289-4, $69.95, December 2003, Book/CD (Win/Linux) 732 pages.
- AI Game Development: Synthetic Creatures with Learning and Reactive Behaviors. Alex Champandard, New Riders, ISBN 1592730043; $49.99, Nov 2003.
The PowerPoint slides used in class, together with other auxiliary material, will be made available to students via a shared Dropbox directory.
Additional Material
Further material will be made available through handouts in class, and through pointers to relevant Web pages.
Grading Policy
The table shown gives an overview of the grading scheme I typically use for this class. I reserve the right to change the formula used. Please note that the project consists of several parts which will be evaluated separately. The project will be done in teams, and the performance of the team as a whole will be graded unless there is a clear disparity in the contribution of the individual team members. Should this be the case, I might ask for additional documentation like work sheets, email messages, or draft copies of documentation to evaluate individual contributions.
Assignments | 20% |
Project | 30% |
Labs | 20% |
Exams | 20% |
AI Nugget Presentation | 10% |
Academic Dishonesty and Cheating
The expectations below are based on Cal Poly’s Code of Student Conduct.
Academic dishonesty can be a serious offense. Any instances of cheating or plagiarism may be reported to the department chair and the Office of Student Rights & Responsibilities (OSRR). The Cal Poly rules and policies are listed in the Cal Poly catalog as well as at the OSRR web site, http://www.calpoly.edu/~osrr/index.html. If the rules are unclear or you are unsure of how they apply, ask the instructor beforehand.
We may use programs or services like Moss to compare assignments within a section, across all current sections of this class, and with old assignments. While such programs are not perfect, they detect suspicious similarities even after replacement of variable names and other identifiers. In general, the use of program libraries is acceptable, but not if they provide functionality whose implementation is the purpose of the lab or assignment. If you use libraries you need to indicate this in the documentation. Unless explicitly stated, assignments and labs are to be done individually.
Turning in work is presumed to be a claim of authorship unless explicitly stated otherwise.