Owen Cliffe, Marina De Vos, Julian Padget Department of Computer Science, University of Bath, BATH, BA2 7AY, UK occ@cs.bath.ac.uk, mdv@cs.bath.ac.uk, jap@cs.bath.ac.uk
Edgar Casasola Escuela de Ciencias de la Computación e Informática Universidad de Costa Rica casasola@ecci.ucr.ac.cr
In this paper, we report on the evolution of the unit over those three years and how we see it further developing both as a unit taught in Bath but also as part of an international project in which we are currently involved.
Before going deeper into how MAS is taught at Bath, we start (Section 2) with a brief overview of this international project called @LIS-TechNET. We believe this to be important as participation in this project has certainly influenced not only our teaching but also that of the partners in the project. A good example is how our Bath unit is currently used by the Costa Rica partner in their agent course. More details and their experiences can be found in Section 7.
In Section 3, we describe the context in which we teach MAS, then we continue (Section 4) with our view on teaching MAS in this particular context. Before going into the details of the Bath unit we briefly highlight the changes (Section 5) this unit has gone through. In our unit overview (Section 6), we provide a unit description, our lecture plan, and information about directed reading, the lab sessions, the coursework and the exams we set. Reflective commentary on all of this from both us, tutors and the students is also provided. In Section 7 we report on how the Bath course has been successfully adapted by the University of Costa Rica for their Master's program in Computing. We end the paper with a brief summary of the teaching resources available (Sections 8) and some concluding observations both about the course development and its adaptation to a different educational framework (Section 9).
In this paper, whenever there is a need to distinguish between the two Bath lecturers (the British equivalent of the American term professor), we will do so using their initials: MDV and JAP.
The @LIS-TechNET project is creating a highly innovative teaching and experimentation environment spanning Europe and Latin America. The project includes members in Chile, Costa Rica, Italy, Mexico, Spain and the UK. The main aims are:
Last September (2004), the project organised a Latin-American Summer school on MAS in Costa Rica. The whole course, including objectives, lecture notes and extensive practical materials is available online at the above site. The content was largely derived from the teaching material of the partners who already had running MAS courses, including Bath. In return, this Summer course influenced the Bath unit significantly, as we will discuss later. Meanwhile, all the Bath material has been incorporated in the e-learning sites developed and hosted by the Instituto Politécno Nacional (Mexico D.F., Mexico), and by Universidad Tecnológico Metropolitana (UTEM, Santiago, Chile). The Mexican e-learning platform is currently class-tested by the Costa Rican partner. They have started their first multi-agent course in March 2005, with most material supplied by Bath (although some material is translated into Spanish for use in Costa Rica).
The main aims and objectives of this unit, as described in the unit specification (See Figure 1), are to teach the basic principles of agents, agency, institutions and agent software development.
``E-commerce and Agents'' is a single unit worth 6 (ECTS) credits. It consists of 12 two-hour lectures and 10 two-hour lab sessions, the remainder of the time being for coursework and private study. The unit has only summative assessment in the form of coursework and a 2-hour exam. Both components contribute equally to the students' final mark. Traditionally the exam consists of four questions from which answers to three questions count.
The unit prerequisites are quite basic, being our first year Java programming unit. This rather curious state is brought about by there being no undergraduate unit on artificial intelligence. Consequently, we are somewhat constrained about the understanding of knowledge representation and of learning techniques that we may assume. Indeed, any AI techniques required must be taught within the framework of the unit. The situation is scarcely better with respect to logic: students have normally seen first-order predicate logic at the beginning of the second year, but probably nothing since then. Again, an AI unit would significantly help in embedding that knowledge.
There is one final contextual factor that should be made clear before we go into more detail about the unit, namely the ability level of the audience, since this has obviously affected our choices. Bath focusses on engineering, humanities and science subjects with a strong reputation across the whole range of degrees offered. Entry to the undergraduate program in Computer Science is predicated on performance in the school leaving examinations, where we typically require the top grade in Mathematics and a top and a next to top grade in two other subjects. This corresponds approximately to the top 5%-10% of university entrants.
In terms of teaching MAS, this works out actually very nicely as we believe that a general MAS unit as ours should cover both theory and practice. Having both underpins our view that we should educate university computer science students to become scientists and not just programmers. We believe that over the last three years we have found a good balance between the two that is acceptable to both ourselves and the students attending the unit.
We both are strong believers that languages and tools should not be taught but experienced. For example, during the lectures we only briefly touch on Jade [Bellifemine et al., 1999] and Protégé [protege, WWW], but we provide hands-on exercises during the labs with exercise sheets and/or tutorials. Some of those tutorials were original designed especially for this unit, but are now used by others. A good example is the Jade tutorial written by Owen Cliffe, the teaching assistant on the course (http://www.cs.bath.ac.uk/~occ/agents_ecommerce/jade/). Furthermore, the coursework is currently set-up to cover most of the practical aspects of agency.
Our department's teaching strategy is to educate students to become critical, self-thinking people with respect for research. To achieve this, we set our students assessed directed reading and hold in-class discussions. We also include two lectures that focus on our respective research interests.
As for delivery of lectures, there could not be a better subject. It does not take much imagination to see the lecture room as an institution/multi-agent system with everybody in it as agents playing a certain role. Explaining the features and properties of MAS can then easily be linked to a familiar context which makes it easier for the students to interact or relate to it. The same is true for more theoretical lectures like game theory. To explain for example the concept of common knowledge, one can use rôle play in the muddy children problem (See the lecture slides for logic in multi-agent systems: http://docs.alis-technet.org/alis/wp3/CM30174/Teaching/logic-asp.pdf). The same is true if one wants to explain the prisoner's dilemma. Even some of the more difficult aspects of epistemic and modal logic can be explained using a simple card game.
In the three years that this unit has been taught, it has undergone some major changes. This is only natural - developing a new unit from scratch is not a straightforward task. We initially adopted the strategy of the easiest way forward. For our first year we decided to go for a more or less pre-existing unit and then adapt it in the following years to better suit students needs and our interests. After some research we choose to work with Michael Wooldridge's book ``An Introduction to Multiagent Systems'' [Wooldridge, 2002]. This book provides a nice coverage of the history of MAS and a good blend of theory and the more applied side of MAS. The only two things we needed to do, apart from getting acquainted with material that was not ours, was to write an appropriate coursework specification and to set the exam. Of the two, the exam was the easier to deal with. Since we intended to share the unit equally both in terms of teaching effort and in the division between theory and practice, we agreed that each of us would write two questions on the material we would be responsible for, making sure that all topics were more or less covered. It would then be up to the students to decide which side of MAS they liked or knew best, but they would be required to answer at least one question from each part. We observe that over these three years the majority of students have opted to answer the two more theoretical questions in preference to the more practical, but perhaps more open-ended questions. Specifically they have chosen game-theory and logic questions, where the nature of what is begin tested (the application of a procedure to solve a problem) is more readily predictable and outcomes are rather more black-and-white. In contrast, the more practically-oriented questions (negotiation, institutions, agent-oriented software engineering) have required enumeration of features, descriptions, application of methodologies, evaluations and thus are seen as riskier prospects.
The coursework during our first year was a different story. After some research, we decided that the Trading Agent Competition (http://www.sics.se/tac/) would be a suitable candidate. It turned out to be very successful. The performance of some of the agents was even (numerically) comparable with the carefully designed agents that entered the real competition. The feedback from students on this coursework has always been very positive. On the day of the marking competition students would come together to follow the competition on-line and comment on the score using the on-line chat facility. As a result of all this positive response, we have retained this coursework ever since. Indeed we are far from alone in finding TAC a good assessment tool - although Peter Stone [Stone, 2004] makes a good case for Robocup - since it is also used at Southampton and Essex amongst others.
Overall, the first year of ``E-commerce and Agents'' was very successful. The students' results were as projected and their comments were generally positive. However, not surprisingly, we felt a desire to personalise it: we had found ourselves disagreeing with some of the material in the slides that accompany the book (and the students appeared to have difficulty coping with the presentation of opposing viewpoints when we criticised slide content) and we wanted to incorporate more material closer to our research areas. Although we appreciate Wooldridge's book and transparencies, we feel that too much time is spent on material that is of largely historical value now--inevitably, this will continue until we see the second edition! So we decided to merge some of his lectures and use the time thus created to examine more current developments in MAS. For example, a lecture on institutions was introduced, the game theory lecture was expanded to cover the game theoretic issues that come with negotiations, and the lecture on logic was completely rewritten to better support our students.
The very positive feedback notwithstanding, we felt that the Trading Agent Competition was not giving students a complete multi-agent experience. For TAC they receive the complete framework in which their agent is going to operate. The only thing they need to do is provide their agent with the appropriate reasoning skills using Java. This gave them no measurable exposure to working with ontologies, communication and an agent development environment. To remedy this, we introduced a second piece of coursework. For this students are requested to implement a supply chain for which they were supplied with some basic components.
The changes we made in the second year and the familiarity with the material enhanced our teaching experience significantly. It allowed us to be more interactive with the students and to focus more on those areas that they perceived as difficult without worrying about whether all examinable material would be covered (in common with many UK universities, we have to set the text of unseen examinations by about half way through the semester). The comments we received from the students on the lectures were very positive, motivating us to continue personalising the unit. The two courseworks, on the other hand, were perceived as being too much work for their weighting in the unit.
Taking all the students' feedback on board we decided that something had to be done about the effort required for the coursework. However, since both courseworks deal with different aspects of agency, we felt that we could neither leave one of the two out nor integrate them into one project. So in order to accommodate the students, we agreed to lower the marking criteria for both courseworks and provide extra assistance in the lab sessions.
The @LIS-TechNET Summer school on Agents was conveniently placed just before the start of the preparations of our third semester of teaching ``E-commerce and Agents''. Although this Summer school was targeted at a post-graduate audience and was mainly designed to bring students up to speed with all the current tools, some valuable (in terms of the Bath unit) course material came out of this event.
Due to this Summer school, we rearranged the order of our lectures. While in the past, ontologies were only dealt with in the second half of the unit--because they were only required for the second coursework--they were moved significantly forward to follow the lecture on reasoning capabilities of single agents. Instead of talking about game theory first, we brought negotiation and auctions forward to allow the theory to be embedded into practice. We also introduced a new lecture on agent oriented software engineering.
Furthermore the lectures on both our research areas (i.e. institutions and logic for MAS) have been further developed.
A detailed description of the third iteration of ``E-commerce and Agents'' is given in the next section.
We will use this unit description as a marker throughout this section. In each part we will evaluate the content with respect to this description as a form of quality assurance mechanism.
As with just about any aspect of undergraduate curriculum design, an overriding objective is the longevity of the knowledge in the syllabus: principles that can be applied over and over are of much greater long term benefit than technology that is subject to rapid obsolescence. However, as we pointed out earlier, we are somewhat constrained over the depth with which we can treat many aspects due to the lack of any specific pre-requisite units. That does not mean that the unit cannot be taught entirely without reference to earlier material, for example: reasoning draws on basic logic; ontologies on data structures, class hierarchies, software engineering; game theory on discrete mathematics and logic; agent-oriented software engineering on software engineering; and institutions and logics on logic and specification.
The topics we have chosen to cover address what we see as the three core area of agent systems (from a pedagogical point of view):
The details of the two courseworks are given in Appendices A and B. From an academic point of view the two courseworks are pleasantly complementary and taken together cover the core aspects of agent systems:
We have already reported the students' satisfaction with the trading agent competition component--comments like ``it's much harder than any other coursework we've had, but it's also much more exciting''--but they have been considerably less happy with the supply chain problem. The difficulties are two-fold:
Marking the TAC coursework posed some problems: the TAC tournament model used in the annual tournaments (based on a series of knock-out rounds) is designed to create a ranking over the participating agents (focusing on the top-performing agents), without gauging relative levels of agents' performance. Our course required marks to be normalised in range of 1..100, this led us to design a marking system which fulfilled the following requirements:
This first requirement was particularly important as some agents used learning strategies which may have benefited from playing more games than other agents. The latter was added in response to the observation that the utility available to a given agent in a given game can be heavily dependant on the performance of other agents in that game, so agents with over-greedy strategies may radically decrease the total available utility for other agents, and agents who fail to participate--because of software errors or non-functioning strategies--increase the available utility for other agents. By evening out the number of times that a given pair of agents played in the same game we hoped to reduce the effects of this phenomenon.
For assessment, teams were asked to submit packages containing compiled versions of their agents in such a way that those agents could be automatically started and stopped for games they were due to play in by means of a script. During the competition all agents were run on the same server and were started and stopped for each game they participated in, this process differs slightly from the TAC model where agents are expected to remain running continuously throughout each stage of the competition and was instigated largely so that agents which crashed intermittently would not suffer beyond the context of a single game.
In the Bath-only 2004 competition, there were 17 teams1 approximately 250 games were run leading to each agent playing approximately 100 games each, final scores were calculated by eliminating agents' top 5 and bottom 5 scores, in an attempt to limit the effects of highly anomalous games, and then calculating the mean of the remaining scores. Standard deviation was also calculated.
In marking the competition we observed a correlation between an agent's mean score and its standard deviation, with higher scoring agents tending to have lower score variance than lower scoring agents (with a few exceptions for agents which performed consistently badly), in general this was attributable to the better scoring agents employing either less risky general strategies, or incorporating the scope for recovering from situations where plans were no longer satisfiable.
The directed reading is not intended to be comprehensive, but rather to fill in where the recommended textbook does not provide coverage or where there has been rapid development. Thus, the material falls into five groups:
As we observed in Section 5, the students have indicated that they felt a need for more support in the coursework, especially in respect of the second assignment of the supply chain in Jade. Consequently, we would underline the importance of providing a fixed period of at least two hours per week, with the presence of several demonstrators (in our case, this includes some who had previously graduated, having completed this course) to help with the coursework. A secondary benefit of this timetabled laboratory slot was that we could now schedule practical material (how to set up the TAC, use of Protégé, the excellent OWL tutorial developed by the Co-ode project (http://www.co-ode.org), set up and use of JADE) for demonstration in the laboratory session, rather than spending valuable lecture time on it, as we had been forced to in the past. (While this story may seem surprising to others, teaching facilities at Bath are subject to such demand that timetabling a supervised lab had not previously been feasible and we are also in the bizarre situation of having no department controlled labs for undergraduate computer science.)
We mentioned in the introduction that we have chosen to assess this unit with an equally weighted combination of coursework and examination. This reflects our belief in the importance, at least for our course content, of both practical and theoretical aspects of MAS and the need for the students to experience programming agents to be able to appreciate better the differences from non-agent programming. The common examination practice in the UK is for a written, unseen examination, lasting 2-3 hours, depending on the conventions of the university. Elsewhere in Europe, notably Germany and Italy, the convention is for oral examination. Not surprisingly, because there are two staff lecturing the course, we each prepare two questions based on aspects of the material we have each lectured. As the course has developed, the exam content has become less reliant on reproduction of bookwork and while there is still, intentionally, the opportunity to gain some marks in this way (essentially for the weaker students) the emphasis has shifted much more to assessing the application of knowledge. For example, this year, questions covered practical reasoning agents, institutions, agent-oriented software engineering, logic and game theory, as detailed in appendix C.
Consistent with these influences, the changes we forsee in the next few years demonstrate the rapid rise in the importance of service-oriented computing [Singh and Huhns, 2005] through the medium of web services and the complementary and pervasive role of semantic web technologies. This year already saw the introduction of a significant amount of both lectured and self-taught (laboratory) material on ontologies and ontology engineering. We expect this to expand next year to go into more detail about OWL, OWL-S, description logic and, more fundamentally, knowledge representation and reasoning as a whole. Likewise we expect to introduce new material in 2005-2006 on web services and service discovery, aiming to keep the technological content to a minimum--emphasising, where they exist, genuinely new ideas, but otherwise demonstrating the presentation of old concepts in new guises--while exploring the ways in which these developments enable intelligent and generic distributed software systems. A third direction for development is more detailed discussion of auctions and especially of combinatorial auctions, particularly now that this sub-field is emerging from a period of rapid evolution with many research results, into what may be a period of consolidation [Cramton et al., 2005].
So far our reflections have only addressed lecture content: equally important, perhaps more so, in an educational context is the role of practical exercises. At present, the classic Trading Agent Competition continues to satisfy a range of pedagogical aims, as well as receiving positive feedback from students. There are some practical constraints of using the SICS software as is, particularly, the system for scheduling competitions incorporated into the TAC server did not satisfy our marking requirements (with respect to normalising the number of times each agent played against each other agent in a given competition) and the use of the call-back programming interface in the Java game client rather than messaging, for interaction with the server led to some students having difficulty with the conceptual programming model. Neither of these problems were significant, the former being solved by generating competition games off-line and the latter having the potential to be solved in the future with modifications to the interface API. The supply chain problem (in Jade that is--see Appendices A and B--not the supply chain TAC) has proved more problematic, with many students reporting problems with both learning how to use a new (and relatively large) API and with using the (re-entrant, behaviour-based) programming model of the Jade system itself, this led to a degree of discrimination against students who lacked previous experience of programming either with similarly large APIs, or with re-entrant programming and was certainly at least a major differentiator in assessment, and we are re-thinking (for a second time) how this may be defined to result in a more normal distribution of marks and achievement.
Student response to the unit is currently very positive: they appreciate and enjoy the range of material, so that even if we are forced by the broad nature of the field to cherry-pick topics rather than present a coherent total picture, the method seems practical and acceptable for the students at our institution. The detail picture that emerges from the 2004-2005 cohort's evaluation, where 23 out of 39 students completed the survey, indicates a high degree of satisfaction with the relationship of content to learning outcomes and coverage of same, the currency of the material, the degree of student participation, the variety of teaching methods, the quality of the supporting material and simply how much they had learnt as a result. There was also a notable level of motivation to tackle additional background reading--although we would point out that the first coursework effectively made this essential.
Despite the problems, both practical and intellectual, with the second coursework, the satisfaction is still good in respect of quality and timeliness of coursework feedback. The worst part of the evaluation concerns the timetabling of the coursework, but this is a department issue rather than an individual course issue.
Written qualitative evaluation is relatively rare at Bath because such information is usually communicated by staff and students talking to one another, but that which was received was uniformly positive.
In this section we look back at the Summer School in Costa Rica and at the first iteration of a Masters level course in agents at UCR in the Spring of 2005. We start with some reflections on the Summer School and the experience of teaching in a different educational and cultural context. We then look at the semester-long course from the Latin American perspective, and how it was adapted for the UCR Masters course. Further developments of the course are planned for delivery in a number of Mexican and Chilean universities in the coming year.
Participants at the Summer School were mostly Costa Rican, with a few students from Mexico and from Chile. They came to the course with a good knowledge of Java and computer science in general, typically being fourth year students, or in some cases graduates. The relative strength of their prior education in computer science made building on that, to introduce Jade and ontologies relatively straightforward. Nevertheless feedback from the course, indicated that the lab sessions (a whole afternoon each day) and the graduated exercises were much appreciated. This last point had a particular impact on how it was decided to structure and deliver the UCR Masters course and is discussed further in section 7.3.
For obvious historical reasons, many institutions in Latin America are similar to and influenced by European and particularly by Spanish ones. Consequently, the degree structure and programme design has largely followed the classical (mainland) European conventions, with students typically taking 5 years for a first degree, with a high lecture load--and a high failure rate.
The Computer Science School of the University of Costa Rica has a four year undergraduate program in Computer Science. There is also a Masters Degree in Computing. The undergraduate program has courses on Artificial Intelligence (the fundamental one is required and covers the basics of Artificial Intelligence, while the others are elective and cover special topics such as Neural Networks and Expert Systems). Some related courses focus on the use of Agent Technology for Information Retrieval and Web Retrieval. The first course textbook is the well-known Russell and Norvig [Russell and Norvig, 2003].
The core of the undergraduate level comprises Computer Science courses, as described by the ACM computing curricula body of knowledge, with some third and fourth level courses strongly influenced by Software Engineering. Students receive a solid grounding in software development using at least one Object Oriented Language (C++, Java) and at least one class on Artificial Intelligence. The curriculum is similar to those at the other main institutions in Costa Rica (Instituto Tecnológico de Costa Rica and the Universidad Nacional) whence most of the Masters degree program students come.
The elective course on agent technology began in the first semester of 2005 (March 2005) as part of the Master's degree programme in Computing. Two key aspects were important for the implementation of the course: the use of the Aims and Learning Objectives already defined in Bath, and the use of the Wooldridge's book on Agents [Wooldridge, 2002].
The goals of the course are based on the learning objectives for the Bath course:
The course consists of 60 hours of lectures and class work. Students have one session of four hours (including breaks) per week. Each session comprises lectures, evaluation of laboratory results and group work activities. Students taking this unit are required to have high Java programming skills while a basic knowledge of artificial intelligence is recommended.
At the content level some variation from the Bath course was introduced to take account of the difference in the number of lecture hours and laboratories required at UCR, a different student profile and their background knowledge (more in-depth knowledge of programming and some basic artificial intelligence). Topics covered were: agent architectures, agent platforms (Jade, FIPA-OS, LEAP) standards (FIPA) communication and content languages (FIPA-ACL, KQML), agent-oriented software engineering virtual enterprise formation, institutions and norms, auctions B2C, B2B, case studies of practical applications. Thus we can observe a fairly high overlap with the Bath course, but also the influence of the higher software engineering content in the UCR program leading to a greater emphasis on stadndard, tools and technologies.
The laboratories aim to explore the practical application of recently developed languages, FIPA specifications and software tools. The main goals of the small projects and laboratories are:
To establish a level for the quality of the assessment, it is important to mention that all evaluations (short intermediate tests and the final examination) are based on the exam questions set by Bath in recent years. This is one way to reach a proper degree of quality assurance during the process of course adaptation. The main difference was the introduction of some practical projects, but the difference in credits and time assigned to the course explains this extra work.
The grade is based on a mark out of 100, apportioned as follows:
The short projects set this year were:
There is a further grade for the laboratory project which is identified as a separate course, where the students apply the material studied in the lecture-based agents course to solve a small case study selected by the students themselves. The purpose of this course is to reinforce the material from the small projects and foster some integration of learning.
Spring 2005 was the first time an agents course had been offered at UCR and its structure was influenced both by the Bath course and the first-hand experience gained from the @LIS-TechNET Summer School (also held for the first time) in the preceding September. Observing the students at the Summer School, it was apparent that the learning experience was significantly enhanced through designing, validating and programming their own solutions for a given problem. These practical issues are addressed at two levels: the basic understanding and know-how is achieved by the use of small homeworks or projects, while a laboratory session serves to combine ideas and tackle larger problems. For the laboratory work, students work in teams of four, then each teams develops a solution for a given problem and presents it in class to the other teams.
The experience obtained from the first three homeworks was interesting. For example: when the students presented their solution to the second assignment, all five groups presented different solutions, each of which included key elements of the solution that were absent from the others. The students mentioned it was useful to carry out a validation of the robustness of the ontology to support effective agent communication. What students have discovered from experience helps them to understand better the basic principles stated by Van Heijst, Schereiber and Wielinga [Van Heijst et al., 1997] for ontology design, so a link between the theory and practice could be established. All solutions were subsequently revised in the light of comments received in time for the next homework.
The main problems encountered on this the first teaching of the course were simply how to present the new material and in finding the right balance of theory and practice. It was quite expected that more time would need to be spent on reading and class preparation since it was the first time teaching it. Also a common problem of first time round was estimation of the duration of a lectures, because the depth of every subject was not clear a priori, nor how readily the students would grasp the material. One action arising from this is that the order of subjects will be changed next semester to synchronize with the development of a simple MAS using Jade. But to end on a positive note, it was clear that the students enjoyed the class and discussions raised were very productive.
We have described already how the material developed at Bath has been incorporated into the @LIS-TechNET project and indeed, how our involvement with the project and the preparation of the Summer School has acted as a spur for the development of the Bath course. Consequently, there are now two courses available on the @LIS-TechNET web-site, providing materials for presenters to adapt to their context:
We have outlined the genesis and development of a final year honours course in agents, as taught at the University of Bath, and also how it has been shaped through interaction with partners in Europe and Latin America. Feedback from students and our own critical evaluation suggests that after three years we have reached a fair balance of material and quality of presentation that enables student attainment of learning objectives with an appropriate differentiation of abilities through a range of assessments.
The process of adapting the material first developed in Bath for use in the Latin American context has not been very significant from the point of view of content: similar learning outcomes are achievable thanks to the widespread use and fairly detailed knowledge of object-oriented programming and more specifically of the Java programming language. The main adjustments have been to deal with practical and statutory requirements in different institutions and the language of presentation, but the intellectual content has been largely unchanged.
Owen Cliffe is a Ph.D. student in the Department of Computer Science at the University of Bath, his research focuses on the specification, validation and implementation of agent-oriented norm-governed organisations and electronic institutions. He has worked as a teaching assistant on a number of courses including tutoring and assisting in the design of the course described in this article. Before he started his Ph.D. he acquired several years experience in the software engineering industry including running a small software company.
Marina De Vos obtained her Phd. in Science option Computer Science in 2001 from the Vrije Universiteit Brussel (Free University of Brussels), Belgium with highest distinction. In April of that year she joined the computer science department of the University of Bath as a full-time lecturer. Her main research area is Answer Set Programming and its applications. She currently is vice-coordinator of the European working group on answer set programming. She has authored various papers in international reviewed conferences and journals. In 2004 she was moderator at the Clima workshop. In the summer of 2005 she hosted the bi-annual ASP workshop in Bath. She has been and is programme committee member and reviewer for a number of international conferences and journals.
At the moment, when teaching and administration allows, she is working on knowledge representation aspects of agents, planning and verification of multi-agent systems and other applications of answer set programming.
Julian Padget received his first degree from The University of Leeds (1981) and his PhD from the University of Bath (1984), where he has spent most of the time since, apart from sabbaticals at INRIA (Rocquencourt) and IIIA-CSIC (Barcelona) and summers at IBM (Yorktown Heights), HP Labs (Palo Alto), the University of Utah and the Rand Corporation (Santa Monica).
Past and latent interests include computer algebra, discrete event simulation and the design and implementation of Lisp systems. Current interests are broadly in (i) agent systems, specifically the specification, validation and generation of virtual institutions from normative descriptions, and (ii) the combination of mathematical knowledge management and semantic web services to ease access to mathematical software for use in e-Science.
He has edited several proceedings and authored over 70 publications in international journals, conferences and workshops.
Edgar Casasola graduated from the University of Costa Rica (bachelors) and received his Masters degree from the University of Kansas, U.S.A.
He has been teaching at the Computer Science School of the University of Costa Rica for 13 years, current courses being Object Oriented Programming I Object Oriented Programming II Information Retrieval and Advance Programming on Distributed Systems. He has also worked as a private consultant and instructor for software development companies in the area.
His main research interests are in the areas of Information Retrieval and Artificial Intelligence. This interests started while at the University of Kansas where he worked on the development of the Profusion Personal Assistant Agent developed as part of the Profusion Meta Search Engine Project, an agent-based information filtering system. He is currently in charge of work package 4 of the @LIS-TechNET project at the University of Costa Rica in which an Agent Technology Demonstrator for Tourism is being developed. Other current interests include the evaluation of Information Retrieval techniques for WWW knowledge discovery as part at the Cognitive Science Research Project at the Linguistics Research Institute (INIL) at the University of Costa Rica.
The main TAC-server on agentcities.cs.bath.ac.uk and a number of testing servers will always be available so that you can test your implementation.
The situation is a trading scenario where you must develop client and supplier agents so that a client may purchase a specified quantity of:
The oracle will supply configurations of Orders and Supplier information such that client requests will be satisfiable approximately 60% of the time.
The coursework is to be done individually.
The coursework will count for 25% of your final mark. The average amount of time each of you is intended to spend on this coursework is 15 hours.
All the marks will be allocated on the basis of the submitted documentation.
The supporting material for question 4 is omitted since it appears in Appendix B.