Implementation and Integration
In this chapter, I describe technical aspects of Paigos. The implementation, i.e. the Java classes and interfaces, is described in the first section. The interfaces work on the level of tasks: they take a pedagogical task as input and return a course that achieves the task as a result. The second section describes how the interfaces are used in the integration of Paigos in a Web-based learning environment, in this case ActiveMath. The section illustrates the advantages that arise in a tightly coupled integration, where different components of the learning environment have direct access to the course generator: whenever a component needs to make informed decisions about content to present to the learner, it can use the functionalities offered by the course generator. Thus, knowledge is not duplicated and a coherent pedagogical approach regarding content selection is ensured in the overall system, since a single component, the course generator, is responsible for this functionality. The step from a tight, system confined integration to a service architecture is described in the final section of the chapter. In this setting, an external learning environment registers its repository at the course generation Web-service and subsequently can access Paigos’s functionalities. The interfaces partly remain the same: pedagogical tasks are sent to the course generating service, which returns a course as a result. However, some additional interfaces are required for the repository registration, such as exchanging information about the metadata of the educational resources. As a result, if a system needs to offer course generation to its learners, it can use the functionalities offered by Paigos and is not required to implement the pedagogical knowledge itself.