<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Enriching Intelligent Textbooks with Interactivity: When Smart Content Allocation Goes Wrong</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>University of Pittsburgh</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>School of Computing</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Information</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pittsburgh PA</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>peterb</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>}@pitt.edu</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Utrecht University, Department of Information and Computing Sciences</institution>
          ,
          <addr-line>Princetonplein 5, 3584 CC Utrecht</addr-line>
          ,
          <country country="NL">Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>1902</year>
      </pub-date>
      <abstract>
        <p>One of the main directions of increasing the educational value of a digital textbook is its enrichment with interactive content. Such content can come from outside the textbooks - from multiple existing repositories of educational resources. However, finding the right place for such external resources is not always a trivial task. There exist multiple sources of potential problems: from mismatching metadata to mutually contradicting prerequisite-outcome structures of underlying resources, from diferences in granularity and coverage to ontological conlficts. In this paper, we make an attempt to categorize these problems and give examples from our recent experiment on automated assignment of smart interactive learning content to the chapters of an intelligent textbook in a programming domain.</p>
      </abstract>
      <kwd-group>
        <kwd>Intelligent textbook</kwd>
        <kwd>Smart content</kwd>
        <kwd>Matching conflicts</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        One of the popular directions of augmenting electronic textbooks with
valueadding functionality is extending textbooks with “smart content” - interactive
examples, simulations, and problems [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This direction is very important for
the advancement of intelligent textbooks as learners’ work with such smart
content produces a much more reliable flow of information about their knowledge
and skills acquisition enabling better learning modeling approaches and better
personalization.
      </p>
      <p>Copyright © 2022 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0)</p>
      <p>However, the current platforms for development and delivery of interactive
textbooks share the same problem: these textbooks are developed “as a whole”
with text and interactive problems created together as a part of the
authoring process. This approach allows developing excellent examples of interactive
textbooks, but does not support scaling up this process.</p>
      <p>We advocate a more scalable approach for developing interactive textbooks,
such that can make any electronic textbook interactive by augmenting it with
smart learning content from existing repositories. An essential problem of this
approach is matching smart content items to most appropriate structural units
of a textbook. While originally this process has been performed manually, the
ability to extract concept knowledge and other metadata from both textbooks
and smart content items ofers an opportunity to automate this process using AI
techniques. In this paper, we review existing approaches for augmenting
textbooks with reusable learning content from content repositories and present a
novel approach based on smart content annotation with domain concepts
automatically extracted from a textbook. In the following sections, we explain
our current approach, present expert-based evaluation of the produced results,
and discuss problems that have been revealed during this evaluation. We believe
that an analysis of these problems will help in constructing more eficient content
matching approaches for future interactive textbooks.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <sec id="sec-2-1">
        <title>Smart Content for Computer Science Textbooks</title>
        <p>
          One of the first domains to embrace textbooks augmented with smart content
was computer science education (CSE) where development of interactive
learning activities from algorithm animations to automatically-assessed programming
exercises was a popular research direction [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. The need to integrate
interactive learning activities with online textbooks has been extensively discussed by
computer science education community for many years [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and some of the
best examples of interactive textbooks were produced for computer science
subjects. Existing interactive textbooks for CSE explored a range of smart content
types to extend the core textbook. For example, ELM-ART [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] adaptive
textbook for learning LISP included code examples that can be executed online
and programming problems that were automatically evaluated by an intelligent
program analysis component. OpenDSA [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] textbook for Data Structures and
Algorithms included interactive algorithm animations and problems. RuneStone
Python textbook [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] included interactive code examples, Parson’s problems, and
code construction problems.
        </p>
        <p>
          At the moment, several CSE research teams develop collections of smart
learning content that could be reusable across multiple courses and textbooks.
Most of these collections use LTI communication standard that enables smooth
connection of smart content items to all kinds of host systems from LMS to
LTI-compatible textbook platforms like OpenDSA [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Recently, the first
catalog of LTI-compatible smart learning content for CSE has been published [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
This development opens the way to practical application of intelligent content
matching technologies discussed in this paper.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>External Content Allocation Approaches</title>
        <p>
          The problem of allocating learning content from content repositories has been
explored long before smart interactive content became popular. This direction
of research has its roots in similar problems of early learning management
systems. While these systems provided space to be filled with all kinds of learning
content and facilitated its inclusion, it become evident that a single instructor
is not able to create the expected amounts of quality content. To answer the
needs of the instructors, various repositories of learning content (also known as
learning object repositories) were created. Good examples of these repositories
are Ariadne [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] and Merlot [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], which were the focus of many projects exploring
the development and use of content repositories. The original model of work
supported by these repositories was to help users in finding relevant learning content
for specific parts of their courses by ofering flexible search tools. Here the needs
were expressed by the user through queries, and the search tools helped to find
content that matches these needs.
        </p>
        <p>
          The increased popularity of recommender systems encouraged many researchers
to explore the use of recommender technologies to support instructors looking
for relevant content [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. In a typical scenario, by observing user queries and
selected content, a recommender system could learn about user needs and
intention and recommend matching content that the user might not be able to find
by herself [
          <xref ref-type="bibr" rid="ref14 ref16 ref18">14, 16, 18</xref>
          ]. Similarly, the increased popularity of exploratory search
systems such as faceted browsing tools, encouraged an alternative approach to
help users in finding relevant learning content. Instead of investing in artificial
intelligence-based recommendation, these systems seek to augment instructors
own intelligence by providing visualization-based tools that helped them
understand which concepts are covered by each candidate item [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and how this item
ifts into the target place in a course or a textbook [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
        </p>
        <p>The problem of the current generation of content allocation tools is the
amount of human labor they require. The process assumes engagement of
domain experts who should analyze each target context where new content should
be added, formulate a proper query and examine each candidate item. While
recommender systems and content visualization tools help in this process, the
whole procedure is still slow and expensive.</p>
        <p>In response to this problem, a new generation of content matching tools
attempted to further automate the process by building some form of a knowledge
model for each target context, building comparable knowledge models for each
candidate item, and then engage IR and AI approaches for automated matching.
While a human instructor or textbook author might still be required to examine
and approve matching results, the speed and the cost of the matching process
is decreased considerably making it more scalable. Some early examples of this
approach could be found in [19, ?,?]. In this paper, we present and evaluate a
new approach for automated matching of smart content to textbook sections. A
unique feature of this approach is the ability to reconcile diferences between
concepts used to index book sections and concepts used to annotate smart content
by creating a “bridge” between these concept spaces.
3
3.1</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Method</title>
      <sec id="sec-3-1">
        <title>The Textbook</title>
        <p>
          For our experiment on automatic matching of smart content to textbook sections
we have used textbook Python for Everybody - Exploring Data Using Python
3 [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] (PYTHON). We applied our workflow for the automatic extraction of
knowledge models from textbooks [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] to the PYTHON textbook. We identified
the individual index terms from the Index section of the textbook using the
extracted model of the textbook and ensured that these terms represent real
concepts within the domain of Pythin programming [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Additionally, we
collected the set of associated page references for each index term using the model
of the textbook. We refer to the index terms as BookConcepts in the rest of
the paper. In this way, it was possible to link BookConcepts to the sections of
the textbooks. As a result of this process, each book section get connected to a
set of concepts presented in it. We should underline, that these connections are
derived from manually constructed textbooks index, hence they represent not
just occurrences of terms within textbook pages, but places where corresponding
concepts are introduced, explained or elaborated. The overall BookConcepts set
contained 852 concepts identified in the PYTHON textbook.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>The Smart Content</title>
        <p>
          In this work, we use four smart learning content types from several providers
which cover both Python program understanding and construction skills:
Animated Examples (52 items in total), Examples-Challenges (42 items in total),
Tracing Problems (51 items in total) and Parsons Problems (34 items in
total). Each of these items can be individually allocated to a proper place in the
course. Animated Examples show the step-by-step execution of Python code
snippets while making explicit the state of the variables within memory.
ExamplesChallenges are a set of activities that allow students to examine an example
which explains how to solve a problem, and then gives them the option of
solving a similar problem after where they have to drag-and-drop some lines of code
to complete the right solution. Tracing Problems are parameterized problems
that ask students to predict the output or the final value of a variable after
executing a short code snippet. Finally, Parsons Problems are puzzle-like problems
where the lines of code to solve a problem are presented in an unsorted way
so students need to work on putting the lines of code in the right order. More
details about the system with these four type of smart content can be found
in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. All these smart learning activities were automatically annotated with the
concepts of a Python ontology by a parser application that extracted concepts
from the code of the examples and problems.
        </p>
        <p>From here on, we will refer to Tracing Problems (QuizPET) and Parson
Problems as Exercises ; to Animated Examples and Example-Challenges
(Program Construction Examples) as Examples; and to the set of concepts from
the Python ontology used for annotating the Exercises and Examples as
SmartConcepts. In total, the SmartConcepts set contained 48 concepts extracted from
smart content items (i.e., Exercises and Example) used in this work.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>The Bridge between the Two Concept Spaces</title>
        <p>Given that all textbook sections are annotated with BookConcepts and all smart
content items are annotated with SmartConcepts, it is not possible to match
smart content items to book sections directly; rfist, some connections should be
made between these two concept spaces. To create this bridge, all Exercises have
been manually annotated by the course instructor with corresponding
BookConcepts: for each Exercise, the instructor indicated which BookConcepts should be
considered as the expected learning outcomes of these problems (i.e., mastery of
which BookConcepts could be demonstrated by solving a specific exercise).
Unlike the textbook, which provides a very broad account of Python programming,
the collection of the used coding Exercises was much more specific. Hence, the -fi
nal subset of BookConcepts used for annotation included only 47 out of available
852 concepts. Essentially these were the concepts that the learner can master by
practicing with the Exercises.
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Automatic Content Allocation Procedure</title>
        <p>The complete allocation procedure included the following steps.
Assigning book sections to lectures Since we planned to evaluate the
approach in a lecture-based class, content allocation was performed lecture by
lecture. The first step of the process was assigning a set of book sections as
readings for each lecture. As it is usually done in college classes, this step was
performed by the course instructor. By assigning readings to the lectures the
instructor implicitly specified the BookConcepts goal for each lecture, as explained
in the next step.</p>
        <p>
          Creating a BookConcepts Profile of Each Lecture The goal of this step
was creating a formal BookConcepts profile of each lecture as a set of
BookConcepts that each lecture intends to teach. To achieve this goal we first created a
full concept profile of each lecture by creating a union of BookConcepts from all
textbook sections assigned from this lecture and then performed
prerequisiteoutcome separation process originally suggested in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. This process examines
each lecture in sequence starting with the first lecture and separates all
concepts from the full concept profile of a lecture into outcomes, concepts that the
learning targets of the lecture and prerequisites - concepts that are used in this
lecture, but were learning targets of previous lectures. For the first lecture, all
of its full profile concepts are considered as outcomes, for the second only new
concepts are considered as outcomes while all concepts already appearing the the
earlier lectures (even if they are not explicitly mentioned in the lecture) become
prerequisites, an so on.
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>Assigning Exercises to Each Lecture Considering the BookConcepts profile</title>
        <p>of the lecture and the BookConcepts annotation of each Exercise we assign
Exercises to the lecture with the highest number for which the following two rules
are observed: (1) the Exercise should not run ahead of the lecture: all
BookConcepts of an Exercise should be either prerequisites or outcomes of the lecture;
(2) the Exercise should contribute to practicing the lecture goals: at least one
BookConcept annotating the Exercise should be among the lecture outcomes.</p>
        <p>After the first round of automatic exercise assignment, we assessed the results
as explained in Section 4.2. The team examined mismatches, determined the
sources of problems, resolved problems and repeated the allocation step to reach
the 100% correct assignment.</p>
      </sec>
      <sec id="sec-3-6">
        <title>Creating a SmartConcepts Profile for Each Lecture A BookConcepts</title>
        <p>profile of each lecture enabled assignment of Exercises to lectures since all
Exercises were manually annotated by BookConcepts. It was not suficient for direct
assignment of Examples though, as they were only annotated by SmartConcepts.
The solution comes from the fact that Exercises were annotated by both
BookConcepts and SmartConcepts, which created a bridge between the two distinct
concept spaces and enabled us to create a SmartConcepts profile of each lecture.
The process was similar to creating the BookConcepts profile explained above
– we extracted SmartConcepts from all Exercises assigned to each lecture and
performed the prerequisite-outcome separation process explained above. The
result of this process was a list of prerequisite and outcome SmartConcepts for
each lecture (in addition to already obtained list of prerequisite and outcome
BookConcepts ).</p>
      </sec>
      <sec id="sec-3-7">
        <title>Assigning Examples to Each Lecture Since every lecture has been now</title>
        <p>described as a set of BookConcepts and a set of SmartConcepts, we can run an
Example allocation process for each lecture by matching SmartConcepts from
lecture profiles and SmartConcepts from Example annotations. This process was
performed in the same way as Exercise assignment explained before, with the
diference that Example assignment used SmartConcepts instead of
BookConcepts.</p>
        <p>After completing Example assignment, we performed the second round of
evaluation explained in Section 4.3. We discovered and classified additional
problems. Following this analysis, all problems were xfied. At the end of this process
all Examples were assigned to their correct places in the course structure.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The Evaluation and Problem Analysis</title>
      <p>This section provides the reader with the necessary information regarding the
evaluation procedure (in Sect. 4.1) and problem analysis (in Sect. 4.2 and 4.3).
4.1</p>
      <sec id="sec-4-1">
        <title>The Evaluation Procedure</title>
        <p>As explained in Section 3.4, we perform expert evaluation of the automatic
content assignment procedure twice. First round of evaluation was performed to
assess automatic Exercise assignment and the second round to assess
Example assignment. The evaluation was performed from a perspective of a course
instructor examining appropriateness of smart learning content for each of the
course lectures. The goal of evaluation was to detect misplaced content items
and detect potential aflws of the process that led to those misplacements.
Every discovered case of a misplacement was recorded and discussed by the team.
Through these discussions, we have connected each case to a specicfi problem
which are reviewed below in details since understanding of these problems is
critical to improve this and future automatic allocation approaches. It is
important to stress that after achieving this evaluation goal in each round, we fixed
all discovered problems to ensure that the next round starts with in the correct
state. The problems resulting from manual errors were fixed by re-running the
allocation procedure. The problems related to conceptual issues of the process
were fixed manually by allocating each content item to its agreed proper place.</p>
        <p>To facilitate the evaluation process, we placed all allocated content items
into the MasteryGrids interface to experience the content in exactly the same
way as an instructor or a student would see it in a course. Figure 1 presents the</p>
        <p>MasteryGrids interface. The course is shown as a sequence of lectures. Clicking
on each lecture brings up a panel that shows all lecture-related content including
book sections, Examples, and Exercises. Note that green colors that display
individual student knowledge and progress were not used in the examination
process. From this interface, clicking on a specific content item, provides access
to the selected smart content item - see Figure 2 showing an opened
examplechallenge item. Using this interface, the experts analyzed each
automaticallyallocated content item assessing its relevance to the assigned lecture.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Evaluating Exercise Allocation</title>
        <p>The key sources of exercise misallocation were manual annotation “glitches”.
Since manual annotation was done by the single course instructor and without
clearly specified rules, the annotation was in several cases inconsistent or
incomplete. Most interesting among the observed manual annotation problem was the
generality problem. The BookConcepts in the textbook form a taxonomy where a
number of specific concepts are covered by a more general concept. For example,
“for loop” and “while loop” are specific concepts, but both of them are covered
by a more general concept “iteration (loop)”. Similarly, Python prescribes several
specific cases of indentation in loops, functions, conditional statements, etc, but
all of these specific cases are covered by a more general concept of “indentation”.</p>
        <p>It is natural that most textbooks introduce general concepts when two or
more specific cases were presented. I.e., in the PYTHON book, the rfist code
examples with indentations were introduced in Chapter 3, but it explicitly appears
as a concept and becomes a part of the BookConcepts profile of a section only
in Chapter 4, by which time several indentation cases are presented and the
introduction of this general concept becomes meaningful. Due to this role of more
general concepts, many cases where the instructor used a general BookConcept
(like “iteration (loop)” or “indentation”) lead to exercise misplacement. I.e., if
an exercise that really belongs to Chapter 3 was indexed with “indentation”
(because, indentation was featured in the exercise code) it will be allocated to
Chapter 4 since this is the first place where this BookConcept appears.</p>
        <p>
          We concluded that all observed manual annotation issues could be resolved
by creating more formal rules of annotation assembled in a “codebook”, for
example, as suggested in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. One of these rules should be exclusion of overly
general concepts like loop, indentation, statement, etc. from content annotation.
To fix these problems, the instructor reviewed annotations of Exercises making
them more consistent, removing more general concepts and only keeping the
specific ones. For example, “iteration” as an initial concept was replaced by “for
loop” and “while loop”. After that, automatic exercise allocation process was
repeated, which fixed all the observed errors.
4.3
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Evaluating Example Allocation</title>
        <p>In total, our automatic content allocation procedure assigned 94 Examples to
the lectures. Among them, 80 Examples were allocated correctly and 14 had to
be manually reallocated. In other words, the automatic content allocation was
successful more than 85% of the time. The cases of wrong example allocations
were distilled to two main groups of issues, namely coverage-related and
parserrelated (imperfect matching) issues which are explained below.</p>
        <p>Coverage-related issues Coverage-related issues have their roots in clusters
of similar concepts in programming languages, such as a set of arithmetic
operation concepts, that are usually learned together in the same lecture. Due to their
similarity, instructors rarely pay attention whether or not all of these concepts
are covered by lecture Examples or practice problems. This is what happened
more than once in our case. Despite several Exercises specifically targeting
simple arithmetic operations, all correctly allocated to Lecture 3, none of them
included “floor division” operation. As a result, “floor division” concept has not
been added to the SmartConcepts profile of Lecture 3. At the same time, “oflor
division” appeared as a part of code in one of Lecture 5 problems. While it was
a side concept there, it was the first lecture where “floor division” appeared and
it was added as one of the outcomes to the Lecture 5 SmartConcepts profile.</p>
        <p>However, some of the Examples focusing on practicing arithmetic operations
did include “integer division” in their code. (see Figure 2). The parser
successfully identified “floor division” concept in this Example’s code (see Lines 12 and
15) and included it in its annotation. As a result, this Example was allocated to
Lecture 5 instead of its correct placement in Lecture 3.</p>
        <p>In our evaluation study, we observed 4 coverage-related issues which had to
be reallocated manually. This reallocation comprised 4.2% of all cases. A possible
long-term solution for this category of problems would be using concept grouping
techniques: a set of concepts (such as “arithmetic operations” that are usually
introduced and practiced together should be combined into an “unbreakable
group”. Whenever one of the concepts in such a group is added to a set of
concept outcome of a specific lecture, the rest of them should be added too.
Parser-related issues (imperfect annotation) Several misallocation cases
were traced to the insuficient sensitivity of the parser used to extract
SmartConcepts from the code of smart content items. Most of these errors were related
to the minimalistic approach to syntax in Python where the same syntactic
form is used to express concepts that are semantically or pedagogically
diferent. For example, the parser was not able to recognize important file operations
open(file) and file.close(), since from syntactic prospect, these cases are
not diferent from any other functions or methods. As a result, instead of being
assigned to a lecture covering work with files, these Examples were misallocated
to a lecture on functions and methods. We had to reallocate three examples of
this kind, which comprised 3.2% of Examples.</p>
        <p>Similarly, the parser was not able to identify the use of a “class constructor”
as a special case since it was also looking just like any other function call (see
Figure 3). It resulted in misallocation of two examples which were not placed
into a lecture on object-oriented programming where they belong. We had to
manually reallocate two Examples of this kind, which comprises 2.1% of all
Examples.</p>
        <p>Yet another example, is a parser’s failure to recognize a special case of
.format() expression. The corresponding Examples should have been allocated
to the “string methods and regular expression” lecture, but for our parser it was
looking just like any other attribute causing these Examples to be misallocated.
To fix this issue, we had to reallocate five Examples from the prior lecture to
the corresponding lecture (5.3% of the Examples set).</p>
        <p>
          All of these cases point to the weakness of the current parser version. A
longterm solution to the observed problem is to refine the parser so that concepts that
are similar syntactically but diferent pedagogically are recognized as diferent
concepts. When developing a concept parser for Java [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] we achieved this goal
by creating a syntax-independent Java ontology and creating rules to match
leaves of Abstract Syntax Tree to ontology concepts. For Python, however, we
used a simplified version of the parser.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we presented the first evaluation of our automatic smart content
allocation procedure based on automatic annotation of a textbook and a
collection of smart content for programming. We focused the paper on examining
cases of misallocation detected during expert evaluation process. We believe, this
analysis is important for the progress of research on automated content
allocation and enrichment of textbooks with interactivity. We are currently running a
classroom study to explore to what extent the results of our automated
allocation were acceptable to students. In our future work, we will focus on resolving
the problems discovered in this study through developing a content allocation
“codebook” for instructors and a better version of the smart content parser.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Albo,´ L.,
          <string-name>
            <surname>Barria-Pineda</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <article-title>Hernan´dez-</article-title>
          <string-name>
            <surname>Leo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Concept-level design analytics for blended courses</article-title>
          .
          <source>In: 14th European Conference on Technology Enhanced Learning (EC-TEL 2019)</source>
          . vol.
          <volume>11722</volume>
          , p.
          <fpage>541</fpage>
          -
          <lpage>554</lpage>
          . Springer International Publishing (
          <year>2019</year>
          ), https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -29736-7 40
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alpizar-Chacon</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sosnovsky</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Knowledge models from pdf textbooks</article-title>
          .
          <source>New Review of Hypermedia and Multimedia</source>
          <volume>27</volume>
          (
          <issue>1-2</issue>
          ),
          <fpage>128</fpage>
          -
          <lpage>176</lpage>
          (
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Alpizar-Chacon</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sosnovsky</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>What's in an index: Extracting domain-specific knowledge graphs from textbooks</article-title>
          .
          <source>In: Proceedings of the ACM Web Conference 2022 (WWW '22)</source>
          . pp.
          <fpage>966</fpage>
          -
          <lpage>976</lpage>
          (
          <year>2022</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Edwards</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malmi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benotti</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buck</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ihantola</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prince</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Sirkai,¨ T.,
          <string-name>
            <surname>Sosnovsky</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urquiza</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vihavainen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wollowski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Increasing adoption of smart learning content for computer science education</article-title>
          .
          <source>In: Working Group Reports of the 2014 on Innovation and Technology in Computer Science Education Conference</source>
          . pp.
          <fpage>31</fpage>
          -
          <lpage>57</lpage>
          . ACM (
          <year>2014</year>
          ). https://doi.org/10.1145/2713609.2713611
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malmi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hosseini</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Sirkai,¨ T.,
          <string-name>
            <surname>Pollari-Malmi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>An integrated practice system for learning programming in python: design and evaluation</article-title>
          .
          <source>Research and Practice in Technology Enhanced Learning</source>
          <volume>13</volume>
          (
          <issue>18</issue>
          ),
          <volume>18</volume>
          .
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          .40 (
          <year>2018</year>
          ). https://doi.org/10.1186/s41039-018-0085-9
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwarz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Electronic textbooks on www: from static hypertext to interactivity and adaptivity</article-title>
          .
          <source>Web Based Instruction. Educational Technology Publications, Englewood Clifs</source>
          , New Jersey pp.
          <fpage>255</fpage>
          -
          <lpage>261</lpage>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sosnovsky</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yudelson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chavan</surname>
          </string-name>
          , G.:
          <article-title>Interactive authoring support for adaptive educational systems</article-title>
          .
          <source>In: 12th International Conference on Artificial Intelligence in Education</source>
          , AIED'
          <year>2005</year>
          . pp.
          <fpage>96</fpage>
          -
          <lpage>103</lpage>
          . IOS Press (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Cafolla</surname>
          </string-name>
          , R.:
          <article-title>Project merlot: Bringing peer review to web-based educational resources</article-title>
          .
          <source>Journal of Technology and Teacher Education</source>
          <volume>14</volume>
          (
          <issue>2</issue>
          ),
          <fpage>313</fpage>
          -
          <lpage>323</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ericsson</surname>
            ,
            <given-names>K.A.</given-names>
          </string-name>
          :
          <article-title>Towards a science of the acquisition of expert performance in sports: Clarifying the diferences between deliberate practice and other types of practice</article-title>
          .
          <source>Journal of sports sciences 38(2)</source>
          ,
          <fpage>159</fpage>
          -
          <lpage>176</lpage>
          (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Fouh</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karavirta</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breakiron</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamouda</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naps</surname>
            ,
            <given-names>T.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shaffer</surname>
            ,
            <given-names>C.A.</given-names>
          </string-name>
          :
          <article-title>Design and architecture of an interactive etextbook-the opendsa system</article-title>
          .
          <source>Science of computer programming 88</source>
          ,
          <fpage>22</fpage>
          -
          <lpage>40</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hicks</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Akhuseyinoglu</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shafer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Live catalog of smart learning objects for computer science education</article-title>
          .
          <source>In: Sixth SPLICE Workshop ”Building an Infrastructure for Computer Science Education Research and Practice at Scale” at ACM Learning at Scale</source>
          <year>2020</year>
          (
          <year>2020</year>
          ), https://cssplice.github.
          <source>io/LAS20/proc/SPLICE 2020 LS paper 7</source>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hosseini</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Javaparser: A fine-grain concept indexing tool for java problems</article-title>
          .
          <source>In: The First Workshop on AI-supported Education for Computer Science (AIEDCS) at the 16th Annual Conference on Artificial Intelligence in Education, AIED 2013</source>
          . pp.
          <fpage>60</fpage>
          -
          <lpage>63</lpage>
          (
          <year>2013</year>
          ), https://sites.google.com/site/aiedcs2013/proceedings
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Manouselis</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drachsler</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbert</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duval</surname>
          </string-name>
          , E.:
          <source>Recommender Systems for Learning</source>
          . Springer, Berlin (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Manouselis</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kosmopoulos</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kastrantas</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Developing a recommendation web service for a federation of learning repositories</article-title>
          .
          <source>In: 2009 Int. Conference on Intelligent Networking and Collaborative Systems</source>
          . pp.
          <fpage>208</fpage>
          -
          <lpage>211</lpage>
          . IEEE (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Ro¨ßling, G.,
          <string-name>
            <surname>Naps</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karavirta</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kerren</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leska</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oechsle</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodger</surname>
            ,
            <given-names>S.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urquiza-Fuentes</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , et al.:
          <article-title>Merging interactive visualizations with hypertextbooks and course management</article-title>
          . In: Working group reports
          <article-title>on ITiCSE on Innovation and tech</article-title>
          .
          <source>in comp. science education</source>
          , pp.
          <fpage>166</fpage>
          -
          <lpage>181</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ruiz-Iniesta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Jimen´
          <fpage>ez</fpage>
          - Dıa´ z, G.,
          <article-title>Gom´ez-Albarar´n, M.: User-adaptive recommendation techniques in repositories of learning objects: Combining long-term and short-term learning goals</article-title>
          .
          <source>In: 4th European Conference on Technology Enhanced Learning (ECTEL 2009). Lecture Notes in Computer Science</source>
          , vol.
          <volume>5794</volume>
          , pp.
          <fpage>645</fpage>
          -
          <lpage>650</lpage>
          . Springer-Verlag (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Severance</surname>
            ,
            <given-names>C.R.</given-names>
          </string-name>
          :
          <article-title>Python for everybody: Exploring Data using python 3</article-title>
          . CreateSpace Independent Publishing (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Sicilia</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garıac</surname>
            ´ -Barriocanal, E., San´chez-Alonso,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cechinel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Exploring user-based recommender results in large learning object repositories: the case of merlot</article-title>
          .
          <source>In: 1st Workshop on Recommender Systems for Technology Enhanced Learning (RecSysTEL</source>
          <year>2010</year>
          )
          <article-title>at the 2010 ACM conference on Recommender systems</article-title>
          ,
          <source>RecSys '10</source>
          . vol.
          <volume>1</volume>
          (
          <issue>2</issue>
          ), p.
          <fpage>2839</fpage>
          -
          <lpage>2848</lpage>
          . ACM (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Sosnovsky</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hsiao</surname>
            ,
            <given-names>I.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , et al.:
          <article-title>Adaptation “in the wild”: ontology-based personalization of open-corpus learning material</article-title>
          .
          <source>In: European Conference on Technology Enhanced Learning</source>
          . pp.
          <fpage>425</fpage>
          -
          <lpage>431</lpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Verhoeven</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cardinaels</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van</surname>
            <given-names>Durm</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Duval</surname>
          </string-name>
          ,
          <string-name>
            <surname>E.</surname>
          </string-name>
          , Olivei,´ H.:
          <article-title>Experiences with the ariadne pedagogical document repository</article-title>
          .
          <source>In: ED-MEDIA'2001 - World Conference on Educational Multimedia, Hypermedia and Telecommunications</source>
          . pp.
          <fpage>1949</fpage>
          -
          <lpage>1954</lpage>
          . AACE (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chau</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thaker</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Knowledge annotation for intelligent textbooks</article-title>
          .
          <source>Technology, Knowledge and Learning</source>
          p. in press (
          <year>2021</year>
          ), https://link.springer.com/article/10.1007/s10758-021-09544-z
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>