# Crossing the Borders: Re-Use of Smart Learning Objects in Advanced Content Access Systems
## 2 The Integration Goal  
The OpenDSA eTextbook system [9] is an example of a growing number of efforts to provide a variety of online educational materials. OpenDSA supports a range of Computer Science courses with content on a growing list of topics, including Data Structures and Algorithms, Formal Languages and Translators and Compilers. OpenDSA allows users to choose from available modules to put together a custom textbook for a course. The custom book can be exported to Canvas as individual modules and assignments. OpenDSA is an open-source project with visualizations and exercises authored by many collaborators and volunteers. OpenDSA also makes use of small programming exercises provided by a separate system, CodeWorkout [2]. By adopting exercises from CodeWorkout, the developers of OpenDSA are not responsible for creating and maintaining a technically demanding exercise type but are still able to make these exercises available to students.  
Mastery Grids [13] is an open-source personalized content access interface designed at the University of Pittsburgh. It has been used with a variety of courses including Python programming, Java programming and Databases. The system allows instructors to design a course-adapted interface to several types of interactive learning content hosted on independent content servers. Among these servers, ACOS Server [14] provides access to Java and Python program animations as well as [PERSON]'s exercises aimed at introductory programming classes.  
It so happens that OpenDSA (and CodeWorkout) on the one hand and Mastery Grids with ACOS on the other hand, provide fairly disjoint collections of materials. OpenDSA focuses on advanced programming and visualizations of materials typically used at the sophomore level and above, while the materials developed for Mastery Grids tends to support the topics offered in first semester programming courses. But these divisions are not hard, nor permanent, in that some materialsused in one system could be of benefit to classes whose topical content might otherwise favor use of the other system. Likewise, there are differences in the domains covered by the systems. For example, content available through Mastery Grids supports Python-based courses, while OpenDSA currently focuses on content for courses in Java and C++.  
One solution to expanding the resources available in either system is to re-implement existing materials. But this would be an inefficient approach. Even if the materials were directly ported from their original source (which would reduce development cost over reinventing entirely from scratch), maintainability would be poor. Better is to integrate existing content from the various systems, allowing the original developers of a given exercise or content type to keep improving to the benefit of all. Instead, we see to support cross-integration of materials in the two infrastructures. The key idea explored by our teams is leveraging the LTI protocol to design an inter-operable connection between various kinds of advanced content across systems and smart learning content. While LTI is not typically used to support this kind of integration, our work demonstrates that it can successfully support our more complex scenario. To demonstrate the feasibility of the new approach, we made use of the Tool-Consumer capabilities of OpenDSA to integrate animations and exercises from ACOS. We also extended the contents served by Mastery Grids to incorporate programming exercises available at CodeWorkout. The next section explains each of these tools in order to better understand the integration that was done, the process used to achieve it and its outcomes.