CIS 410/510 Modeling Cognitive Agents
Spring, 2004

Syllabus 

Tuesdays and Thursdays, noon-1:20 PM
Location: 125 Chiles
CRN: 35417 (for 410), 35420 (for 510), Credits: 4
Web: http://www.cs.uoregon.edu/classes/04S/cis410agents/

Instructor

Anthony Hornof
Assistant Professor
356 Deschutes
hornof@cs.uoregon.edu
Office Hours: Tues and Thurs 2-3 PM, or by appointment

Course Overview

The course explores issues and techniques involved in building computer simulations of human-like agents. Students will create virtual entities with percepts, goals, and actions, and deposit them into a simulated three-dimensional environment where they will appear as human-like characters. Students will analyze the interactive behavior of multiple agents in the system, observe the emergent properties of the system, and directly interact with the agents by entering the virtual environment as characters that they control in real time. Students will use a commercial-grade UML (Unified Modeling Language) design tool in an innovative new context--to quickly sketch out agent behaviors which are automatically transformed into executable code that is linked to agents in a virtual world. Students will learn programming and design issues associated with building NPCs (nonplayer characters) in real-time, character-based computer games. The course is an advanced-topics course in artificial intelligence, exploring multi-agent systems, which are sets of processes in which various agents, or entities, interact with each other in a shared environment to compete for resources, or to work together to achieve a user's goal. Students will learn basic Lisp programming.

Prerequisites

The CIS 410 section of this course has a prerequisite of CIS 315. If you are enrolled in the CIS 410 section, you must have completed CIS 315 in a previous term with a grade of C- or better. Otherwise, you will not receive credit for this course. If you have questions, please see the instructor or your CIS advisor for help in planning your schedule.

Textbook

Required

Ferber, J. (1999). Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence. Harlow, England: Addison-Wesley.

Optional

Fowler, M. (2003). UML Distilled: 3rd Edition. Reading, Massachusetts: Addison-Wesley. (I am familiar with the 2nd edition of this book, but have not seen the third. I assume it is improved.)

Software

Required

Unreal Tournament. (1999). Epic Games. Windows version. It must be the original 1999 version. Note that "Unreal Tournament Game of the Year (GOTY)" (2000) and Unreal Tournament 2003 will not work.

You will also be required to download Franz Allegro Common Lisp and Rational Rose.

Final Exam

There will be a final exam in the time slot allocated on the UO Final Exam Schedule.

Class Participation

All students are expected to attend all lectures, presentations, and group meetings with the professor. Students are also expected to participate in class presentations, group meetings, and discussions. Your in-class participation may be supplemented by emailing me questions or comments, which I will try to incorporate into the next class. Please include "410" or "510" somewhere in the subject line of these emails. There will also be a few in-class presentations.

You are expected to schedule other events such as trips or job interviews to avoid conflicts with the exam dates. The only acceptable excuses for missing classes or exams are documented medical problems, documented personal emergencies, religious holidays (if cleared in advance), and computer science research-related meetings (if cleared in advance). An unexcused absence for an exam will result in a grade of zero on the exam. If you miss a class, it is your responsibility to figure out what you missed, and to obtain materials distributed in that class, from other students in the class.

Cell phones ringing in class are inappropriate, discourteous and disruptive. Please turn off your cell phones before class starts.

Email and Communication

Email is an excellent means of communication when used properly. This class will give you the opportunity to practice and improve your email skills. Email the instructors with your questions, concerns, and input regarding the course, but always practice good "netiquette". The UofO Computing Center (UOCC) provides netiquette guidelines. (On this web page, skip past the "Glossary of Network Terms" to get to the section entitled "Practicing Good 'Netiquette'".) Read and follow the guidelines, with one addition: If you must have a signature file at all, keep it to a bare minimum.

All course-related emails sent to the professor should contain "410" or "510" somewhere in the subject line. To make it clear who is the sender, please send all of the email from your cs.uoregon.edu account and make sure that your full name, not just your email address, appears in the From: header of your emails.

Announcements

Important course-related announcements will be distributed via an email mailing list entitled 410mod@cs.uoregon.edu. An effort will be made to add you to this group. If you are not receiving course-related email announcements, join this group by logging onto a CIS server and typing at the Unix prompt:
grpmod -ag 410mod <your login name>

You must read all messages sent to this email list, especially those from the instructor. Feel free to post brief and useful emails to the this list as well.

All course announcements will only be sent only to @cs.uoregon.edu email addresses. If you do not check for mail on your cs account regularly, you should forward your cs mail to the account that you do check regularly by following the UOCC's instructions on forwarding your email. If you do not have a cs account, please follow the instructions for getting a cs account.

Grading

There will be approximately five programming and modeling assignments (for roughly 50% of your total grade), five brief written assignments and in-class quizzes (20%), and a final exam (25%). Class participation will contribute 5% to your grade. These numbers may change as the course evolves.

A final project may be due during the final week of class, or at the time of the final exam.

Late projects will be accepted up to two calendar days past the due date, but penalized 10% per day for any fraction of a day late. Exceptions will only be considered if the request is submitted before the due date.

Any grading discrepancies (such as a miscounting of points on an assignment) must be resolved within a week after the assignments are returned.

Graduate Students Enrolled in 510

Three times during the term, graduate students enrolled in 510 will be assigned to read an article relating to the course material, and to write a brief response to the article. You will enjoy these articles.

Good Writing

Though software has taken center stage as the empowering technology, good writing remains a critical component of human communication. A modern skilled technology expert must be able to communicate his or her ideas clearly and concisely. Good writing occurs on three levels:

  1. Structure the paper so that the main ideas are clearly accessible. State the main point of the paper in the introduction. Start each paragraph with a topic sentence. Break the paper into sections and give each section a title. Summarize your major findings in a conclusion.
  2. Communicate individual ideas effectively. Be thorough but concise. The tone of your writing should be serious and direct, as if you were reporting to your boss at a real job. An informal "chatty" style is not appropriate. Every figure (graph, drawing, or screenshot) must be relevant, should have a caption that explains what it is and why it is important, and should be referred to in the main body of the text.
  3. All spelling and grammar must be standard and correct.

If you have any doubts about the quality of your writing, work with your project collaborators to critique each other's drafts. Also, take drafts to the drop-in writing lab at Academic Learning Services in the basement of the PLC, open Monday - Friday from 9:00am to 4:00pm.

Modern writing standards advocate the use of inclusive language, and you should follow this standard. For example, if you are referring to a single anonymous person, you should write "he or she," "the user," or "the programmer," but not just "he." Also, please refer to women as "women" and not "girls."

Diversity Welcome

The modern technology workplace is diverse, international, and intercultural. This is good. Different backgrounds and different perspectives help people working in groups to be more innovative. To the extent that this class reflects such a modern-day workplace, we will welcome and value these differences as an opportunity to increase our awareness of how to work better in groups, and how to build more useful computer systems.

Students with Disabilities

If you have a documented disability and anticipate needing accommodations in this course, please make arrangements to meet with me soon. Please request that the counselor for students with disabilities send a letter verifying your disability.

Academic Honesty

This course will include some assignments in which you must work alone, and some in which you can work with other students. If you ever have any doubts about whether you can give or receive assistance with an assignment, please ask. In all assignments, you should list all sources, including all people who assisted you in any way, on the assignment.

Misrepresenting someone else's work (including anything you find on the web) as your own work, or in any way contributing to such a misrepresentation, will be taken very seriously. If you cheat in this course, you are making a deliberate attempt to obtain a false credential and thus to defraud, mislead, and possibly endanger your future employers, coworkers, and customers. If you submit someone else's work as your own without indicating the source, you are engaged in academic dishonesty. If you knowingly or accidentally make your work available to another student and they submit your work as their own, you are equally at fault. If I suspect that you have engaged in academic dishonesty in this class, I will immediately report the incident to the Director of Student Judicial Affairs, the chair of the CIS Department, and proceed as directed in the University of Oregon Policy on Academic Dishonesty.

Acknowledgments

This course is derived from a course of the same name taught by Scott Douglass at Carnegie Mellon University in Spring, 2003. We thank Scott Douglass for sharing his course materials. This course utilizes the PLASTIC software system built by Scott Douglass, the GameBots software developed by Kaminka et al. (2002), Franz Allegro Common Lisp, and IBM's Rational Rose software. We thank all of these developers for permitting us to use their excellent software.

A.Hornof 4/6/04