This subject covers all aspects of agent-oriented programming, from design to programming. Agent-oriented programming is an emerging paradigm aiming at providing a better approach to building complex software than those offered by standard programming paradigms. Under such paradigm, robotic or software agents are generally endowed with higher-level cognitive functions that involve reasoning, for example, about goals, perception, actions, the mental states of other agents, collaborative task execution, etc.   The high level design methodology covered is appropriate for a wide range of approaches to agent development. The subject covers identification of agent roles, agent data sources, role interactions, use cases, agent types and agent interaction diagrams. The detailed design and programming focusses on the “Belief, Desire, Intention” framework which is particularly suitable for intelligent agents and has a strong industry base in Melbourne. Programming is done using JACK, a commercial, Java based agent development environment and the International Agent Contest game is used as the course project. Generally offered in Semester 2.

This course introduces some Artificial Intelligence technologies and their application to games programming. Some of the techniques introduced include: steering behaviours, finite state machines, path finding,  machine learning techniques, intelligent agents and game theory. Students will use such tools and techniques to build a specified interactive game over the course of the semester, incorporating intelligent behaviours into the game. This course involves a lot of self learning and hence it suited to more advanced students.