<<

CIT. Journal of and , Vol. 27, No. 1, March 2019, 25–42 25 doi: 10.20532/cit.2019.1004464

Role of Agent in Teaching Distributed Systems and Agent Technologies

Costin Badica1, Milan Vidaković2, Sorin Ilie1, Mirjana Ivanović3 and Jovana Vidaković3

¹University of Craiova, Department of and Information Technology; Romania ²University of Novi Sad, Faculty of Technical Sciences, Department of Computing and Control; Serbia ³University of Novi Sad, Faculty of Sciences, Department of Mathematics and Informatics; Serbia

Computer science and information communication 1. Introduction technologies are among the fastest changing areas and it is essential to follow this world-wide trend also in Science (CS) and Information Com- education, constantly innovating and adapting curric- munication Technologies (ICT) curricula must ula. In this paper, we introduce the structure, meth- be under constant reevaluation and develop- odological aspects and educational experiences of ment as nowadays these two areas have been teaching two courses on distributed systems and agent rapidly changing. Therefore, it is significant to technologies at two different universities and coun- tries. The presentation is focused on the role of agent impose and suggest adequate approaches for re- middleware and multi-agent systems in teaching vari- vitalizing CS and ICT education and curricula. ous theoretical and practical aspects of these courses. Significant changes in developing modern soft- At the University of Craiova, the conclusion is that the ware have happened in the last two decades. We use of agent middleware in general and of JADE plat- are now in a world of computing, where basical- form in particular for teaching the course Distributed ly everything is distributed in the broader sense, Systems certainly brings many advantages, but also i.e. computing devices are interconnected, they has some limitations. At the University of Novi Sad, use heterogeneous and hardware plat- within the Agent Technologies course, agent middle- forms, and they exchange information via het- ware, initially developed as part of the research proj- erogeneous network communication channels. ect, has been successfully used for educational pur- Facing this reality, technologies of distributed poses, too. For both courses, we present the structure, computing are developed and diversified with the tools, teachers' and students' experiences and joint the spread of new platforms, architectures and useful conclusions and lessons learned with regard to languages for applications that could not have courses delivery. been imagined before, like ubiquitous and per- ACM CCS (2012) Classification: Computing method- vasive computing, mobile computing, sensor ologies → Artificial intelligence → Distributed artifi- networks, high-performance computing, cloud cial intelligence → Multi-agent systems computing, or the Internet of Things. Therefore, Applied computing → Education → Interactive rigorous design, integration, and harmonization learning environments of various topics of Distributed Systems into Computing methodologies → CS and ICT curricula, based on the most recent methodologies → Distributed technological developments, presents a qua- si-permanent challenge taking into account the Computer systems organization → Architectures → Distributed architectures → Client-server architec- various constraints of time, resources, effort, tures and expertise of educators and students. Motivation and discussion of the structure of a Keywords: distributed software technology, multi- core Distributed Systems and Agent Technol- agent middleware, educational experience ogies courses, as well as their integration into 26 . Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 27

CS and ICT curricula, are not an easy task and of the course, we also concluded that use of the where agents and agent technologies play es- able to consider issues of distribution and par- it would probably require more space than is in- developed system would obtain easier sential role. For their future jobs in ICT compa- allelism from the programming, as well as from available in this paper. maintenance of students practical and laborato- nies, students would benefit from learning and the conceptual design of systems point of view. ry activities. At the University of Craiova, based on our 6 understanding new and challenging environ- NetLogo was proposed as an excellent platform years experience in teaching a one-semester In this context, the paper brings to the readers ments and of such for teaching intelligent agents within Multi- mandatory course in Distributed Network Ap- some experiences gained in teaching two sim- as Ubiquitous and Pervasive Computing, Sen- Agent Systems course, in paper [6]. The authors plication Development (DNAD hereafter) to ilar courses at two universities from two coun- sor Networks, Internet of Things, High-Perfor- discussed a number of interesting features of the undergraduate CS and ICT curricula, in teach- tries, delivered by the teachers who have been mance Computing, Mobile Computing, Cloud platform and their educational value: expressive ing the various concepts of Distributed Systems, collaborating for a decade. Computing and even Collective Intelligence and rather simple with we focus on the role played by multi-agent dis- [1]. Therefore, rigorous design, integration, and a learning curve, rapid GUI creation and On one hand, we present our approach and con- harmonization of various topics of distributed tributed middleware. clusions on using agent middleware to support custom visualizations, significant features that systems and agent technologies into CS and the lectures, lab and project activities during the facilitate modeling of complex environments Our investigation is triggered by the following ICT curricula presents a permanent task requir- core question: DNAD course that was taught for 6 years to CS and agents, etc. In the first several years of their undergraduates at the University of Craiova, ing expertise adaptation of educators and stu- course delivery, the students enjoyed the course Q: Why and how can agent middleware play Romania. dents [2]. in spite of the fact that it was rather theoretically a relevant role in teaching topics of Distrib- Despite the fact that there are different courses oriented. Obviously, courses on distributed sys- uted Systems in CS and ICT curricula? On the other hand, we also elaborate on some tems and agent technologies require practical challenges and initial experiences in the de- on distributed systems and agent technologies Based on our research and educational expe- delivered at universities world-wide, there are aspects and development. It is one of livery of elective courses on agents and multi- the significant drawbacks of these authors' ap- riences, we do believe that agent middleware agent systems, to undergraduate CS curricula at not too many papers that report on education- is relevant for teaching several theoretical and al effects and students' motivation, results and proach. But they persistently continued to teach the University of Novi Sad during a time period similar topics in their CS studies and reported practical aspects of Distributed Systems and of 3 years. achievements. It is also worth noting that multi- Agent Technologies. We will provide argu- agent approaches are rather diverse, providing in [7] about new, rather specific experiences. In ments for this statement in the paper. Some common experiences in delivering these a wider perspective on meth- fact, they presented a series of modules within courses are identified and we will present our study program, that progressively address other The same core question Q inspired us at the ods, spanning various topics reaching applica- joint conclusions that could be useful for those tions, intelligent methods, new programming related topics necessary for their course. Final- University of Novi Sad to select particular agent teachers who are considering introducing top- paradigms and software technologies, possibly, ly, in the last year of study they deliver a course middleware for elective Agent Technologies ics/courses on distributed systems and agent on multi-agent systems and principles of robot- (AT hereafter) course and draw some useful technologies within CS and ICT curricula at but not necessarily, in connection with distrib- uted systems and technologies. ics. Within the course, they organized a Robot- educational and methodological conclusions. their universities. ics Challenge which gave students the opportu- At the University of Novi Sad, until recent- The paper is organized as follows. We start in There are some papers that present experiences nity to integrate gained knowledge and skills in ly, undergraduate CS and ICT curricula only in developing and using a variety of agent en- order to solve a real problem. According to the had one course in Artificial Intelligence (AI) Section 2 with a background and an overview of various sources for developing a Computer vironments. For example, [3] and [4] provide authors' report, this approach, which seems a where general AI topics were covered. Rarely an extensive overview of such environments, little bit demanding compared to our approach- such courses presented distributed systems and Science course focused on topics in Distribut- ed Systems and Multi-Agent Technology. In but there are only a few papers describing ef- es, was very well received by students. agent technology in more details. We realized fects and students'/teachers' experiences in de- that distributed systems and agent technologies Section 3, we follow with an overview of the Another educational approach based on NetLo- course on Distributed Network Applications livering distributed systems and agent-oriented go platform is presented in [8]. It was used in are sufficiently mature, and it was a challenge courses. to introduce such topics to undergraduate stud- Development. Section 4 brings an overview of elective AI course, fifth semester of the Bach- ies. Unfortunately, we faced some obstacles. Agent Technology course. In Section 5, educa- An interesting approach for revitalizing intro- elor of Computer Science. Significant part of First, there is a great discrepancy between our tional experiences from delivering both cours- ductory undergraduate CS curricula through this course was devoted to Autonomous Agents students' previous knowledge and ambitions. es are presented and discussed. They could be the integration of agent-based modeling and and Multi-Agent Systems. In fact, the main idea The majority of students lack motivation for useful for teachers and educational institutions multi-agent systems is presented in [5]. Authors presented in the paper was to extend a BDI (Be- studying and gaining a higher level of knowl- that plan to introduce similar courses in their decided to use their own system, i.e. MAgICS lief-Desire-Intention) in NetLogo based edge and skills in any course and they try to curricula. Last section brings some concluding (Multi-Agent Introduction to Computer Sci- on a specific case study and students' solutions. avoid demanding courses. On the other hand, remarks. ence) framework. They introduced a range of Students were given the ''possibility to choose a minority of students have shown to be high- rather standard topics (searching and sorting, either to complete a final exam to evaluate the ly motivated and prefer to be challenged with , networks and security), module Autonomous Agents and Multi-Agent new, interesting and innovative courses. We 2. Background but put a special focus on parallel, distribut- Systems, or to work on a course project using have also faced some general obstacles such ed, and stochastic methods. Teachers' primary NetLogo and BDI'' [8]. It is interesting to note as the lack of a choice of appropriate textbooks 2.1. Related Work teaching/learning goal was to enable students to that almost all students decided to follow the and teaching materials. Nevertheless, that this think in decentralized manner but also to un- practical work on projects. Authors specified course is elective, students' motivations to en- Rapid development of ICT has influenced im- derstand the trade-offs between centralized and the undergraduate students' research projects roll in it are very diverse. With the need of an portant trends oriented towards distributed, decentralized approaches. Additionally, rather from Computational Economics and the main appropriate software tool for the practical part pervasive networks and Internet of Things, advanced achievement was that students were task was to enhance the existing library in order 26 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 27

CS and ICT curricula, are not an easy task and of the course, we also concluded that use of the where agents and agent technologies play es- able to consider issues of distribution and par- it would probably require more space than is in-house developed system would obtain easier sential role. For their future jobs in ICT compa- allelism from the programming, as well as from available in this paper. maintenance of students practical and laborato- nies, students would benefit from learning and the conceptual design of systems point of view. ry activities. At the University of Craiova, based on our 6 understanding new and challenging environ- NetLogo was proposed as an excellent platform years experience in teaching a one-semester In this context, the paper brings to the readers ments and implementations of softwares such for teaching intelligent agents within Multi- mandatory course in Distributed Network Ap- some experiences gained in teaching two sim- as Ubiquitous and Pervasive Computing, Sen- Agent Systems course, in paper [6]. The authors plication Development (DNAD hereafter) to ilar courses at two universities from two coun- sor Networks, Internet of Things, High-Perfor- discussed a number of interesting features of the undergraduate CS and ICT curricula, in teach- tries, delivered by the teachers who have been mance Computing, Mobile Computing, Cloud platform and their educational value: expressive ing the various concepts of Distributed Systems, collaborating for a decade. Computing and even Collective Intelligence and rather simple programming language with we focus on the role played by multi-agent dis- [1]. Therefore, rigorous design, integration, and a small learning curve, rapid GUI creation and On one hand, we present our approach and con- harmonization of various topics of distributed tributed middleware. clusions on using agent middleware to support custom visualizations, significant features that systems and agent technologies into CS and the lectures, lab and project activities during the facilitate modeling of complex environments Our investigation is triggered by the following ICT curricula presents a permanent task requir- core question: DNAD course that was taught for 6 years to CS and agents, etc. In the first several years of their undergraduates at the University of Craiova, ing expertise adaptation of educators and stu- course delivery, the students enjoyed the course Q: Why and how can agent middleware play Romania. dents [2]. in spite of the fact that it was rather theoretically a relevant role in teaching topics of Distrib- Despite the fact that there are different courses oriented. Obviously, courses on distributed sys- uted Systems in CS and ICT curricula? On the other hand, we also elaborate on some tems and agent technologies require practical challenges and initial experiences in the de- on distributed systems and agent technologies Based on our research and educational expe- delivered at universities world-wide, there are aspects and program development. It is one of livery of elective courses on agents and multi- the significant drawbacks of these authors' ap- riences, we do believe that agent middleware agent systems, to undergraduate CS curricula at not too many papers that report on education- is relevant for teaching several theoretical and al effects and students' motivation, results and proach. But they persistently continued to teach the University of Novi Sad during a time period similar topics in their CS studies and reported practical aspects of Distributed Systems and of 3 years. achievements. It is also worth noting that multi- Agent Technologies. We will provide argu- agent approaches are rather diverse, providing in [7] about new, rather specific experiences. In ments for this statement in the paper. Some common experiences in delivering these a wider perspective on computer science meth- fact, they presented a series of modules within courses are identified and we will present our study program, that progressively address other The same core question Q inspired us at the ods, spanning various topics reaching applica- joint conclusions that could be useful for those tions, intelligent methods, new programming related topics necessary for their course. Final- University of Novi Sad to select particular agent teachers who are considering introducing top- paradigms and software technologies, possibly, ly, in the last year of study they deliver a course middleware for elective Agent Technologies ics/courses on distributed systems and agent on multi-agent systems and principles of robot- (AT hereafter) course and draw some useful technologies within CS and ICT curricula at but not necessarily, in connection with distrib- uted systems and technologies. ics. Within the course, they organized a Robot- educational and methodological conclusions. their universities. ics Challenge which gave students the opportu- At the University of Novi Sad, until recent- The paper is organized as follows. We start in There are some papers that present experiences nity to integrate gained knowledge and skills in ly, undergraduate CS and ICT curricula only in developing and using a variety of agent en- order to solve a real problem. According to the had one course in Artificial Intelligence (AI) Section 2 with a background and an overview of various sources for developing a Computer vironments. For example, [3] and [4] provide authors' report, this approach, which seems a where general AI topics were covered. Rarely an extensive overview of such environments, little bit demanding compared to our approach- such courses presented distributed systems and Science course focused on topics in Distribut- ed Systems and Multi-Agent Technology. In but there are only a few papers describing ef- es, was very well received by students. agent technology in more details. We realized fects and students'/teachers' experiences in de- that distributed systems and agent technologies Section 3, we follow with an overview of the Another educational approach based on NetLo- course on Distributed Network Applications livering distributed systems and agent-oriented go platform is presented in [8]. It was used in are sufficiently mature, and it was a challenge courses. to introduce such topics to undergraduate stud- Development. Section 4 brings an overview of elective AI course, fifth semester of the Bach- ies. Unfortunately, we faced some obstacles. Agent Technology course. In Section 5, educa- An interesting approach for revitalizing intro- elor of Computer Science. Significant part of First, there is a great discrepancy between our tional experiences from delivering both cours- ductory undergraduate CS curricula through this course was devoted to Autonomous Agents students' previous knowledge and ambitions. es are presented and discussed. They could be the integration of agent-based modeling and and Multi-Agent Systems. In fact, the main idea The majority of students lack motivation for useful for teachers and educational institutions multi-agent systems is presented in [5]. Authors presented in the paper was to extend a BDI (Be- studying and gaining a higher level of knowl- that plan to introduce similar courses in their decided to use their own system, i.e. MAgICS lief-Desire-Intention) library in NetLogo based edge and skills in any course and they try to curricula. Last section brings some concluding (Multi-Agent Introduction to Computer Sci- on a specific case study and students' solutions. avoid demanding courses. On the other hand, remarks. ence) framework. They introduced a range of Students were given the ''possibility to choose a minority of students have shown to be high- rather standard topics (searching and sorting, either to complete a final exam to evaluate the ly motivated and prefer to be challenged with machine learning, networks and security), module Autonomous Agents and Multi-Agent new, interesting and innovative courses. We 2. Background but put a special focus on parallel, distribut- Systems, or to work on a course project using have also faced some general obstacles such ed, and stochastic methods. Teachers' primary NetLogo and BDI'' [8]. It is interesting to note as the lack of a choice of appropriate textbooks 2.1. Related Work teaching/learning goal was to enable students to that almost all students decided to follow the and teaching materials. Nevertheless, that this think in decentralized manner but also to un- practical work on projects. Authors specified course is elective, students' motivations to en- Rapid development of ICT has influenced im- derstand the trade-offs between centralized and the undergraduate students' research projects roll in it are very diverse. With the need of an portant trends oriented towards distributed, decentralized approaches. Additionally, rather from Computational Economics and the main appropriate software tool for the practical part pervasive networks and Internet of Things, advanced achievement was that students were task was to enhance the existing library in order 28 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 29

to make students familiar with a more sophisti- gramming language environment, or both, and Moreover, CS scholars are providing textbooks Firstly, the course learning objectives were for- cated form of the BDI model in NetLogo. provides the core software artifacts needed for in Distributed Systems, like for example [13]. mulated in accordance with recommendations Extensive experiences in teaching several un- creating the skeleton of a multi-agent system. There are also some well-known introductory provided by CSBK on the topics that were con- dergraduate courses on distributed systems and A software package that provides the core run- textbooks on Agent Technologies [14]. Those sidered relevant for Distributed Systems, as agents and multi-agent frameworks at our two time functionalities for deploying and running textbooks, as well as CSBK, are valuable sourc- well as based on standard textbooks in Distrib- universities are presented in [2], [9]. We paid distributed multi-agent applications is tradi- es of knowledge and methodology for teaching uted Systems: attention to three key issues in our courses. tionally known as agent platform. Typical agent Distributed Systems and agent topics to CS and ICT undergraduates. Unfortunately, students ●● LO1: To introduce the principles and con- middleware provides both, an agent platform cepts of distributed software. The first aim was to support students' intuitive and an agent framework. usually avoid reading the books, while look- understanding of vital concepts of distributed ing for some compressed/digested versions of ●● LO2: To introduce the technologies systems and agent technologies. The second More than a hundred of agent platforms and teaching materials, so we also had to take care of distributed software with a focus on aim was the selection of appropriate teach- toolkits that differ in maturity, quality, stan- about that in delivering our courses. core middleware technologies based on ing material and we pointed out some criteria dards compliance, and complexity are reported Internet. useful for selecting and/or preparing adequate in the literature [10]. One of the most popular, CSBK provides comprehensive structuring of teaching material. The third aspect was oriented well-documented, FIPA1 compliant, and easy- CS knowledge into 18 knowledge areas – KA ●● LO3: To provide an opportunity to ob- towards specification of good motivational and to-program agent packages is JADE [11]. So that we had to take into account when prepar- tain practical experience in applying these inspiring examples and problems that students at the University of Craiova within our DNAD ing our courses. Each KA is decomposed into techniques for programming small-scale have to solve practically during lab classes, course, we decided to use JADE. a number of knowledge units – KU, while each distributed software applications. home-work and projects. KU is further divided into a number of topics Our intention within AT course at the Univer- with associated learning outcomes – LO. Each Secondly, the course prerequisites were estab- An important part of courses delivery is de- sity of Novi Sad was to prepare a smooth in- LO must have associated a certain level of mas- lished, taking into account the current structure voted to lessons learned and feedback from troduction in agent technology and multi-agent tery from the available set: familiarity, usage, of our Computer Science curricula. The stu- students in order to try to improve the courses systems (MASs) using, as much as possible, and assessment. dents must be familiar with theory and prac- from year to year. our previously developed teaching resources tice of Computer Programming (including Three CSBK KAs that are relevant for the de- Practical aspects of courses on distributed sys- and self-developed software tools for creation Object-Oriented Programming using the Java of MASs [2], [9]. The main advantage of our velopment of courses, including Distributed programming language), Operating Systems tems and agent technologies can be of great Systems and agent topics were recently updated importance for students and their future jobs approach is that we use in-house agent middle- and Computer Networks. The courses that di- ware developed within our research activities, to reflect the current developments in Comput- rectly benefit from DNAD are Electronic Com- in companies. So the decision which environ- ing and Information Technology industry: ment, platform, middleware to use is important for teaching as well. So we are able to offer merce and Application Design. for teachers and it can significantly influence thorough knowledge of our system to the stu- ●● Networking and Communication (NC) KA Thirdly, a course structure was defined, includ- students' motivation, learning curve, acquiring dents. Also, it is possible to easily make cor- was split, because of its growth and diver- ing lectures, labs, and project activities. Finally, practical skills and general satisfaction with rections and extend the system, because we do gence. A part of it was included in PBD we added topics on agent middleware that were courses' effects. not depend on external . Students (see below). aimed to support teaching of several conceptu- ●● Platform-Based Development (PBD) is a Following [10], agent systems are deployed performed different tasks with the system and al and practical aspects of Distributed Systems, used it to implement simple MAS, while during new KA, with its content mainly grown while trying to correctly fit agent middleware over specialized software infrastructures that from the NC KA. provide a basic set of functionalities for the programming and testing their solutions, they into the concepts and approaches of Distributed could also test our framework. ●● Parallel and Distributed Computing (PD) Systems. existence of a realistic multi-agent application. is a new KA that has acquired topics that Seen from the perspective of Distributed Sys- were previously spread in other KAs. The DNAD course is structured in two modules tems and Agent Technologies, such infrastruc- with separate grading: tures are placed at the middleware level. They 2.2. Computer Science Curricula define a software layer that Recommendations (i) Course module comprising lectures and 3. Distributed Network Application labs with 4 ECTS points; (i) assures platform (here understood as hard- ware + ) independence ACM and IEEE are continuously developing, Development (DNAD) Course (ii) Project module with 1 ECTS point. and revising, refining, and adapting recommen- Both modules last 14 weeks with lectures 2h/ dations to help academic educators with the 3.1. Overview of DNAD Course week, lab 2h/week and project 1h/week. (ii) provides a collection of software - design and further adaptation of CS and ICT alities and services, including: agent life- curricula by incorporating the most recent re- DNAD course uses a technology-centered prag- time management, agent communication sults of CS and ICT research and by addressing In developing Distributed Network Applica- matic approach to teach Distributed Systems. and message transport, agent naming and the new market requirements for such profes- tions Development (DNAD) course at the Uni- The course is focused on applications and pro- discovery, mobility, security, etc. sionals. The recommendations are available as versity of Craiova, we took into consideration gramming in the spirit of [15] and [16], rather An agent framework is a software infrastruc- Computer Science Body Knowledge – CSBK, the definition of course learning objectives and than on theory and algorithms, as for example ture that is available as software library, pro- the last version being issued in 2013 [12]. the availability of course prerequisites. The in [17]. Nevertheless, important concepts are DNAD course is scheduled in the 3rd year, 6th firstly introduced and then exemplified with the 1http://www.fipa.org/ semester of Computer Science curricula. help of technologies and frameworks. 28 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 29

to make students familiar with a more sophisti- gramming language environment, or both, and Moreover, CS scholars are providing textbooks Firstly, the course learning objectives were for- cated form of the BDI model in NetLogo. provides the core software artifacts needed for in Distributed Systems, like for example [13]. mulated in accordance with recommendations Extensive experiences in teaching several un- creating the skeleton of a multi-agent system. There are also some well-known introductory provided by CSBK on the topics that were con- dergraduate courses on distributed systems and A software package that provides the core run- textbooks on Agent Technologies [14]. Those sidered relevant for Distributed Systems, as agents and multi-agent frameworks at our two time functionalities for deploying and running textbooks, as well as CSBK, are valuable sourc- well as based on standard textbooks in Distrib- universities are presented in [2], [9]. We paid distributed multi-agent applications is tradi- es of knowledge and methodology for teaching uted Systems: attention to three key issues in our courses. tionally known as agent platform. Typical agent Distributed Systems and agent topics to CS and ICT undergraduates. Unfortunately, students ●● LO1: To introduce the principles and con- middleware provides both, an agent platform cepts of distributed software. The first aim was to support students' intuitive and an agent framework. usually avoid reading the books, while look- understanding of vital concepts of distributed ing for some compressed/digested versions of ●● LO2: To introduce the basic technologies systems and agent technologies. The second More than a hundred of agent platforms and teaching materials, so we also had to take care of distributed software with a focus on aim was the selection of appropriate teach- toolkits that differ in maturity, quality, stan- about that in delivering our courses. core middleware technologies based on ing material and we pointed out some criteria dards compliance, and complexity are reported Internet. useful for selecting and/or preparing adequate in the literature [10]. One of the most popular, CSBK provides comprehensive structuring of teaching material. The third aspect was oriented well-documented, FIPA1 compliant, and easy- CS knowledge into 18 knowledge areas – KA ●● LO3: To provide an opportunity to ob- towards specification of good motivational and to-program agent packages is JADE [11]. So that we had to take into account when prepar- tain practical experience in applying these inspiring examples and problems that students at the University of Craiova within our DNAD ing our courses. Each KA is decomposed into techniques for programming small-scale have to solve practically during lab classes, course, we decided to use JADE. a number of knowledge units – KU, while each distributed software applications. home-work and projects. KU is further divided into a number of topics Our intention within AT course at the Univer- with associated learning outcomes – LO. Each Secondly, the course prerequisites were estab- An important part of courses delivery is de- sity of Novi Sad was to prepare a smooth in- LO must have associated a certain level of mas- lished, taking into account the current structure voted to lessons learned and feedback from troduction in agent technology and multi-agent tery from the available set: familiarity, usage, of our Computer Science curricula. The stu- students in order to try to improve the courses systems (MASs) using, as much as possible, and assessment. dents must be familiar with theory and prac- from year to year. our previously developed teaching resources tice of Computer Programming (including Three CSBK KAs that are relevant for the de- Practical aspects of courses on distributed sys- and self-developed software tools for creation Object-Oriented Programming using the Java of MASs [2], [9]. The main advantage of our velopment of courses, including Distributed programming language), Operating Systems tems and agent technologies can be of great Systems and agent topics were recently updated importance for students and their future jobs approach is that we use in-house agent middle- and Computer Networks. The courses that di- ware developed within our research activities, to reflect the current developments in Comput- rectly benefit from DNAD are Electronic Com- in companies. So the decision which environ- ing and Information Technology industry: ment, platform, middleware to use is important for teaching as well. So we are able to offer merce and Web Application Design. for teachers and it can significantly influence thorough knowledge of our system to the stu- ●● Networking and Communication (NC) KA Thirdly, a course structure was defined, includ- students' motivation, learning curve, acquiring dents. Also, it is possible to easily make cor- was split, because of its growth and diver- ing lectures, labs, and project activities. Finally, practical skills and general satisfaction with rections and extend the system, because we do gence. A part of it was included in PBD we added topics on agent middleware that were courses' effects. not depend on external programmers. Students (see below). aimed to support teaching of several conceptu- ●● Platform-Based Development (PBD) is a Following [10], agent systems are deployed performed different tasks with the system and al and practical aspects of Distributed Systems, used it to implement simple MAS, while during new KA, with its content mainly grown while trying to correctly fit agent middleware over specialized software infrastructures that from the NC KA. provide a basic set of functionalities for the programming and testing their solutions, they into the concepts and approaches of Distributed could also test our framework. ●● Parallel and Distributed Computing (PD) Systems. existence of a realistic multi-agent application. is a new KA that has acquired topics that Seen from the perspective of Distributed Sys- were previously spread in other KAs. The DNAD course is structured in two modules tems and Agent Technologies, such infrastruc- with separate grading: tures are placed at the middleware level. They 2.2. Computer Science Curricula define a software layer that Recommendations (i) Course module comprising lectures and 3. Distributed Network Application labs with 4 ECTS points; (i) assures platform (here understood as hard- ware + operating system) independence ACM and IEEE are continuously developing, Development (DNAD) Course (ii) Project module with 1 ECTS point. and revising, refining, and adapting recommen- Both modules last 14 weeks with lectures 2h/ dations to help academic educators with the 3.1. Overview of DNAD Course week, lab 2h/week and project 1h/week. (ii) provides a collection of software function- design and further adaptation of CS and ICT alities and services, including: agent life- curricula by incorporating the most recent re- DNAD course uses a technology-centered prag- time management, agent communication sults of CS and ICT research and by addressing In developing Distributed Network Applica- matic approach to teach Distributed Systems. and message transport, agent naming and the new market requirements for such profes- tions Development (DNAD) course at the Uni- The course is focused on applications and pro- discovery, mobility, security, etc. sionals. The recommendations are available as versity of Craiova, we took into consideration gramming in the spirit of [15] and [16], rather An agent framework is a software infrastruc- Computer Science Body Knowledge – CSBK, the definition of course learning objectives and than on theory and algorithms, as for example ture that is available as software library, pro- the last version being issued in 2013 [12]. the availability of course prerequisites. The in [17]. Nevertheless, important concepts are DNAD course is scheduled in the 3rd year, 6th firstly introduced and then exemplified with the 1http://www.fipa.org/ semester of Computer Science curricula. help of technologies and frameworks. 30 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 31

Similar pragmatic approaches in teaching Dis- edge questions and 30% based on ''apply skills'' learning curve by providing a meaningful and dents chose to develop a Web-based interface tributed Systems applications to undergraduates exercises involving the design of a small-scale well-documented API that helps students to ac- to a JADE-based distributed multi-agent appli- were already used, like for example [18]. How- distributed software application. The lab grad- quire skills for developing JADE-based small- cation. ever, the special feature of our approach is the ing counts 40% of the final mark and it is deter- scale distributed software in due time and with Finally, it is worth mentioning that JADE can significant role that we assigned to distributed mined from the outcome of a set of lab assign- reasonable effort. also support the development of mobile com- agent middleware in teaching the concepts and ments. Their number depends on difficulty, and Secondly, using JADE as an example, we can puting applications on Android-based smart- practical applications of Distributed Systems. it is usually chosen between 3 and 5. During cover part of the topics included in DNAD the semester, as part of the lab activity, the stu- phones [22]. This can be very useful with regard There is no single textbook to cover the course course – both lectures and laboratories. In par- to the extension of DNAD course with topics content. Nevertheless, for our course, a useful dents are also exposed to a number of tutorials ticular, JADE is a good example of compo- that introduce the software packages and tools covering the Mobile Platforms KU. Moreover, starting reference is [13]. The course lectures nent-based distributed middleware platform, JADE can be also useful in the near future to comprise the following list of topics: required for carrying out their lab and project well supporting students' practical work. assignments. support lab and project activities involving the ●● Introduction to Distributed Systems: defi- The interaction model (one of the fundamental development of distributed mobile applications nition, classification and characteristics Grading of the DNAD project module is based models [13]) of a Distributed System actually with JADE agents running on Android-based on a project assignment and associated deliver- ●● Models of Distributed Systems: physical, corresponds to a distributed and it smartphones. ables: a project report and a software package. can be described in a disciplined way as a set of architectural, and fundamental models The grade is split as 20% for the intermediary Before concluding this section, we would like ●● Inter- communication in Distribut- communicating state-machines [17]. This mod- to mention that although JADE (and multi- report and 80% for the final report and software el can be naturally implemented using JADE ed Systems: TCP, UDP, group communi- deliverables. agent middleware in general) can support the cation agents with the help of finite-state machine be- teaching of Distributed Systems in multiple haviors, i.e. FSMBehaviour class [11]. ways, it is by far not the silver bullet. There ●● Core technologies for Web-based Distrib- 3.2. Role of Agent Middleware in DNAD are many other aspects related to concepts and uted Systems: HTML/CSS, XML, HTTP; Course JADE can be also used to introduce the ser- Web clients and servers; Servlets and vice-oriented architecture. JADE agents can ex- technologies of Distributed Systems that re- Apache/Tomcat Agent middleware can play (and actually pose services registered in a yellow pages direc- quire additional examples and tools to support tory – the Directory Facilitator agent. Services a good coverage of the subject. Some example ●● Object-based Distributed Systems and Re- played) an important role in teaching our DNAD can be named, searched in this directory, and topics that require different tools are Web tech- mote Method Invocation: Design of RMI, course. In order to support this statement, we then invoked using interaction protocols, thus nologies, RMI, P2P systems, , Programming Java RMI performed a thorough analysis of the JADE agent middleware – JADE [11] with respect to supporting one of the basic architectural pat- Ubiquitous and pervasive computing. Taking ●● P2P systems: Structured and unstructured terns of service-oriented computing. Services also into account that it is probably impossible networks the requirements set by the learning objectives, structure and topics of the DNAD course. provided by JADE agents can be encapsulated to find a single tool to cover all the topics, we ●● Agent-based Distributed Systems: FIPA into and exposed as Web Services [19], allow- can conclude that the correct approach, we also and JADE Firstly, JADE agent middleware supports all ing the integration of distributed multi-agent followed, is to carefully analyze the course cur- ●● Web Services: Concepts and standards; the course learning objectives. It supports LO1, applications into the Web environment, and en- ricula (lectures, labs, and project) and decide Axis2 as using JADE examples, we can explain many abling use of JADE as integration middleware where precisely agent middleware can serve as principles and concepts of Distributed Sys- DNAD course addresses several KUs that are of distributed heterogeneous applications. a relevant example, as well as a practical imple- tems, including: platform heterogeneity man- mentation tool. part of three KAs of CSBK, as follows (note agement, transport protocols, white and yellow Using JADE, we can also exemplify an elegant that two KUs are on our wish-list, as future pages (naming and directories), code mobility, model of object serialization based on Java work): fault tolerance (JADE supports a limited form Beans and Semantic Web technologies. Firstly, ●● KA: Networking and Communication of fault tolerance), and interaction protocols JADE provides an API for manipulating ontol- 4. Agent Technologies (AT) Course (NC): KU - NC/Networked Applications based on message exchange. Conceptually, ogies that supports packing and unpacking of following the classification of architectural complex objects when they are exchanged be- ●● KA: Platform-Based Development (PBD): tween agents via FIPA ACL messages. More- KU - PBD/Introduction; KU - PBD/Web models proposed in [13], JADE uses a soft- 4.1. Overview of the AT Course ware component-based model. This means that over, the specialized Ontology Bean Generator Platforms; KU - PBD/Mobile Platforms tool is available to facilitate the (on the wish-list as future work) JADE agents are actually software components At the University of Novi Sad, Faculty of Tech- (i.e. dynamically loadable objects enabling run- process of JADE ontologies [20]. nical Sciences, the main idea within the elective ●● KA: Parallel and Distributed Comput- time configuration) that support asynchronous One of the weaknesses of JADE, however, is course on Agent Technologies (AT) was to mo- ing (PD): KU - PD/Distributed Systems; message passing for agent communication in the integration with standard Web technolo- tivate better students to learn some new, mod- KU - PD/Cloud Computing (on the wish- the P2P style (although JADE itself cannot be gies. Although possible, the development of a ern and challenging technologies, but also to list as future work) characterized as a true P2P system). Moreover, Web-based application that integrates JADE give them opportunity to bridge the gap in the Grading of the DNAD course module is based JADE is standards' (i.e. FIPA) compliant. Part- on the server-side is not natural and it requires understanding of a particular area of distributed on final exam and lab assignments. The final ly, it also supports LO2, as JADE itself can be the use of additional software glue known as systems i.e. multi-agent systems as one among exam counts 60% of the final mark and com- described as a middleware platform. It also well JADE Gateway [21]. This facility was never- essential components of Smart Environments prises 30% based on a questionnaire of knowl- supports LO3 with the low cost of a smooth theless useful for project activities, where stu- and Computational Collective Intelligence ar- 30 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 31

Similar pragmatic approaches in teaching Dis- edge questions and 30% based on ''apply skills'' learning curve by providing a meaningful and dents chose to develop a Web-based interface tributed Systems applications to undergraduates exercises involving the design of a small-scale well-documented API that helps students to ac- to a JADE-based distributed multi-agent appli- were already used, like for example [18]. How- distributed software application. The lab grad- quire skills for developing JADE-based small- cation. ever, the special feature of our approach is the ing counts 40% of the final mark and it is deter- scale distributed software in due time and with Finally, it is worth mentioning that JADE can significant role that we assigned to distributed mined from the outcome of a set of lab assign- reasonable effort. also support the development of mobile com- agent middleware in teaching the concepts and ments. Their number depends on difficulty, and Secondly, using JADE as an example, we can puting applications on Android-based smart- practical applications of Distributed Systems. it is usually chosen between 3 and 5. During cover part of the topics included in DNAD the semester, as part of the lab activity, the stu- phones [22]. This can be very useful with regard There is no single textbook to cover the course course – both lectures and laboratories. In par- to the extension of DNAD course with topics content. Nevertheless, for our course, a useful dents are also exposed to a number of tutorials ticular, JADE is a good example of compo- that introduce the software packages and tools covering the Mobile Platforms KU. Moreover, starting reference is [13]. The course lectures nent-based distributed middleware platform, JADE can be also useful in the near future to comprise the following list of topics: required for carrying out their lab and project well supporting students' practical work. assignments. support lab and project activities involving the ●● Introduction to Distributed Systems: defi- The interaction model (one of the fundamental development of distributed mobile applications nition, classification and characteristics Grading of the DNAD project module is based models [13]) of a Distributed System actually with JADE agents running on Android-based on a project assignment and associated deliver- ●● Models of Distributed Systems: physical, corresponds to a distributed algorithm and it smartphones. ables: a project report and a software package. can be described in a disciplined way as a set of architectural, and fundamental models The grade is split as 20% for the intermediary Before concluding this section, we would like ●● Inter-process communication in Distribut- communicating state-machines [17]. This mod- to mention that although JADE (and multi- report and 80% for the final report and software el can be naturally implemented using JADE ed Systems: TCP, UDP, group communi- deliverables. agent middleware in general) can support the cation agents with the help of finite-state machine be- teaching of Distributed Systems in multiple haviors, i.e. FSMBehaviour class [11]. ways, it is by far not the silver bullet. There ●● Core technologies for Web-based Distrib- 3.2. Role of Agent Middleware in DNAD are many other aspects related to concepts and uted Systems: HTML/CSS, XML, HTTP; Course JADE can be also used to introduce the ser- Web clients and servers; Servlets and vice-oriented architecture. JADE agents can ex- technologies of Distributed Systems that re- Apache/Tomcat Agent middleware can play (and actually pose services registered in a yellow pages direc- quire additional examples and tools to support tory – the Directory Facilitator agent. Services a good coverage of the subject. Some example ●● Object-based Distributed Systems and Re- played) an important role in teaching our DNAD can be named, searched in this directory, and topics that require different tools are Web tech- mote Method Invocation: Design of RMI, course. In order to support this statement, we then invoked using interaction protocols, thus nologies, RMI, P2P systems, Cloud computing, Programming Java RMI performed a thorough analysis of the JADE agent middleware – JADE [11] with respect to supporting one of the basic architectural pat- Ubiquitous and pervasive computing. Taking ●● P2P systems: Structured and unstructured terns of service-oriented computing. Services also into account that it is probably impossible overlay networks the requirements set by the learning objectives, structure and topics of the DNAD course. provided by JADE agents can be encapsulated to find a single tool to cover all the topics, we ●● Agent-based Distributed Systems: FIPA into and exposed as Web Services [19], allow- can conclude that the correct approach, we also and JADE Firstly, JADE agent middleware supports all ing the integration of distributed multi-agent followed, is to carefully analyze the course cur- ●● Web Services: Concepts and standards; the course learning objectives. It supports LO1, applications into the Web environment, and en- ricula (lectures, labs, and project) and decide Axis2 as using JADE examples, we can explain many abling use of JADE as integration middleware where precisely agent middleware can serve as principles and concepts of Distributed Sys- DNAD course addresses several KUs that are of distributed heterogeneous applications. a relevant example, as well as a practical imple- tems, including: platform heterogeneity man- mentation tool. part of three KAs of CSBK, as follows (note agement, transport protocols, white and yellow Using JADE, we can also exemplify an elegant that two KUs are on our wish-list, as future pages (naming and directories), code mobility, model of object serialization based on Java work): fault tolerance (JADE supports a limited form Beans and Semantic Web technologies. Firstly, ●● KA: Networking and Communication of fault tolerance), and interaction protocols JADE provides an API for manipulating ontol- 4. Agent Technologies (AT) Course (NC): KU - NC/Networked Applications based on message exchange. Conceptually, ogies that supports packing and unpacking of following the classification of architectural complex objects when they are exchanged be- ●● KA: Platform-Based Development (PBD): tween agents via FIPA ACL messages. More- KU - PBD/Introduction; KU - PBD/Web models proposed in [13], JADE uses a soft- 4.1. Overview of the AT Course ware component-based model. This means that over, the specialized Ontology Bean Generator Platforms; KU - PBD/Mobile Platforms tool is available to facilitate the engineering (on the wish-list as future work) JADE agents are actually software components At the University of Novi Sad, Faculty of Tech- (i.e. dynamically loadable objects enabling run- process of JADE ontologies [20]. nical Sciences, the main idea within the elective ●● KA: Parallel and Distributed Comput- time configuration) that support asynchronous One of the weaknesses of JADE, however, is course on Agent Technologies (AT) was to mo- ing (PD): KU - PD/Distributed Systems; message passing for agent communication in the integration with standard Web technolo- tivate better students to learn some new, mod- KU - PD/Cloud Computing (on the wish- the P2P style (although JADE itself cannot be gies. Although possible, the development of a ern and challenging technologies, but also to list as future work) characterized as a true P2P system). Moreover, Web-based application that integrates JADE give them opportunity to bridge the gap in the Grading of the DNAD course module is based JADE is standards' (i.e. FIPA) compliant. Part- on the server-side is not natural and it requires understanding of a particular area of distributed on final exam and lab assignments. The final ly, it also supports LO2, as JADE itself can be the use of additional software glue known as systems i.e. multi-agent systems as one among exam counts 60% of the final mark and com- described as a middleware platform. It also well JADE Gateway [21]. This facility was never- essential components of Smart Environments prises 30% based on a questionnaire of knowl- supports LO3 with the low cost of a smooth theless useful for project activities, where stu- and Computational Collective Intelligence ar- 32 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 33

eas. The course on AT is scheduled in 4th year essential knowledge of characteristic AI topics, 3. 40% is based on the evaluation of quality agents. Server-side agents are supported by the 8th semester and is based on multi-agent mid- including planning, knowledge-based systems, of project completed as part of homework XJAF component of the Siebog framework. dleware that has been developing at our Univer- fuzzy rule-based systems, genetic algorithms, activities. Agents developed in Siebog are load-balanced and machine learning. As they are 4th year stu- sity during the last decade [9]. During the course, students are also introduced and can be executed in the distributed, clustered dents, we expect that they: Firstly, the course learning objectives also arose to several tutorials of necessary frameworks, li- environment, safely transferred to another node as a consequence of recommendations provided (i) are familiar with and skilled in program- braries, and application servers, to be able to if their node in the cluster fails [9], [23]. by CSBK and were formulated in accordance ming and using the Java and JavaScript cope with project activities that require imple- Client-side agents (written in JavaScript) are with some of those relevant for Distributed mentation of small-scale distributed agent mid- programming languages, supported by Radigost component and can Systems and Agent technologies. AT course ad- dleware. migrate to the server-side if necessary. Being dresses several KUs that are part of three KAs (ii) have adequate knowledge in the areas of Since 2014/2015 academic year, between 12 implemented as JavaScript objects and loaded of CSBK, as follows: operating systems and computer networks. and 29 students have been selecting this elec- within the web page, they can execute in a wide ●● KA: Networking and Communication With such previously adopted knowledge, the tive course every year. range of devices, such as desktops, laptops, (NC): KU - NC/Networked Applications course on AT is not too demanding and is val- tablets, smartphones, smart TVs, etc. Since the ued by 4 ECTS points. state of a client-side agent can be destroyed ●● KA: Platform-Based Development (PBD): 4.2. Role of the In-house Developed Agent KU - PBD/Introduction; KU - PBD/Web when the page is left (or the browser is closed), The structure of the course is prepared in a Middleware in AT Course Platforms; it was necessary to develop a way of persisting stepwise manner. The course encompasses the state of an agent to the server, so it could ●● KA: Parallel and Distributed Computing regular lectures about theoretical aspects, lab Similarly, as within DNAD course at the Uni- continue with the execution when the page is (PD): KU - Distributed Systems. exercises, where students use middleware for versity of Craiova, we concluded that success- reloaded. Client-side agents are also able to ful delivering of a highly practically oriented AT As we could not find appropriate textbook for solving smaller lab assignments distributed communicate with both client and server-side over the semester and supervised by teaching course, requires appropriate agent middleware. agents. our approach to AT course, we prepared the We have been considering several possibilities, teaching materials in the following way. We assistant. In the last part of the course, students have to implement a slightly complex problem including a thorough analysis of the JADE agent started with selecting some topics of textbooks middleware functionalities. Our motivation and in Agent technologies, but predominantly used (i.e. the design of a small-scale distributed 5. Educational Experiences agent middleware) by themselves. The course intention was to use agent middleware that will our own experience in the field, as well as con- satisfy, as much as possible, AT course learning temporary freely available papers published in lasts 14 weeks, with 3 hours/week for theoret- In this section, we will present experiences in ical lectures and 3 hours/week for laborato- objectives with the low cost of a smooth learn- the past 15 years. Accordingly, learning objec- ing curve. We also thought that it is important delivering these two courses and gained with tives were formulated: ry work. During theoretical classes, students teaching them for several years at our universi- learn fundamentals of the agent technology, to provide a meaningful and well-documented ●● LO1: Present essential concept of intel- software that helps students to acquire skills ties. Numerous positive experiences are gained organization of agent code, agent lifecycle, by teachers and students as well, which proves ligent agents, different types of agents, FIPA protocols and FIPA ACL. They expand for developing distributed solutions in due time communication protocols, and supporting and with reasonable effort. that such courses should be a regular part of their technical knowledge with all necessary study programs in informatics and for their operation. skills for the agent middleware development, Therefore, we finally decided to use, for all science. ●● LO2: Explain essential differences be- like: Java EE, aspect-oriented programming, course activities, an in-house implemented very tween single agent and multi-agent sys- and advanced JavaScript. Laboratory tasks are high-quality and robust agent development tems and crucial facts about agent lifecycle closely related to the topics presented during framework i.e. the Siebog agent middleware 5.1. Educational Experiences with DNAD management, communication, and interac- theoretical classes. For lab exercises, students [9]. Siebog integrated two (see Figure 1), also Course tion. are divided into small teams (3 or 4 members) in-house, developed, components: XJAF and with the primary task to create agents capable Radigost, to support server-side and client-side Experiences with teaching the DNAD course ●● LO3: Discuss possible applications of of communicating with several different types have been gained during the academic years be- MASs and emphasize advantages of the of agents on the same computer, to employ tween 2009–2015. During the course lectures, agent-based approach for solving complex FIPA communication protocols, and finally to we followed the course topics outlined in Sec- engineering problems. Also, provide the perform a communication between multiple tion 3. They included a chapter on agent mid- opportunity to obtain practical experience agents on several computers. Students are giv- dleware covering FIPA and JADE. Moreover, in applying gained knowledge to solve en several examples of inter-agent communi- agent middleware examples were often used to slightly complex problems, preferably in cation based on the FIPA Protocols. discuss concepts of Distributed Systems. On the AI realm. The final grade is composed of three compo- the other hand, we experimented with different Secondly, the course prerequisites by some nents: approaches and assignments in each year for other courses at our study program, more or the lab and project work in order to better adapt less related to AI, like "Basic Artificial Intelli- 1. 30% is based on a questionnaire for assess- to the special needs of our students, so the fol- gence Techniques" and "Business Intelligence". ing gained theoretical knowledge; lowing presentation is more focused on those Through mentioned courses, students gained 2. 30% is based on lab achievements and Figure 1. Siebog Architecture. practical aspects of the course. 32 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 33

eas. The course on AT is scheduled in 4th year essential knowledge of characteristic AI topics, 3. 40% is based on the evaluation of quality agents. Server-side agents are supported by the 8th semester and is based on multi-agent mid- including planning, knowledge-based systems, of project completed as part of homework XJAF component of the Siebog framework. dleware that has been developing at our Univer- fuzzy rule-based systems, genetic algorithms, activities. Agents developed in Siebog are load-balanced and machine learning. As they are 4th year stu- sity during the last decade [9]. During the course, students are also introduced and can be executed in the distributed, clustered dents, we expect that they: Firstly, the course learning objectives also arose to several tutorials of necessary frameworks, li- environment, safely transferred to another node as a consequence of recommendations provided (i) are familiar with and skilled in program- braries, and application servers, to be able to if their node in the cluster fails [9], [23]. by CSBK and were formulated in accordance ming and using the Java and JavaScript cope with project activities that require imple- Client-side agents (written in JavaScript) are with some of those relevant for Distributed mentation of small-scale distributed agent mid- programming languages, supported by Radigost component and can Systems and Agent technologies. AT course ad- dleware. migrate to the server-side if necessary. Being dresses several KUs that are part of three KAs (ii) have adequate knowledge in the areas of Since 2014/2015 academic year, between 12 implemented as JavaScript objects and loaded of CSBK, as follows: operating systems and computer networks. and 29 students have been selecting this elec- within the web page, they can execute in a wide ●● KA: Networking and Communication With such previously adopted knowledge, the tive course every year. range of devices, such as desktops, laptops, (NC): KU - NC/Networked Applications course on AT is not too demanding and is val- tablets, smartphones, smart TVs, etc. Since the ued by 4 ECTS points. state of a client-side agent can be destroyed ●● KA: Platform-Based Development (PBD): 4.2. Role of the In-house Developed Agent KU - PBD/Introduction; KU - PBD/Web when the page is left (or the browser is closed), The structure of the course is prepared in a Middleware in AT Course Platforms; it was necessary to develop a way of persisting stepwise manner. The course encompasses the state of an agent to the server, so it could ●● KA: Parallel and Distributed Computing regular lectures about theoretical aspects, lab Similarly, as within DNAD course at the Uni- continue with the execution when the page is (PD): KU - Distributed Systems. exercises, where students use middleware for versity of Craiova, we concluded that success- reloaded. Client-side agents are also able to ful delivering of a highly practically oriented AT As we could not find appropriate textbook for solving smaller lab assignments distributed communicate with both client and server-side over the semester and supervised by teaching course, requires appropriate agent middleware. agents. our approach to AT course, we prepared the We have been considering several possibilities, teaching materials in the following way. We assistant. In the last part of the course, students have to implement a slightly complex problem including a thorough analysis of the JADE agent started with selecting some topics of textbooks middleware functionalities. Our motivation and in Agent technologies, but predominantly used (i.e. the design of a small-scale distributed 5. Educational Experiences agent middleware) by themselves. The course intention was to use agent middleware that will our own experience in the field, as well as con- satisfy, as much as possible, AT course learning temporary freely available papers published in lasts 14 weeks, with 3 hours/week for theoret- In this section, we will present experiences in ical lectures and 3 hours/week for laborato- objectives with the low cost of a smooth learn- the past 15 years. Accordingly, learning objec- ing curve. We also thought that it is important delivering these two courses and gained with tives were formulated: ry work. During theoretical classes, students teaching them for several years at our universi- learn fundamentals of the agent technology, to provide a meaningful and well-documented ●● LO1: Present essential concept of intel- software that helps students to acquire skills ties. Numerous positive experiences are gained organization of agent code, agent lifecycle, by teachers and students as well, which proves ligent agents, different types of agents, FIPA protocols and FIPA ACL. They expand for developing distributed solutions in due time communication protocols, and supporting and with reasonable effort. that such courses should be a regular part of their technical knowledge with all necessary study programs in informatics and computer architecture for their operation. skills for the agent middleware development, Therefore, we finally decided to use, for all science. ●● LO2: Explain essential differences be- like: Java EE, aspect-oriented programming, course activities, an in-house implemented very tween single agent and multi-agent sys- and advanced JavaScript. Laboratory tasks are high-quality and robust agent development tems and crucial facts about agent lifecycle closely related to the topics presented during framework i.e. the Siebog agent middleware 5.1. Educational Experiences with DNAD management, communication, and interac- theoretical classes. For lab exercises, students [9]. Siebog integrated two (see Figure 1), also Course tion. are divided into small teams (3 or 4 members) in-house, developed, components: XJAF and with the primary task to create agents capable Radigost, to support server-side and client-side Experiences with teaching the DNAD course ●● LO3: Discuss possible applications of of communicating with several different types have been gained during the academic years be- MASs and emphasize advantages of the of agents on the same computer, to employ tween 2009–2015. During the course lectures, agent-based approach for solving complex FIPA communication protocols, and finally to we followed the course topics outlined in Sec- engineering problems. Also, provide the perform a communication between multiple tion 3. They included a chapter on agent mid- opportunity to obtain practical experience agents on several computers. Students are giv- dleware covering FIPA and JADE. Moreover, in applying gained knowledge to solve en several examples of inter-agent communi- agent middleware examples were often used to slightly complex problems, preferably in cation based on the FIPA Protocols. discuss concepts of Distributed Systems. On the AI realm. The final grade is composed of three compo- the other hand, we experimented with different Secondly, the course prerequisites by some nents: approaches and assignments in each year for other courses at our study program, more or the lab and project work in order to better adapt less related to AI, like "Basic Artificial Intelli- 1. 30% is based on a questionnaire for assess- to the special needs of our students, so the fol- gence Techniques" and "Business Intelligence". ing gained theoretical knowledge; lowing presentation is more focused on those Through mentioned courses, students gained 2. 30% is based on lab achievements and Figure 1. Siebog Architecture. practical aspects of the course. 34 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 35

Agent middleware was firstly added to the ment. Their first task was to define an agent er took advantage to assign them with helping quirements of the assignments. Out of 90 stu- DNAD course in 2009/2010 academic year. The organization with a fixed communication to- slower students that ran out of time. However, dents, only 21 of them were able to implement lectures included a chapter on FIPA and JADE. pology of their choice (i.e. ring, mesh, linear this approach turned out to be not so ''competi- the safe over UDP and Also, the students were exposed to the design etc.) and to run an experiment to determine how tive'', as slower students actually received more only 17 created some kind of Web interface to and of simple multi-agent sys- many ''ping'' protocols they can instantiate on attention. The negative effect was that the num- their agent-based Twitter-like system. Just 25 tems during the laboratory classes. The pro- a single machine before their system started to ber of these students was increasing by the end out of 90 students presented the project in the cess started with the presentation of a scenario, exhibit any kind of failures, like lost messages of the semester. Nevertheless, this was compen- first exam session, which was in fact an over- followed by the identification of agent types, or agent crashes. Their second task was to rerun sated during the grading process. all negative result. We concluded that the main design of interaction protocols and agent be- their experiment on a using During academic year 2011/2012, we decid- cause was the significantly higher complexity haviors. However, while we noticed during the more machines and then compare the results. ed to continue with the same lab assignments, of the lab assignments, as compared with the exams that students received well the discipline The implementation technology of the ''agents'' while applying an ''elitist'' type of assistance. If previous years. of MAS design, they had difficulties with the was left to their choice. Out of 28 students that a student did not present a reasonable person- During the academic year 2013/2014, we pre- implementation of the agent system. Actually, presented the project in the first exam session, al attempt, then he/she would not get any help. sented the students with the challenge of build- very few of them were able to produce a work- 25 of them decided to use JADE. However, this But in order to make sure that all students could ing a mobile app that allows users to chat peer ing JADE-based MAS at the end of the lab ac- result is only partly positive, as 29 out of 57 make that first attempt, we provided them with to peer. The students were briefly introduced tivity. We learnt that one weakness of our ap- students did not present the project at all. a review of Java programming in the first lab to agents as distributed software components. proach was the schedule of JADE introduction We generally concluded that students liked session. For diversity, we slightly modified the They were also given an example of how to pro- too late, towards the end of the course. The stu- working with JADE. However, as a ''side-ef- project assignment by adding the requirement grammatically setup a JADE framework using dents needed more time to gain better familiar- fect'', we noticed that they prefer to use a sim- to measure the MAS setup time for instantiat- Java code, how to connect to it from a mobile ity with the technology in order to successfully ple development environment that automati- ing an increasing number of ping protocols on a device and how to dynamically create agents. finalize some concrete programming tasks. cally takes care of general repetitive tasks that single machine, as well as on two machines and Students were not granted credit for attending then compare the results. As a consequence, Therefore, during the next 2010/2011 year, we are part of the system setup. This conclusion the lab, unless they successfully achieved the is independent of the technology taught, as we only 15 out of 45 students were able to present framework setup. We found that this was a great decided to direct more lab assignments towards their project during the first exam session. Also, MAS design and implementation, as well as to noticed the same problems with teaching Java source of motivation for below average graded servlets. Although it can be argued that doing only one student chose to use sockets instead of students. While most of the students attempt- understanding of the underlying technologies JADE agents. in connection with agent middleware. So, apart such actions manually can be more educative ed to do everything by themselves, they usual- as students are faced with ''more realistic'' prob- For the following academic year 2012/2013, ly failed because of the lack of experience. So from the course lectures dedicated to FIPA and we chose to make a radical change in lab and JADE, students received a lab task to imple- lems, those activities are also tedious and dis- they were tempted to ask for help from better project activities. We devised two large assign- students, which was offered happily. This prac- ment distributed entities called ''agents'' that couraging, thus hindering the focusing of stu- ments: tice was beneficial to all students involved, so can interact using a simple ''ping'' protocol. For dents' attention on more interesting problems. it was not discouraged. Therefore, all 88 attend- the implementation, students had to use several One negative effect is that most students just ●● a distributed master-slave password crack- ing students (out of 102 enrolled in the course) Java middleware technologies, including: sock- stopped doing the laboratory duties altogether, er implemented using a safe socket-based accepting lower grades. So we decided to focus have successfully instantiated the JADE frame- ets, RMI, servlets, Web Services and JADE. communication protocol over UDP, and them on programming and experimentation ac- work. They were introduced to the MAS design meth- tivities, rather than forcing them to do the con- ●● a Twitter-like system implemented using odology during the first lab task, while the rest The decision to use mobile devices was based figuration and setup activities themselves. JADE agents and equipped with a Web of the laboratory work was concentrated on var- based GUI. on two elements: demand from students and de- ious implementations. Doing experiments on multiple computers also mand from software companies, including local captured well the students' attention, in spite of We also continued with the presentation of a ones. We made two local pilot workshops for Learning from past experiences, we helped stu- the obvious complexities of setting up a distrib- Java programming tutorial during the first lab. mobile programming to get students' feedback dents by creating a JADE bootstrap class that uted application on a computer network. The For the project task, the students were asked to on this decision. Based on positive students' re- instantiates the JADE platform as well as the JADE RMA agent was very well received by perform a ''stress'' experiment on one of the lab sponse and the high interest of local software Remote Management Agent – RMA that pro- the students for monitoring the setup of their assignments of their choice. companies, we decided to include this technol- vides a default Graphical Interface to the distributed system before actually starting the During their assignments, we identified two ogy into our lab. MAS. Then we taught students how to easily agents' interactions. most frequent difficulties encountered by the Note that this positive feedback was partly due add agents to their system using sample Java students: code. This proved to be a better approach, since Most of the students needed personal assistance to the low number of possibly unrepresentative, all students were able to create agent running from the lab teacher until they were able to pro- ●● dealing with the potential failures of the but highly motivated attendees. When all stu- examples more easily. duce a working lab assignment. This resulted UDP protocol dents were presented with our distributed mo- in students' asking so many questions that the bile challenge at the lab, a lot of them seemed ●● interfacing JADE with the Tomcat Web During academic year 2010/2011, we also di- professor ended up by handing out pieces of overwhelmed. However, again by conditioning server. rected the project activity towards using agent code to them. Some students finalized their lab their attendance with providing a working demo middleware. Therefore students received an assignments before the schedule, thus finish- They determined many students to actually re- application, most students (91/102) were able ''agent stress'' experiment as project assign- ing their work faster. Consequently, the teach- fuse to even try to achieve these particular re- to produce a simple Android app in the first lab. 34 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 35

Agent middleware was firstly added to the ment. Their first task was to define an agent er took advantage to assign them with helping quirements of the assignments. Out of 90 stu- DNAD course in 2009/2010 academic year. The organization with a fixed communication to- slower students that ran out of time. However, dents, only 21 of them were able to implement lectures included a chapter on FIPA and JADE. pology of their choice (i.e. ring, mesh, linear this approach turned out to be not so ''competi- the safe communication protocol over UDP and Also, the students were exposed to the design etc.) and to run an experiment to determine how tive'', as slower students actually received more only 17 created some kind of Web interface to and implementation of simple multi-agent sys- many ''ping'' protocols they can instantiate on attention. The negative effect was that the num- their agent-based Twitter-like system. Just 25 tems during the laboratory classes. The pro- a single machine before their system started to ber of these students was increasing by the end out of 90 students presented the project in the cess started with the presentation of a scenario, exhibit any kind of failures, like lost messages of the semester. Nevertheless, this was compen- first exam session, which was in fact an over- followed by the identification of agent types, or agent crashes. Their second task was to rerun sated during the grading process. all negative result. We concluded that the main design of interaction protocols and agent be- their experiment on a computer network using During academic year 2011/2012, we decid- cause was the significantly higher complexity haviors. However, while we noticed during the more machines and then compare the results. ed to continue with the same lab assignments, of the lab assignments, as compared with the exams that students received well the discipline The implementation technology of the ''agents'' while applying an ''elitist'' type of assistance. If previous years. of MAS design, they had difficulties with the was left to their choice. Out of 28 students that a student did not present a reasonable person- During the academic year 2013/2014, we pre- implementation of the agent system. Actually, presented the project in the first exam session, al attempt, then he/she would not get any help. sented the students with the challenge of build- very few of them were able to produce a work- 25 of them decided to use JADE. However, this But in order to make sure that all students could ing a mobile app that allows users to chat peer ing JADE-based MAS at the end of the lab ac- result is only partly positive, as 29 out of 57 make that first attempt, we provided them with to peer. The students were briefly introduced tivity. We learnt that one weakness of our ap- students did not present the project at all. a review of Java programming in the first lab to agents as distributed software components. proach was the schedule of JADE introduction We generally concluded that students liked session. For diversity, we slightly modified the They were also given an example of how to pro- too late, towards the end of the course. The stu- working with JADE. However, as a ''side-ef- project assignment by adding the requirement grammatically setup a JADE framework using dents needed more time to gain better familiar- fect'', we noticed that they prefer to use a sim- to measure the MAS setup time for instantiat- Java code, how to connect to it from a mobile ity with the technology in order to successfully ple development environment that automati- ing an increasing number of ping protocols on a device and how to dynamically create agents. finalize some concrete programming tasks. cally takes care of general repetitive tasks that single machine, as well as on two machines and Students were not granted credit for attending then compare the results. As a consequence, Therefore, during the next 2010/2011 year, we are part of the system setup. This conclusion the lab, unless they successfully achieved the is independent of the technology taught, as we only 15 out of 45 students were able to present framework setup. We found that this was a great decided to direct more lab assignments towards their project during the first exam session. Also, MAS design and implementation, as well as to noticed the same problems with teaching Java source of motivation for below average graded servlets. Although it can be argued that doing only one student chose to use sockets instead of students. While most of the students attempt- understanding of the underlying technologies JADE agents. in connection with agent middleware. So, apart such actions manually can be more educative ed to do everything by themselves, they usual- as students are faced with ''more realistic'' prob- For the following academic year 2012/2013, ly failed because of the lack of experience. So from the course lectures dedicated to FIPA and we chose to make a radical change in lab and JADE, students received a lab task to imple- lems, those activities are also tedious and dis- they were tempted to ask for help from better project activities. We devised two large assign- students, which was offered happily. This prac- ment distributed entities called ''agents'' that couraging, thus hindering the focusing of stu- ments: tice was beneficial to all students involved, so can interact using a simple ''ping'' protocol. For dents' attention on more interesting problems. it was not discouraged. Therefore, all 88 attend- the implementation, students had to use several One negative effect is that most students just ●● a distributed master-slave password crack- ing students (out of 102 enrolled in the course) Java middleware technologies, including: sock- stopped doing the laboratory duties altogether, er implemented using a safe socket-based accepting lower grades. So we decided to focus have successfully instantiated the JADE frame- ets, RMI, servlets, Web Services and JADE. communication protocol over UDP, and them on programming and experimentation ac- work. They were introduced to the MAS design meth- tivities, rather than forcing them to do the con- ●● a Twitter-like system implemented using odology during the first lab task, while the rest The decision to use mobile devices was based figuration and setup activities themselves. JADE agents and equipped with a Web of the laboratory work was concentrated on var- based GUI. on two elements: demand from students and de- ious implementations. Doing experiments on multiple computers also mand from software companies, including local captured well the students' attention, in spite of We also continued with the presentation of a ones. We made two local pilot workshops for Learning from past experiences, we helped stu- the obvious complexities of setting up a distrib- Java programming tutorial during the first lab. mobile programming to get students' feedback dents by creating a JADE bootstrap class that uted application on a computer network. The For the project task, the students were asked to on this decision. Based on positive students' re- instantiates the JADE platform as well as the JADE RMA agent was very well received by perform a ''stress'' experiment on one of the lab sponse and the high interest of local software Remote Management Agent – RMA that pro- the students for monitoring the setup of their assignments of their choice. companies, we decided to include this technol- vides a default Graphical User Interface to the distributed system before actually starting the During their assignments, we identified two ogy into our lab. MAS. Then we taught students how to easily agents' interactions. most frequent difficulties encountered by the Note that this positive feedback was partly due add agents to their system using sample Java students: code. This proved to be a better approach, since Most of the students needed personal assistance to the low number of possibly unrepresentative, all students were able to create agent running from the lab teacher until they were able to pro- ●● dealing with the potential failures of the but highly motivated attendees. When all stu- examples more easily. duce a working lab assignment. This resulted UDP protocol dents were presented with our distributed mo- in students' asking so many questions that the bile challenge at the lab, a lot of them seemed ●● interfacing JADE with the Tomcat Web During academic year 2010/2011, we also di- professor ended up by handing out pieces of overwhelmed. However, again by conditioning server. rected the project activity towards using agent code to them. Some students finalized their lab their attendance with providing a working demo middleware. Therefore students received an assignments before the schedule, thus finish- They determined many students to actually re- application, most students (91/102) were able ''agent stress'' experiment as project assign- ing their work faster. Consequently, the teach- fuse to even try to achieve these particular re- to produce a simple Android app in the first lab. 36 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 37

At the end, we had a total of 88 students that ed that laboratory. Counting only the physi- technology on the other. This fact requires fur- 5.2. Educational Experiences with AT gathered both the know-how of creating a mo- cally present students who actually completed ther investigation before deciding to consider Course bile application, as well as setting up a JADE the assignment, 55% of them used JADE. We this as a limit of our lab or just a trigger for framework. The last part of the challenge re- believe that this was partly due to the concise creating better ways of interfacing JADE other Teaching experiences with the elective AT quired creation of an agent from the app and and comprehensive tutorial on agent mobility distributed software technologies. course at the Technical Faculty, University of then sending it a message. Out of 88 students, provided by JADE community. Even so, we Novi Sad have been gained during the academ- only 36 (40%) were able to actually finalize felt that many ''lazier'' students preferred to ap- Finally, we also noted that students did not per- ic years 2014/2015, 2015/2016 and 2017/2018. it. Based on students' feedback about the lab ply the knowledge gathered at the beginning ceive JADE as an actual enterprise technology. During the course lectures, we followed the assignments and the implementation effort re- of the course by implementing code mobility We have reasons to believe that this is one of course content and methodology mentioned in quired, it became clear that actually only half using Java Sockets (no other way of imple- the main causes of their low turn up with the Section 4. Moreover, like our colleagues from of these 36 students would have been able to do mentation was attempted). In other words, 33 project presentations in the first exam session. the University of Craiova, we experimented the assignment by themselves, while the other (35%) students preferred to practice acquired It is quite hard to capture the full attention of all with different approaches and assignments, es- half required assistance from the rest. knowledge, rather than to learn and experiment the students when the only foreseeable result of pecially in the last year compared to the previ- using JADE is a basis for a prototype or con- ous ones. Particularly for the project work, we A general conclusion of 2013/2014 lab activ- with the new agent technology. We believe that such students were mostly interested in being cept implementation. introduced new elements in the last school year ities was that merging different technologies in order to offer students better understanding hired by local companies as soon as possible, Before concluding the discussion on educa- might intimidate students, possibly with a neg- of agent concepts and technology, thus allow- ative effect on the educational process since rather than spending more time and effort in tional experiences with DNAD course at the mastering new skills, not immediately useful ing them to be more focused on practical as- most students (the remaining 102 – 36 = 66) University of Craiova, we mention that, start- pects of the course. did not achieve the target set by the lab of de- to a local employer. The group of students that ing with 2016, the CS curricula was updated veloping an actual distributed application. On used JADE mobile agents seemed to be more according to new regulations and, although AT course was introduced as elective course the positive side, we have initiated a few stu- research oriented. We found these students to quite successful in our opinion, the topics of for the first time during the 2014/2015 aca- dents in mobile computing, which we consider be better programmers, by rapidly adapting to the DNAD course had to be dispersed into demic year. Out of 12 students attending this beneficial for the local new programming styles and technologies, thus other courses, as follows. Firstly, the course course, 4 proceeded with the work in the field industry. Nevertheless, the mobile software leaving also enough time for experimentation, itself was shifted down with one semester and of agent technology by taking upon (and finish- technology and tools evolved too rapidly, so a rather than only learning to code. it was oriented more on concurrent program- ing on time) a bachelor thesis related to agent large part of our tutorials and lab presentations Based on our experiences we can speculate ming including modeling and verification of frameworks. The same trend continued in the were rendered obsolete for the next years. So, that agent middleware in general and JADE concurrency, as well as on programming with 2015/2016 year: 5 out of 20 students advanced we concluded that, at that time, this was not a in particular could offer certain advantages as threads on multicore architectures, with exam- to doing a bachelor thesis related to agent sustainable way of conducting the lab activities. compared with other frameworks for teaching ples in Java. Only a small part related to the frameworks. Finally, during the school year 2016/2017, 6 out of 29 students, took bachelor In academic year 2014/2015, the students were several aspects of Distributed Systems tech- introduction of distributed systems and pro- thesis related to agent frameworks. All students challenged with developing a mobile code ap- nologies and applications. JADE has a smooth gramming by asynchronous message passing passed the final exam for this course within six plication. For the sole purpose of captatiobe- learning curve and requires considerably less using sockets and Remote Method Invocation, months from the end of the course. nevolentiae, this was presented as ''building a effort than other enterprise technologies – like was kept in the new course. More advanced computer virus''. The scenario involved two Enterprise Java Beans, for example. Students distributed computing aspects, including dis- From our point of view, we applied important computers running ''trojan code'' such that one enjoyed programming simple JADE-based dis- tributed and parallel algorithms are now be- methodological approach i.e. we have adopted was sending the virus code, and the receiver tributed applications. Moreover, agent-based ing taught as a separate course. Multi-Agent in our AT course the organization of practical would then run the virus on the host computer. approach offered a disciplined approach for Systems topics were also included into an ad- activities as team work. Similar to the real-life What the virus did was unimportant for the pur- design and development of distributed appli- vanced course that is taught within the Master tasks and assignments, usually in IT compa- pose of the lab, so a simple ''hello world code'' cations that can be successfully transferred to program. However, the aim of this course is nies, students were organized in groups/teams was enough for demoing the application. other distributed software technologies. more in the spirit of Multi-Agent, than Distrib- and each team had to implement the same API At this point, students were allowed to use any However, there are aspects where the use of uted Systems, including, for example, topics given by the teachers. technology in order to achieve the desired func- JADE presents difficulties. Students needed of Game Theory, Artificial Intelligence (Be- That way, all the teams had to produce interop- tionality. JADE agents were presented as a pos- help with the setup and creation of simple ap- lief-Desire-Intention programming) and Ma- erable code, which would be compatible with sible alternative supported by mobile agents. plications. This was achieved by the creation chine Learning. Note also that an advanced the solution from any other team. Another ad- As usual, the students were given code to set- of a JADE bootstrap class, as well as a special course on Distributed Programming focused vantage of having team work is in giving more up the framework and two demo agents. At the application configuration of platform to on distributed software technologies is also complex assignments to the students. Both stu- time of this challenge, the students were also facilitate the development and running of agent included in the Master program. So, we can dents and teachers were satisfied with the re- introduced to Java Sockets, Remote Method In- applications. Moreover, the implementation of a conclude that our positive experiences with sults achieved from performing the tasks within vocation and Web Services. Given the freedom Web-based GUI for JADE-based MAS requires teaching DNAD topics were not lost, but rath- the teams, since all the solutions were produced to choose, 39 (42%) students of a total of 92 a tedious and discouraging work of interfacing er reused by enriching other courses that are on time and the code was interoperable. How- used JADE agents. This is an objectively high two different distributed technologies: FIPA now part of the CS curricula at the University ever, there is a potential drawback of having percentage given that only 72 students attend- agents on one hand and Web Servers or mobile of Craiova. teams instead of individual assignments. In this 36 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 37

At the end, we had a total of 88 students that ed that laboratory. Counting only the physi- technology on the other. This fact requires fur- 5.2. Educational Experiences with AT gathered both the know-how of creating a mo- cally present students who actually completed ther investigation before deciding to consider Course bile application, as well as setting up a JADE the assignment, 55% of them used JADE. We this as a limit of our lab or just a trigger for framework. The last part of the challenge re- believe that this was partly due to the concise creating better ways of interfacing JADE other Teaching experiences with the elective AT quired creation of an agent from the app and and comprehensive tutorial on agent mobility distributed software technologies. course at the Technical Faculty, University of then sending it a message. Out of 88 students, provided by JADE community. Even so, we Novi Sad have been gained during the academ- only 36 (40%) were able to actually finalize felt that many ''lazier'' students preferred to ap- Finally, we also noted that students did not per- ic years 2014/2015, 2015/2016 and 2017/2018. it. Based on students' feedback about the lab ply the knowledge gathered at the beginning ceive JADE as an actual enterprise technology. During the course lectures, we followed the assignments and the implementation effort re- of the course by implementing code mobility We have reasons to believe that this is one of course content and methodology mentioned in quired, it became clear that actually only half using Java Sockets (no other way of imple- the main causes of their low turn up with the Section 4. Moreover, like our colleagues from of these 36 students would have been able to do mentation was attempted). In other words, 33 project presentations in the first exam session. the University of Craiova, we experimented the assignment by themselves, while the other (35%) students preferred to practice acquired It is quite hard to capture the full attention of all with different approaches and assignments, es- half required assistance from the rest. knowledge, rather than to learn and experiment the students when the only foreseeable result of pecially in the last year compared to the previ- using JADE is a basis for a prototype or con- ous ones. Particularly for the project work, we A general conclusion of 2013/2014 lab activ- with the new agent technology. We believe that such students were mostly interested in being cept implementation. introduced new elements in the last school year ities was that merging different technologies in order to offer students better understanding hired by local companies as soon as possible, Before concluding the discussion on educa- might intimidate students, possibly with a neg- of agent concepts and technology, thus allow- ative effect on the educational process since rather than spending more time and effort in tional experiences with DNAD course at the mastering new skills, not immediately useful ing them to be more focused on practical as- most students (the remaining 102 – 36 = 66) University of Craiova, we mention that, start- pects of the course. did not achieve the target set by the lab of de- to a local employer. The group of students that ing with 2016, the CS curricula was updated veloping an actual distributed application. On used JADE mobile agents seemed to be more according to new regulations and, although AT course was introduced as elective course the positive side, we have initiated a few stu- research oriented. We found these students to quite successful in our opinion, the topics of for the first time during the 2014/2015 aca- dents in mobile computing, which we consider be better programmers, by rapidly adapting to the DNAD course had to be dispersed into demic year. Out of 12 students attending this beneficial for the local software development new programming styles and technologies, thus other courses, as follows. Firstly, the course course, 4 proceeded with the work in the field industry. Nevertheless, the mobile software leaving also enough time for experimentation, itself was shifted down with one semester and of agent technology by taking upon (and finish- technology and tools evolved too rapidly, so a rather than only learning to code. it was oriented more on concurrent program- ing on time) a bachelor thesis related to agent large part of our tutorials and lab presentations Based on our experiences we can speculate ming including modeling and verification of frameworks. The same trend continued in the were rendered obsolete for the next years. So, that agent middleware in general and JADE concurrency, as well as on programming with 2015/2016 year: 5 out of 20 students advanced we concluded that, at that time, this was not a in particular could offer certain advantages as threads on multicore architectures, with exam- to doing a bachelor thesis related to agent sustainable way of conducting the lab activities. compared with other frameworks for teaching ples in Java. Only a small part related to the frameworks. Finally, during the school year 2016/2017, 6 out of 29 students, took bachelor In academic year 2014/2015, the students were several aspects of Distributed Systems tech- introduction of distributed systems and pro- thesis related to agent frameworks. All students challenged with developing a mobile code ap- nologies and applications. JADE has a smooth gramming by asynchronous message passing passed the final exam for this course within six plication. For the sole purpose of captatiobe- learning curve and requires considerably less using sockets and Remote Method Invocation, months from the end of the course. nevolentiae, this was presented as ''building a effort than other enterprise technologies – like was kept in the new course. More advanced computer virus''. The scenario involved two Enterprise Java Beans, for example. Students distributed computing aspects, including dis- From our point of view, we applied important computers running ''trojan code'' such that one enjoyed programming simple JADE-based dis- tributed and parallel algorithms are now be- methodological approach i.e. we have adopted was sending the virus code, and the receiver tributed applications. Moreover, agent-based ing taught as a separate course. Multi-Agent in our AT course the organization of practical would then run the virus on the host computer. approach offered a disciplined approach for Systems topics were also included into an ad- activities as team work. Similar to the real-life What the virus did was unimportant for the pur- design and development of distributed appli- vanced course that is taught within the Master tasks and assignments, usually in IT compa- pose of the lab, so a simple ''hello world code'' cations that can be successfully transferred to program. However, the aim of this course is nies, students were organized in groups/teams was enough for demoing the application. other distributed software technologies. more in the spirit of Multi-Agent, than Distrib- and each team had to implement the same API At this point, students were allowed to use any However, there are aspects where the use of uted Systems, including, for example, topics given by the teachers. technology in order to achieve the desired func- JADE presents difficulties. Students needed of Game Theory, Artificial Intelligence (Be- That way, all the teams had to produce interop- tionality. JADE agents were presented as a pos- help with the setup and creation of simple ap- lief-Desire-Intention programming) and Ma- erable code, which would be compatible with sible alternative supported by mobile agents. plications. This was achieved by the creation chine Learning. Note also that an advanced the solution from any other team. Another ad- As usual, the students were given code to set- of a JADE bootstrap class, as well as a special course on Distributed Programming focused vantage of having team work is in giving more up the framework and two demo agents. At the application configuration of Eclipse platform to on distributed software technologies is also complex assignments to the students. Both stu- time of this challenge, the students were also facilitate the development and running of agent included in the Master program. So, we can dents and teachers were satisfied with the re- introduced to Java Sockets, Remote Method In- applications. Moreover, the implementation of a conclude that our positive experiences with sults achieved from performing the tasks within vocation and Web Services. Given the freedom Web-based GUI for JADE-based MAS requires teaching DNAD topics were not lost, but rath- the teams, since all the solutions were produced to choose, 39 (42%) students of a total of 92 a tedious and discouraging work of interfacing er reused by enriching other courses that are on time and the code was interoperable. How- used JADE agents. This is an objectively high two different distributed technologies: FIPA now part of the CS curricula at the University ever, there is a potential drawback of having percentage given that only 72 students attend- agents on one hand and Web Servers or mobile of Craiova. teams instead of individual assignments. In this 38 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 39

approach, it is quite usual that not all students tion of agent middleware are also discussed: does its job by employing the neural network ●● Understand the diversity between specific- contribute equally to solving joint tasks and Enterprise Java Beans – EJB, Java Naming and approach. ities of agents and other software entities. problems. That is the general problem in having Directory Interface – JNDI, Java Messaging Example 2. Sport match result prediction - ●● Be able to design and implement distribut- teams and one solution can be to set up a fair System – JMS, Message Driven Beans – MDB, In this example, the idea is to implement agents ed, agent-based solutions. able to assess roles in the JAX-RS specification for the REST services, and train them to predict the outcome of the team, which is in our course equally done by and Web Sockets. Students also widen their ●● Be able to solve problems being part of the sport matches. Generally speaking, there are team. the teachers and students. Student polls indicate knowledge about reflection, class loading, se- multiple agents doing the same job, doing the that they are reasonably satisfied with the load curity managers, and advanced JavaScript. same prediction based on particular input data. ●● Critically analyze the expected benefits of balancing between team members. Last part of the course is devoted to students' The key agent here is the master agent, which using agent technology. Finally, as AT is an elective course, a very im- building their own agent middleware using the gathers the predictions from other agents and ●● Apply the newly obtained knowledge of portant issue to be considered is how to try to Siebog as a model. To simplify students' activ- sends the aggregated results to the client. As in agent technology to the AI problems, mak- raise the number of students and motivate them ities, their task was to implement only a subset the previous example, concept of neural net- ing agents really intelligent. to select and attend this course. During academ- of all Siebog features and demonstrate agent work is utilized for the sport matches results ic year 2015/16, we had more students than in functionality by implementing chosen FIPA prediction. the previous year (20 of them). Furthermore, agent communication protocol on a real-life Example 3. Weather prediction - In this ex- during the 2016/17 year, 29 students attended 6. Conclusion problem. ample, the idea is to implement agents and train our course. This is a valuable information, as them to perform the weather prediction. Again, it seems that more and more students are be- Each team of students has to implement par- In this paper, we presented comprehensive the master agent acts on the client request, acti- coming aware of the importance and necessity ticular problem emphasizing the interoperabil- overview and experiences of delivering two vates a number of prediction agents and gathers of application of distributed programming and ity (following the same API). So, all instances courses on distributed systems and agent tech- their predictions. The master agent sends the agent technology in real-life domains. They must be able to communicate with each other, nology at two universities in two countries. For aggregated data back to the client. Neural net- have realized that such a course would give providing interoperability (by REST services). both courses, we presented the structure, the work model is used for the weather prediction. them the opportunity to improve distributed This means that agents developed by different tools, teachers' and students' experiences and programming skills necessary for their future teams and deployed on different platforms must Example 4. Chess playing - For each chess lessons learned. communicate with each other without any addi- careers. figure type, it is necessary to develop a corre- Concerning the course on Distributed Network tional requirements or implementation efforts. For example, one of the characteristic exam- sponding type of agent. Also, for each concrete Application Development, which was deliv- ples that students have to solve during their Our experience with previous years and tasks figure, it is necessary to activate an instance of ered in the period of six years, we highlighted lab classes is the FIPA Subscribe Interaction that students have successfully completed is a corresponding agent. The master agent coor- the role of agent middleware and multi-agent Protocol [9] that has been realised on the Sie- very positive. On the other hand, as lab tasks in dinates figures (agents) and is trained to move systems on teaching various theoretical and bog platform. In this example, students need to previous 2 years were very similar, we would them on the chess board according to chess practical aspects of the distributed systems. implement several types of agents to provide like to prevent possible students' cheating, but rules. Master agent uses open source chess en- Our conclusion is that the use of agent middle- message exchange and implement basic agent also to make further innovations within the gine to make adequate moves. Human oppo- ware and of JADE platform for teaching topics intelligence. Furthemore, students are required course. As a consequence, during the last ac- nent is playing against agents. of Distributed Systems certainly brings many to implement this example in the distributed ademic year, we introduced additional assign- All the above-mentioned projects have been advantages, but also has some limits and pos- environment, having multiple agents deployed ments for students – besides creating the agent proposed by the students themselves. The pro- es a few difficulties. As future work, we plan on multiple servers. This way, students are also framework, they had to perform one more task posed projects were carefully considered by the to adapt our course curricula and methodology trained to solve problems in the field of distrib- – to solve more a complex problem, prefera- professor and teaching assistant, adjusted to the to address some of these issues. We also plan uted computing. bly in the AI realm. The problems that students content of the course and available resources to expand our course curricula by adding new were solving during the last academic year are topics in Mobile Computing and Cloud Com- Students develop the agent code in the Eclipse and improved to be finally approved. All the very briefly presented below. puting, while maintaining the significant role of IDE, and deploy the solution into the JBoss proposed projects were implemented properly agent middleware. application server. Siebog middleware has the This way, they were able to apply their knowl- and defended successfully. As these projects built-in web console for the agent management. edge of AI in the Intelligent Agents realm, thus were obligatory part of the course realization, Another course we deeply considered in this This console also dumps all the logged messag- broadening their skills. obtained grades together with the final exam paper is Agent Technologies course, which created the final grade for each student. es and significantly improves and Example 1. Fruit purchasing agents - Agents has been offered for the past several years at analysis. It also visualizes the interactive way are trained to perform the image recognition By the end of the course, we expect each stu- the Faculty of Technical Sciences, UNS, Ser- of monitoring the Siebog operations and helps of the fruits to be purchased. It is necessary to dent to have gained appropriate knowledge, ac- bia, inspired by [9] and subsequently improved students in better understanding of the agents' distinguish two types of agents: merchant and quired adequate agent programming skills, and [2]. Students have had classes and exercises execution. estimator. Merchant is sending images of the achieved main course goals: performed using Siebog in-house agent middle- After this initial phase, the clustering of appli- fruits to be purchased to the estimator agent. ●● Understand the concept of agents and agent ware, which is being actively developed at the cation servers and realization of agents in clus- Estimator agent returns the estimated quality of middleware, the agent lifecycle, message UNS for more than 10 years. tered environments is presented to students. the fruits, so the merchant can make a decision exchange, mobility and other related con- Experience with Siebog showed that the in- Needed technologies (JavaEE) for the realiza- whether to buy this fruit or not. Estimator agent cepts. house solution used for teaching such advanced 38 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 39

approach, it is quite usual that not all students tion of agent middleware are also discussed: does its job by employing the neural network ●● Understand the diversity between specific- contribute equally to solving joint tasks and Enterprise Java Beans – EJB, Java Naming and approach. ities of agents and other software entities. problems. That is the general problem in having Directory Interface – JNDI, Java Messaging Example 2. Sport match result prediction - ●● Be able to design and implement distribut- teams and one solution can be to set up a fair System – JMS, Message Driven Beans – MDB, In this example, the idea is to implement agents ed, agent-based solutions. project management able to assess roles in the JAX-RS specification for the REST services, and train them to predict the outcome of the team, which is in our course equally done by and Web Sockets. Students also widen their ●● Be able to solve problems being part of the sport matches. Generally speaking, there are team. the teachers and students. Student polls indicate knowledge about reflection, class loading, se- multiple agents doing the same job, doing the that they are reasonably satisfied with the load curity managers, and advanced JavaScript. same prediction based on particular input data. ●● Critically analyze the expected benefits of balancing between team members. Last part of the course is devoted to students' The key agent here is the master agent, which using agent technology. Finally, as AT is an elective course, a very im- building their own agent middleware using the gathers the predictions from other agents and ●● Apply the newly obtained knowledge of portant issue to be considered is how to try to Siebog as a model. To simplify students' activ- sends the aggregated results to the client. As in agent technology to the AI problems, mak- raise the number of students and motivate them ities, their task was to implement only a subset the previous example, concept of neural net- ing agents really intelligent. to select and attend this course. During academ- of all Siebog features and demonstrate agent work is utilized for the sport matches results ic year 2015/16, we had more students than in functionality by implementing chosen FIPA prediction. the previous year (20 of them). Furthermore, agent communication protocol on a real-life Example 3. Weather prediction - In this ex- during the 2016/17 year, 29 students attended 6. Conclusion problem. ample, the idea is to implement agents and train our course. This is a valuable information, as them to perform the weather prediction. Again, it seems that more and more students are be- Each team of students has to implement par- In this paper, we presented comprehensive the master agent acts on the client request, acti- coming aware of the importance and necessity ticular problem emphasizing the interoperabil- overview and experiences of delivering two vates a number of prediction agents and gathers of application of distributed programming and ity (following the same API). So, all instances courses on distributed systems and agent tech- their predictions. The master agent sends the agent technology in real-life domains. They must be able to communicate with each other, nology at two universities in two countries. For aggregated data back to the client. Neural net- have realized that such a course would give providing interoperability (by REST services). both courses, we presented the structure, the work model is used for the weather prediction. them the opportunity to improve distributed This means that agents developed by different tools, teachers' and students' experiences and programming skills necessary for their future teams and deployed on different platforms must Example 4. Chess playing - For each chess lessons learned. communicate with each other without any addi- careers. figure type, it is necessary to develop a corre- Concerning the course on Distributed Network tional requirements or implementation efforts. For example, one of the characteristic exam- sponding type of agent. Also, for each concrete Application Development, which was deliv- ples that students have to solve during their Our experience with previous years and tasks figure, it is necessary to activate an instance of ered in the period of six years, we highlighted lab classes is the FIPA Subscribe Interaction that students have successfully completed is a corresponding agent. The master agent coor- the role of agent middleware and multi-agent Protocol [9] that has been realised on the Sie- very positive. On the other hand, as lab tasks in dinates figures (agents) and is trained to move systems on teaching various theoretical and bog platform. In this example, students need to previous 2 years were very similar, we would them on the chess board according to chess practical aspects of the distributed systems. implement several types of agents to provide like to prevent possible students' cheating, but rules. Master agent uses open source chess en- Our conclusion is that the use of agent middle- message exchange and implement basic agent also to make further innovations within the gine to make adequate moves. Human oppo- ware and of JADE platform for teaching topics intelligence. Furthemore, students are required course. As a consequence, during the last ac- nent is playing against agents. of Distributed Systems certainly brings many to implement this example in the distributed ademic year, we introduced additional assign- All the above-mentioned projects have been advantages, but also has some limits and pos- environment, having multiple agents deployed ments for students – besides creating the agent proposed by the students themselves. The pro- es a few difficulties. As future work, we plan on multiple servers. This way, students are also framework, they had to perform one more task posed projects were carefully considered by the to adapt our course curricula and methodology trained to solve problems in the field of distrib- – to solve more a complex problem, prefera- professor and teaching assistant, adjusted to the to address some of these issues. We also plan uted computing. bly in the AI realm. The problems that students content of the course and available resources to expand our course curricula by adding new were solving during the last academic year are topics in Mobile Computing and Cloud Com- Students develop the agent code in the Eclipse and improved to be finally approved. All the very briefly presented below. puting, while maintaining the significant role of IDE, and deploy the solution into the JBoss proposed projects were implemented properly agent middleware. application server. Siebog middleware has the This way, they were able to apply their knowl- and defended successfully. As these projects built-in web console for the agent management. edge of AI in the Intelligent Agents realm, thus were obligatory part of the course realization, Another course we deeply considered in this This console also dumps all the logged messag- broadening their skills. obtained grades together with the final exam paper is Agent Technologies course, which created the final grade for each student. es and significantly improves debugging and Example 1. Fruit purchasing agents - Agents has been offered for the past several years at analysis. It also visualizes the interactive way are trained to perform the image recognition By the end of the course, we expect each stu- the Faculty of Technical Sciences, UNS, Ser- of monitoring the Siebog operations and helps of the fruits to be purchased. It is necessary to dent to have gained appropriate knowledge, ac- bia, inspired by [9] and subsequently improved students in better understanding of the agents' distinguish two types of agents: merchant and quired adequate agent programming skills, and [2]. Students have had classes and exercises execution. estimator. Merchant is sending images of the achieved main course goals: performed using Siebog in-house agent middle- After this initial phase, the clustering of appli- fruits to be purchased to the estimator agent. ●● Understand the concept of agents and agent ware, which is being actively developed at the cation servers and realization of agents in clus- Estimator agent returns the estimated quality of middleware, the agent lifecycle, message UNS for more than 10 years. tered environments is presented to students. the fruits, so the merchant can make a decision exchange, mobility and other related con- Experience with Siebog showed that the in- Needed technologies (JavaEE) for the realiza- whether to buy this fruit or not. Estimator agent cepts. house solution used for teaching such advanced 40 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 41 courses is very welcomed by students, since References [11] F. L. Bellifemine et al., Developing multi agent Received: October 2018 systems with JADE, John Wiley & Sons Ltd, Revised: January 2019 they can obtain instant help regarding problems Accepted: January 2019 or understanding complex concepts. Practi- [1] M. Ivanović and A. Klašnja Milićević, "Big data Chichester, West Sussex, England, 2007. cal projects for students were organized in the and computational intelligence", International [12] Joint Task Force on Computing Curricula, As- form of team work. Team work provided stu- Journal of High Performance Computing and sociation for Computing Machinery (ACM) and Networking (in print). IEEE Computer Society. Computer Science Cur- dents with the possibility to develop distrib- ricula 2013: Curriculum Guidelines for Under- uted applications in the way it is usually done [2] C. Bădică et al., "Role of agent middleware in teaching distributed network application devel- graduate Degree Programs in Computer Science. in IT companies, which prepares them for the opment", in Proceedings of the 8th International ACM, New York, NY, USA. Accessed on: Oct. real-life working situations in their future jobs. Conference KES-AMSTA, vol. 296, 2014, Ad- 15, 2016. vances in Intelligent Systems and Computing, pp. http://dx.doi.org/10.1145/2534860 Based on previous experiences in delivering 267–276, 2014, Springer International Publishing. [13] G. Coulouris et al., Distributed Systems. Con- this course, we are aware of the fact that there https://doi.org/10.1007/978-3-319-07650-8_27 cepts and Design (Fifth Edition), Addison Wes- are still a wide range of opportunities for ex- [3] J. Kesaniemi and V. Terziyan, "Agent-environ- ley, 2011. pansion and introduction of innovations in the ment interaction in mas - introduction and sur- [14] M. Wooldridge, Introduction to MultiAgent Sys- course structure and organization. vey". In: F. Alkhateeb (Ed.), Multi-Agent Sys- tems, Second Edition, John Wiley and Sons, 2009. tems - Modeling, Interactions, Simulations and As authors of the paper have been cooperating Case Studies, pp. 203–226, 2011, IntechOpen. [15] D. Ince, Developing Distributed and E-Commerce in research and educational activities for more doi:10.5772/15145. Applications, Second Edition, Addison-Wesley, 2003. than a decade, we managed to approach joint [4] M. Beer et al., "Multi-agent systems for educa- conclusions and advantages of delivering such tion and interactive entertainment: design, use [16] J. Graba, An Introduction to Network Program- kind of courses. Regardless of the fact that one and experience", IGI Global, 2011. ming with Java, Springer, 2007. https://doi.org/10.4018/978-1-60960-080-8 course is mandatory (DNAD) and the other one [17] N. Santoro, Design and Analysis of Distributed is elective (AT), some common conclusions fol- [5] F. Stonedahl et al., "MAgICS: Toward a multi- Algorithms, John Wiley & Sons, 2007. agent introduction to computer science", In. M. low. Beer, M. Fasli, & D. Richards (Eds.) Multi-Agent [18] J. R. Albrecht, "Bringing big systems to small schools: distributed systems for undergraduates", ●● If students are highly motivated and eager Systems for Education and Interactive Entertain- ment: Design, Use and Experience, pp. 1–25, SIGCSE Bull., vol. 41, no. 1, pp. 101–105, 2009, to enhance their knowledge in new, con- 2011, Hershey, Reference. ACM, New York, NY, USA. temporary topics in ICT and CS, then they https://doi.org/10.1145/1539024.1508903 [6] I. Sakellariou et al., "An intelligent agents and are ready for hard work and extra activities multi-agent systems course involving NetLo- [19] C. Bădică et al., "Agent reasoning on the in order to successfully accomplish rather go", in Multi-Agent Systems for Education and web using web services", Computer Science demanding tasks. Interactive Entertainment: Design, Use and Ex- and Information Systems, vol. 11, no. 2, pp. perience, pp. 26–50, 2011, Hershey, Information 697–721, 2014. ●● Successful realization of courses on Dis- Science Reference. http://dx.doi.org/10.2298/CSIS140301038B tributed Systems and Agent Technology, [7] I. Stamatopoulou et al., "Teaching, learning and [20] Chris van Aart, Organizational Principles for based on high exam passing rate for mo- assessment of agents and in a computer Multi-Agent Architectures, Birkhäuser Verlag, tivated students, confirms that these topics science curriculum", in. Proc. of the 11th Inter- Whitestein Series in Software Agent Technolo- should be a part of modern ICT and CS national Symposium on Intelligent Distributed gies, 2005. Computing - IDC 2017, Studies in Computational curricula. Intelligence 737, Springer, pp. 321–332, 2018, [21] C. Bădică et al., "Distributed agent-based online ISBN 978-3-319-66378-4C. auction system'', Computing and Informatics, ●● If it is possible to use an in-house devel- vol.33, no.3, pp. 518–552, 2014. oped software system for theoretical but [8] J. Wiens and D. Monett, "Using BDI-extended http://www.cai.sk/ojs/index.php/cai/article/ predominantly for practical aspects of a NetLogo agents in undergraduate CS research view/2216 and teaching", in Proceedings of the International course, then such software offers signifi- Conference on Frontiers in Education: Computer [22] A. Mocanu et al., "Ubiquitous multi-agent envi- cant additional value. Science and (FECS), pp. ronmental hazard management", in Proc. of the 396–402, 2013, The Steering Committee of The 14th International Symposium on Symbolic and ●● Organization of students' practical projects World Congress in Computer Science, Comput- Numeric Algorithms for Scientific Computing based on team work is motivational and er Engineering and Applied Computing (World- (SYNASC), pp. 513–521, 2012, IEEE Computer inspiring for the majority of students. It of- Comp), CSREA Press U.S.A. Society. https://doi.org/10.1109/SYNASC.2012.72 fers them experience they will face in their [9] D. Mitrović et al., "The Siebog multiagent mid- future work and jobs in companies. dleware". Knowl.-Based Syst., vol. 103, pp. [23] D. Mitrović et al., "Extensible Java EE-based 56‒59, 2016. agent framework in clustered environments", We believe that material, experiences and les- https://doi.org/10.1016/j.knosys.2016.03.017 LNCS, vol. 8732, pp. 202–215, Springer, 2014. sons learned from delivering these rather inno- https://doi.org/10.1007/978-3-319-11584-9_14 [10] C. Bădică et al., "Software agents: languages, vative courses presented in the paper could also tools, platforms", Computer Science and Infor- be useful for other teachers and educational in- mation Systems, vol. 8, no. 2, pp. 255‒298, 2011. stitutions. https://doi.org/10.2298/CSIS110214013B 40 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković Role of Agent Middleware in Teaching Distributed Systems and Agent Technologies 41 courses is very welcomed by students, since References [11] F. L. Bellifemine et al., Developing multi agent Received: October 2018 systems with JADE, John Wiley & Sons Ltd, Revised: January 2019 they can obtain instant help regarding problems Accepted: January 2019 or understanding complex concepts. Practi- [1] M. Ivanović and A. Klašnja Milićević, "Big data Chichester, West Sussex, England, 2007. cal projects for students were organized in the and computational intelligence", International [12] Joint Task Force on Computing Curricula, As- form of team work. Team work provided stu- Journal of High Performance Computing and sociation for Computing Machinery (ACM) and Networking (in print). IEEE Computer Society. Computer Science Cur- dents with the possibility to develop distrib- ricula 2013: Curriculum Guidelines for Under- uted applications in the way it is usually done [2] C. Bădică et al., "Role of agent middleware in teaching distributed network application devel- graduate Degree Programs in Computer Science. in IT companies, which prepares them for the opment", in Proceedings of the 8th International ACM, New York, NY, USA. Accessed on: Oct. real-life working situations in their future jobs. Conference KES-AMSTA, vol. 296, 2014, Ad- 15, 2016. vances in Intelligent Systems and Computing, pp. http://dx.doi.org/10.1145/2534860 Based on previous experiences in delivering 267–276, 2014, Springer International Publishing. [13] G. Coulouris et al., Distributed Systems. Con- this course, we are aware of the fact that there https://doi.org/10.1007/978-3-319-07650-8_27 cepts and Design (Fifth Edition), Addison Wes- are still a wide range of opportunities for ex- [3] J. Kesaniemi and V. Terziyan, "Agent-environ- ley, 2011. pansion and introduction of innovations in the ment interaction in mas - introduction and sur- [14] M. Wooldridge, Introduction to MultiAgent Sys- course structure and organization. vey". In: F. Alkhateeb (Ed.), Multi-Agent Sys- tems, Second Edition, John Wiley and Sons, 2009. tems - Modeling, Interactions, Simulations and As authors of the paper have been cooperating Case Studies, pp. 203–226, 2011, IntechOpen. [15] D. Ince, Developing Distributed and E-Commerce in research and educational activities for more doi:10.5772/15145. Applications, Second Edition, Addison-Wesley, 2003. than a decade, we managed to approach joint [4] M. Beer et al., "Multi-agent systems for educa- conclusions and advantages of delivering such tion and interactive entertainment: design, use [16] J. Graba, An Introduction to Network Program- kind of courses. Regardless of the fact that one and experience", IGI Global, 2011. ming with Java, Springer, 2007. https://doi.org/10.4018/978-1-60960-080-8 course is mandatory (DNAD) and the other one [17] N. Santoro, Design and Analysis of Distributed is elective (AT), some common conclusions fol- [5] F. Stonedahl et al., "MAgICS: Toward a multi- Algorithms, John Wiley & Sons, 2007. agent introduction to computer science", In. M. low. Beer, M. Fasli, & D. Richards (Eds.) Multi-Agent [18] J. R. Albrecht, "Bringing big systems to small schools: distributed systems for undergraduates", ●● If students are highly motivated and eager Systems for Education and Interactive Entertain- ment: Design, Use and Experience, pp. 1–25, SIGCSE Bull., vol. 41, no. 1, pp. 101–105, 2009, to enhance their knowledge in new, con- 2011, Hershey, Information Science Reference. ACM, New York, NY, USA. temporary topics in ICT and CS, then they https://doi.org/10.1145/1539024.1508903 [6] I. Sakellariou et al., "An intelligent agents and are ready for hard work and extra activities multi-agent systems course involving NetLo- [19] C. Bădică et al., "Agent reasoning on the in order to successfully accomplish rather go", in Multi-Agent Systems for Education and web using web services", Computer Science demanding tasks. Interactive Entertainment: Design, Use and Ex- and Information Systems, vol. 11, no. 2, pp. perience, pp. 26–50, 2011, Hershey, Information 697–721, 2014. ●● Successful realization of courses on Dis- Science Reference. http://dx.doi.org/10.2298/CSIS140301038B tributed Systems and Agent Technology, [7] I. Stamatopoulou et al., "Teaching, learning and [20] Chris van Aart, Organizational Principles for based on high exam passing rate for mo- assessment of agents and robotics in a computer Multi-Agent Architectures, Birkhäuser Verlag, tivated students, confirms that these topics science curriculum", in. Proc. of the 11th Inter- Whitestein Series in Software Agent Technolo- should be a part of modern ICT and CS national Symposium on Intelligent Distributed gies, 2005. Computing - IDC 2017, Studies in Computational curricula. Intelligence 737, Springer, pp. 321–332, 2018, [21] C. Bădică et al., "Distributed agent-based online ISBN 978-3-319-66378-4C. auction system'', Computing and Informatics, ●● If it is possible to use an in-house devel- vol.33, no.3, pp. 518–552, 2014. oped software system for theoretical but [8] J. Wiens and D. Monett, "Using BDI-extended http://www.cai.sk/ojs/index.php/cai/article/ predominantly for practical aspects of a NetLogo agents in undergraduate CS research view/2216 and teaching", in Proceedings of the International course, then such software offers signifi- Conference on Frontiers in Education: Computer [22] A. Mocanu et al., "Ubiquitous multi-agent envi- cant additional value. Science and Computer Engineering (FECS), pp. ronmental hazard management", in Proc. of the 396–402, 2013, The Steering Committee of The 14th International Symposium on Symbolic and ●● Organization of students' practical projects World Congress in Computer Science, Comput- Numeric Algorithms for Scientific Computing based on team work is motivational and er Engineering and Applied Computing (World- (SYNASC), pp. 513–521, 2012, IEEE Computer inspiring for the majority of students. It of- Comp), CSREA Press U.S.A. Society. https://doi.org/10.1109/SYNASC.2012.72 fers them experience they will face in their [9] D. Mitrović et al., "The Siebog multiagent mid- future work and jobs in companies. dleware". Knowl.-Based Syst., vol. 103, pp. [23] D. Mitrović et al., "Extensible Java EE-based 56‒59, 2016. agent framework in clustered environments", We believe that material, experiences and les- https://doi.org/10.1016/j.knosys.2016.03.017 LNCS, vol. 8732, pp. 202–215, Springer, 2014. sons learned from delivering these rather inno- https://doi.org/10.1007/978-3-319-11584-9_14 [10] C. Bădică et al., "Software agents: languages, vative courses presented in the paper could also tools, platforms", Computer Science and Infor- be useful for other teachers and educational in- mation Systems, vol. 8, no. 2, pp. 255‒298, 2011. stitutions. https://doi.org/10.2298/CSIS110214013B 42 C. Badica, M. Vidaković, S. Ilie, M. Ivanović and J. Vidaković

Contact addresses: Costin Bădică is a Professor at the Department of Computers and In- Costin Bădică formation Technology, Faculty of , Computers and Elec- Department of Computers and Information Technology tronics, University of Craiova, Romania since 2006. He obtained his Faculty of Automation, Computers and Electronics Ph.D. in Automatic Control in 1999. The research of Prof. Costin University of Craiova Bădică has been the intersection of Artificial Intelligence, Software En- Romania gineering and Distributed Systems. He obtained results in applied for- e-mail: [email protected] mal representations and reasoning, as well as in intelligent distributed multi-agent systems, platforms and programming. Prof. Costin Bădică co-initiated the ''Intelligent Distributed Computing – IDC'' series of Milan Vidaković conferences. He is a Founding Member of Romanian Association of Faculty of Technical Sciences Artificial Intelligence. As Guest Editor, he organized many internation- University of Novi Sad al journal special issues and managed many national and international Serbia research projects. e-mail: [email protected]

Sorin Ilie Milan Vidaković was born in Novi Sad, Yugoslavia (nowadays Serbia), Department of Computers and Information Technology in 1971. He received his B.Sc. degree in electrical engineering from the Faculty of Automation, Computers and Electronics University of Novi Sad, Novi Sad, Yugoslavia, in 1995, and the M.Sc. University of Craiova and Ph.D. degrees in Electrical Engineering from the University of Novi Romania Sad, in 1998 and 2003, respectively. In 1995, he joined the Department e-mail: [email protected] for Computing and Control of the Faculty of Technical Sciences, Uni- versity of Novi Sad as a teaching assistant. In 2014, he became full Mirjana Ivanović professor at the same university. His current research interests include Faculty of Sciences agent technology, distributed computing, object-oriented programming, web programming, and internationalisation and localisation. University of Novi Sad Serbia e-mail: [email protected] Mirjana Ivanović holds a position of full professor at the Faculty of Jovana Vidaković Sciences, University of Novi Sad, Serbia, since 2002. She is a member Faculty of Sciences of the University Council for Informatics. She is author or co-author of University of Novi Sad 13 textbooks, 13 edited proceedings, 3 monographs, and of more than 440 research papers published in international journals and proceed- Serbia ings of high-quality international conferences. She is/was a member of e-mail: [email protected] Program Committees of more than 250 international conferences and General Chair and Program Committee Chair of numerous internation- al conferences. She has been invited speaker at several international conferences and visiting lecturer in Australia, Thailand and China. As leader and researcher, she has participated in numerous international projects. Currently, she is Editor-in-Chief of Computer Science and In- formation Systems Journal. Her research interests include multi-agent systems, e-learning, and applications of intelligent techniques (CBR, data and web mining).

Sorin Ilie has been a teaching assistant at the Department of Comput- ers and Information Technology, University of Craiova, since 2009. He obtained his Ph.D. in Computers and Information Technology in 2013. Sorin Ilie is interested in research topics along the lines of intelligent distributed applications and agent based simulations. He is an active member of the Intelligent Distributed Systems research group led by professor Costin Bădică.

Jovana Vidaković was born in Novi Sad, Serbia, in 1975. She received her B.Sc. degree and M.Sc. degree in Computer Science from the Fac- ulty of Sciences, University of Novi Sad, Serbia, in 1999 and 2003, re- spectively. She received her Ph.D. degree from the Faculty of Technical Sciences, University of Novi Sad, Serbia, in 2015. Currently, she works as an Assistant Professor at the Faculty of Sciences, University of Novi Sad, where she lectures in several Computer Science and Informatics courses. Her research interests are related to systems and in- formation systems.