The main topic of this course are technologies for implementing intelligent agents. Agents differ from conventional (object-oriented) software technology in one or more of the following 3 dimensions:

  1. autonomy: agents react themselves to observations of their environment without requiring explicit commands,
  2. proactiveness: agents recognize and react to changes in the environment which present opportunities,
  3. reactivity/embeddedness: agents' actions respect the real-time constraints imposed by the environment,

Beyond these basic characteristics of agent technology, agents are likely to become more intelligent and adapt themselves to their environment. In particular, rational agents have explicit goals and reasoning capabilities, thus giving them the ability for self-interested action.

Often, many agents are coupled in multi-agent systems, either as a distributed system or as a software engineering methodology for breaking up a complex task. Multi-agent systems use specific technologies for coordination, in particular communication languages and negotiation techniques.

The course builds on existing knowledge in Artificial Intelligence and introduces the different facets of agent technology by focussing on electronic commerce scenarios where these are most actively used today. It will introduce adaptativity and learning into this context. Finally, we will consider technologies for implementing heterogeneous agent systems with general communication capabilities.

Having successfully completed the course Artificial Intelligence is a prerequisite for this course. Students who have not taken this course are expected to put in extra effort to acquire missing knowledge.

The course is complemented by exercises. There will be several paper exercises, to be carried out in the classroom, but most exercises will be programming exercises. Students are expected to be proficient in Java programming.

Exercises will count towards 40% of the final grade in this course.