University of Calgary
Rob Kremer
Course Description

CPSC 662/568: Agent Communication
(Formerly CPSC 601.68/599.68)
Fall 2012

Department of Computer Science

See a short clip of the final assignment.


Rob Kremer, ICT 748, email:;
Wed/Fri 15:30-16:45 at ENC 033
Office hours:
by appointment.
Course web site:
Official Course outline:
Mail list server:


Course Description

An examination of communication paradigms in multi-agent systems. A number of paradigms will be covered including simple protocols, BDI (Believe, Desire, Intension), and social commitments.

This version of the course will involve tasks for multiple robots (we plan to use iRobot Create robots -- similar to the Roomba vacuum cleaners). I have developed a CASA agent class, iRobotCreate, to get you started with controlling the robots, and a simulator, so that you can debug your control software at your leasure -- without having to be in the lab with the robots.


CPSC 433 or permission from the department.

Misuse of Computer Facilities, Plagiarism, and Cheating

Academic misconduct (cheating, plagiarism, or any other form) is a very serious offence that will be dealt with rigorously in all cases. A single offence may lead to disciplinary probation or suspension or expulsion. The Faculty of Science follows a zero tolerance policy regarding dishonesty. Please read the sections under the heading "Student Misconduct" in the Admission and Registration section of the University Calendar.

These serious offences will carry sanctions. Copying of assignments from anywhere without appropriate references, cheating on exams, or misusing facilities will result in punishment ranging from course failure to criminal prosecution. If you are unsure about these issues do not hesitate to consult with the course instructor.

This course requires group work, which dictates that students must work together to solve assignments. Generally individual contributions from people within the group do not need to be cited, but major contributions should be. Note that it is the responsibility of each member of the group to ensure that plagiarism (or other forms of cheating) does not occur in the work: the entire group will be assessed based on any incident of academic misconduct in group assignments.

Each member of a group is expected to do their fair share of the group work. A peer assessment mechanism will be used to monitor this. If group work is unequally distributed among group members, group members may achieve differing marks for the assessment. This may range from and A to a failing grade, with corresponding consequences for the overall course mark.

Reading list

Steele, G. L. (1990). Common Lisp the Language. Number ISBN 1-55558-041-6. Digital Press, 2nd edition edition. Available:

Kremer, R. (2012). Casa user manual (Draft). Technical report, University of Calgary, Calgary, Alberta, Canada. Available:

Additional resources:

Pitt, J. and Mamdani, A. 2000. Communication Protocols in Multi-agent Systems: A Development Method and Reference Architecture. In Issues in Agent Communication F. Dignum and M. Greaves, Eds. Lecture Notes In Computer Science, vol. 1916. Springer-Verlag, London, 160-177.

Foundation for Intelligent Physicl Agents. FIPA ACL Message Structure Specification. FIPA, Document number SC00061G, Document source FIPA TC Communication. Dec. 3, 2002. Available:

Foundation for Intelligent Physicl Agents. FIPA Communicative Act Library Specification. FIPA, Document number SC00037J, Document source FIPA TC Communication. Dec. 3, 2002. Available:

Flores, R.A. and Kremer, R.C. (2001). To Commit or not to Commit: Modelling Agent Conversations for Action. Computational Intelligence, Special Issue on Agent Communication Languages, B. Chaib-draa and F. Dignum (Eds.), Blackwell Publishers, Volume 18, Number 2. Available:

iRobot Corp. iRobot Create Owner's Guide. iRobot Corp. 2006. Available:

iRobot Corp. iRobot Create Open Interface. iRobot Corp. 2006. Available:

Kremer, R. & Flores, R. (2005) Using a Performative Subsumption Lattice to Support Commitment-based Conversations. Full paper in Proceedings of the Forth International Joint Conference on Autonomou Agents and MuliAgent Systems (AAMAS'2005), Utrecht, The Netherlands, July 25-29, 2005. ACM Press. Available:

<more to come>


The University policy on grading and related matters is described in the university calendar.

The course will have a Registrar's scheduled final examination and a midterm exam. These exams together constitute the exam component of the course and there is also an assignment component and a peer evaluation component. All three components have to be passed in order to pass the course, and both parts of the peer evaluation must be passed in order to pass that component. Even though the peer evaluation component has only a nominal mark associated with it, you may fail the entire course for failing to complete these tasks adequately.

The final grade will be calculated using the grade point equivalents of the individual grades achieved weighted by the percentages given later on this page. To get the final letter grade for the course, the weighted sum is converted back using the official University grade point equivalents. In order to deal with the grade A+ that unfortunately does not scale in the grade point equivalents, the following rule will apply: an A+ as final letter grade will be awarded to every student who has an A in both exams and in both components of the assignment component and in both components of the peer evaluation component.

The exam component

As already described, we follow the usual midterm-final-scheme for exams. The weighting of the grades you achieve in these two exams is as follows:

undergrad    grad
Midterm    20%   18%
Final test   10%  

Remember, you have to pass this component to pass the course. For example, this means that a D in the midterm and an F in the final is not sufficient!

The individual assignment component

For a detailed description of what you have to do, please refer to the links below. The following table describes the percentage with which the individual task grades will be weighted in the final grade for the course.


Individual assignment - ontology   

Individual assignment - messages/KB  

Individual assignment - policy



This is strickly individual. All work must be done on your own, although discussion with others is encouraged, of course. However, any ideas arrising from such discussions must be cited in your work.

The group assignment component

For a detailed description of what you have to do, please refer to the links below. The following table describes the percentage with which the individual task grades will be weighted in the final grade for the course.


Group assignment: Basic agent   

Group assignment: Multi agent interaction  


Please note that both grades above are achieved by your team (subject to differentials in individual contribution; see the peer evaluation component)!

These assignments are based on CASA. The CASA software, along with robot controller extensions is available as a JAR file (iRobotCreate.jar [no source] and iRobotCreate_src.jar [includes source]). See the CASA Javadoc for details. A very useful part to this documentation is the HowTo page for programming specific agent tasks.

Research Paper/presentation (grad only)

For a detailed description of what you have to do, please refer to the assignment page. The following table describes the percentage with which the individual task grades will be weighted in the final grade for the course.


grad only
Research paper proposal   
Research paper  
Research paper presentation  

So, the assignment component accounts for 35 percent of your mark. Please note that both grades above are achieved by your team!

The peer evaluation component

The peer evaluations are relatively simple to do compared with the other course components. You must submit a report to your TA and instructor (by email) containing a letter grade assessment of each (including yourself) of your group members' contributions to the current assignment together with a 1/3 page description of that person's contribution justifying your assessment. It is not acceptable to give everyone in your group an A or to give everyone in your group an F. A report that does not reflect the dynamics of the group will be considered a failure, which could cause you to fail the course. It is your responsibility to get to know your group members and know their contributions to the project.

The weighting in the final grade for the course is


Peer evaluation 1 (to be handed in just after the paper assignment)   

Peer evaluation 2 (to be handed in just after the implementation and demonstration assignment)  


So, the peer evaluation component accounts for only 2 percent of your mark, but you have to do both of them adequately in order to pass the course.

Why the peer evaluation? The peer evaluation is set up to prevent freeriding (a group member doing little or nothing and getting a good mark by taking advantage of the efforts of the rest of the group). It will be used as follows: The TA and instructor will use their own judgment and experience with the group as well as the input from the peer evaluations to assess a "delta mark", which will be applied to the group assignment. The delta mark will be a positive or negative letter-grade value between -4 and +1, which will be added to the group mark for each individual member.

Therefore, if you are the group leader, make a huge contribution to the project, your group thinks you can walk on water, and your group project is assessed as a "B", you may be assessed a delta mark of +1 -- your mark for the project will be "A". On the other hand, if you could had done better on the project, your delta mark may be -0.7, and you'd get a group mark of "C+". Furthermore, if you really didn't help much at all on the project, you'd get a delta mark of -4, you'd get a "F" for the project and you'd automatically fail the entire course. Don't let that happen. :)

Lecture Schedule (subject to change)

Tuesday 15:30-16:45

Introduction: Agents & Communication Paradigms.
CASA: notes.

Introduction to Lisp, resource: Steele, G. L. (1990). Common Lisp the Language.

Sep18/20 Ontology, resource: CASA's ontology, reading: CASA User Manual 5.

Ontology assignment (individual)

Agent Structure, reading: CASA User Manual 2.
Agent Types, reading: CASA User Manual 3.
Building a basic agent: Dr. Evil.

Agent activity

Messages; CASA Messages (1,2); Message Sending (1,2,3) .

Ontology assignment (individual) due
Oct02/04 Knowledge bases / beilief bases

Message/KB assignment (individual)

Robot interface: command language (See also the manual)


Robot controller agents and simulator

1st Robot asssignment (group)

User Interfaces; Option Panels and Persistence


Events; Social Commitments; Policies; Conversations.

The BDI Model; BDI Communication

Message/KB assignment (individual) due
Research paper proposals due (Grad only)

BDI logic; FIPA Performative Semantics

FIPA Performative Semantics(cont.); Discussion on Group Assignment 1 and the simulator; State pattern.
Nov30/01 Social Commitments & Implementing CASA Conversations in the Social Commitment Paradigm using Lisp
Policy assignment (individual)
2nd Robot assignment (group)
1st Robot assignment (group) due
Conversations: class exercise;
Discussion about group assignment 1 (Wall measuring)

1st Peer evaluation due

Nov06/18 Test preview
Midterm Test
Nov13/15 Reading Days - no lecture
Policy assignment (individual) due
Test review/return
Nov20/22 Static Protocols

Static protocols exercise

Nov27/29 TBA


Research presentations (Grad only)
Final Test
Dec11/13 (Lectures over)
Demos for 2nd Robot assignment (group) this week (time TBD); code due before Thurs PM
Research papers due (Grad only)

2nd Peer evaluation due (Saturday, Apr 19)

CPSC 662/568: Agent Communication
Department of Computer Science

Last updated 2012-11-20 14:51
Rob Kremer