The Scalable Adapter Design Pattern: Enabling Interoperability Between Educational Software Tools
Total Page:16
File Type:pdf, Size:1020Kb
The Scalable Adapter Design Pattern: Enabling Interoperability Between Educational Software Tools Andreas Harrer, Catholic University Eichstatt-Ingolstadt,¨ Germany, Niels Pinkwart, Clausthal University of Technology, Germany, Bruce M. McLaren, Carnegie Mellon University, Pittsburgh PA, U.S.A., and DFKI, Saarbrucken,¨ Germany, and Oliver Scheuer, DFKI, Saarbrucken,¨ Germany Abstract For many practical learning scenarios, the integrated use of more than one learning tool is educationally beneficial. In these cases, interoperability between learning tools - getting the pieces to talk to one another in a coherent, well-founded manner - is a crucial requirement that is often hard to achieve. This paper describes a re-usable software design that aims at the integration of independent learning tools into one collaborative learning scenario. We motivate the usefulness and expressiveness of combining several learning tools into one integrated learning experience. Based on this we sketch software design principles that integrate several existing components into a joint technical framework. The feasibility of the approach, which we name the “Scalable Adapter” design pattern, is shown with several implementation examples from different educational technology domains, including Intelligent Tutoring Systems and collaborative learning environments. IEEE keywords: J.m Computer applications, H.5.3 Group and Organization interfaces, K.3.m Computers in Education A short version of this paper appeared in the Proceedings of the Conference on Intelligent Tutoring Systems 2008 1 The Scalable Adapter Design Pattern: Enabling Interoperability Between Educational Software Tools1 I. INTRODUCTION hypothesis and plans. In order to help the student or student In the field of educational technology, there have been groups during the different steps of this inquiry procedure, it numerous attempts in recent years to connect differently makes sense to enable them to have hypotheses, experimenta- targeted learning environments to one another. The desire to tion data, and reflections at hand to generate reports or essays, do so is understandable – a variety of “micro level” tools i.e., the availability of the outputs of experiment phases as a that teach students specific skills – e.g., Intelligent Tutoring learning resource in different phases is highly desirable for Systems (ITSs) that help a student solve algebra equations rich learning scenarios. (e.g., [1]) or collaborative technology that helps students learn Such a smooth flow of learning phases, called “educational to solve problems in a cooperative manner (e.g., [2]) – have interoperability” by Jansen et al. [4], can only be achieved been developed and shown to be successful in targeted edu- if the underlying technology allows for an exchange of ed- cational scenarios. Yet, the support of longer-term educational ucational data objects between differently-targeted systems. learning goals, relevant to everyday teaching practice, requires However, this kind of interoperability is not readily available in educational technologists to think more broadly, beyond the today’s learning environments. Why is this so? A short answer use of a single tool. is that achieving this kind of interoperability is difficult since For example, a realistic educational scenario is that a teacher many of the highly effective learning environments are not may want to start his course with individual student sessions designed with interoperability in mind as a primary design with an ITS, followed by plenum discussions about the topic concern. Almost a decade ago, challenges for making educa- (face to face or via a web-forum), then some small-group work tional systems more interoperable through good computational with simulation tools like Netlogo 3 , and finally followed by design were identified [5], [6]. The vision of “educational individual sessions in which students write essays about their software components” that can be connected as easy as copy work. For each of these sessions, there is likely to be a different & paste, expressed in these papers, led to the idea that design tool which is suitable to support the activity, such as Cognitive patterns and programming conventions should be used to Tutors, discussion support tools, and educational simulation attract developers to re-use systems, and to facilitate this re-use tools, yet these individual tools do not usually interoperate or on the code level [5]. Other attempts to achieve such inter- exchange data, resulting in scattered artifacts that are hard to operability between educational technology components, but integrate with one another. focused primarily on making Cognitive Tutors interoperable Another use case where interoperability between heteroge- with other components, were [7], [8]. neous educational tools is an essential requirement is moni- Especially in the field of collaborative learning, tool inter- toring and assessement. If students use single, isolated tools operability and data exchange between heterogeneous learning in different learning phases (such as described above), this environments is a crucial requirement. This is so because may well be helpful for their learning processes. Yet, in a the data flows in group learning tend to be more complex classroom context, it is also important to inform teachers and require a data exchange between a greater variety of about the progress of their students. Provided that educational tools (such as discussion and graphical mapping tools) and technology systems are able to exchange data, this can be more instances of such tools (e.g., one per student) than automated by sending data to monitoring and reporting tools in individual learning scenarios. Many collaborative software for teachers (and researchers), resulting in a unified view and tools need to externalize their data anyhow to allow users representation of student activities. to exchange data with peers (i.e., they transfer this data The interaction between tools and the exchange of data between applications anyway). This fact should facilitate inter- between them makes a lot of sense also in scientific inquiry tool data exchange – yet, practice shows that in the field of learning scenarios [3] where several phases of activities are educational technology, not many collaborative learning tools usually required to allow the students to gain scientific insight are interoperable. Recent initiatives towards interoperability into the phenomenon under investigation. The preparation and for collaborative tools include the CIEL (Collaborative Inquiry planning of the research typically requires different tools than and Experiential Learning) project and the SAIL (Scalable the experimentation (in real or in a computer-simulation); the Architecture for Interactive Learning) architecture. In CIEL, same holds for the documentation and experiment reflection the conceptual integration of collaborative inquiry scenarios and potentially for the definition and refinement of the initial was implemented by means of a technical broker architecture [9] and standardized data formats for the exchange between 3http://ccl.northwestern.edu/netlogo/ different learning tools. The SAIL approach [10] provides 2 a technical framework that can be used to realize learning pattern solves the problem. In the tradition of design pattern scenarios based on different learning tools, including the well- descriptions, these sections (solution and structure) are kept known WISE (Web-based Inquiry Science Environment) tools on an abstract, re-usable level and in a format that describes [11] that have been refactored into SAIL components. the arrangement of elements (code classes and objects) that A key focus of our research and development during the past solve the problem. Finally, we illustrate other known software few years has been the investigation of collaborative modeling design patterns that are closely related to the Scalable Adapter. tools as learning environments. In this line of work, we have Problem context: There are existing learning environments frequently encountered the need to make our tools – such as (such as discussion tools, simulation tools, or ITS systems) Cool Modes [2] or FreeStyler [12] – interoperable with other that each provide specific functionality and data. Parts of tools, either to investigate new research ideas, to implement this data can be used to enrich one anothers’ features within the research results in school practice, or to implement longer- an integrated learning scenario. The individual tools offer term learning flows. Usually, the requirements included that some kind of API that provides access to their their data (1) the usage of the individual tools in their original contexts (e.g., through a publish-subscribe-like mechanism, via network should not be affected, (2) the solution has to be inexpensive to messages, or based on files). If such an API does not exist for implement, and (3) the approach to establish interoperability the individual tools, then it typically can be added without a should be applicable to a wide range of tools. large effort: for collaborative systems, a communication API A recurring approach we have adopted based on these to exchange data with other tools exists anyway. For non- main objectives is to employ a generic data storage and collaborative systems which store their application data at exchange mechanism for data, and use this to achieve seamless a central place (e.g., the database), the API can usually be communication at a customizable