old different roles for participation in peer learning sessions, where is used to present providing peer learning support, for seeking peer learning support, and for searching for study partners. refers to an arbitrary role. A four-dimensional array represents the requests of the students, where indicates that user has indicated interest in participating in a study session on knowledge unit with role at timestamp . In addition, a three-dimensional array represents the availability of students, where shows the availability of user for time slot at timestamp . Furthermore, A three-dimensional array shows competency preference of students in study sessions, where shows the competency preference of user for roles at timestamp . For example, means that at timestamp , prefers providing support to peers with a competency of around less than his own. To be able to provide meaningful recommendations, we constrain eligibility by role such that users (1) provide support to less competent learners, (2) seek support from more competent learners and (3) find study partners with relatively similar competency to that of their own. Using all of this information, RiPPLE aims to compute a three-dimensional array , where shows the reciprocal score between user and user at timestamp . can be used for recommending peers to one another.
Table 1 provides a summary of the notation used for describing the functionality of RiPPLE.
|Users and Questions|
|A set of users , where and refer to arbitrary users.|
|A set of questions , where and refer to arbitrary questions.|
|A set of time stamps , where refers to an arbitrary timestamp.|
|A three-dimensional array where indicates that user has created question at timestamp .|
|A three-dimensional array where indicates that user has answered question correctly at timestamp and 0 if answered incorrectly.|
|A three-dimensional array where is the difficulty level user has expressed for question at timestamp .|
|A three-dimensional array, where is the rating user has expressed for question at timestamp .|
|Knowledge Tracing and Question Recommendation|
|A set of knowledge units referred to as knowledge space where refers to an arbitrary knowledge unit.|
|A matrix, where is if question is tagged with knowledge units, including and 0 otherwise.|
|A three-dimensional array, where represents the knowledge state of on at timestamp .|
|A three-dimensional array, where shows the personalised score of question for user at timestamp .|
|Reciprocal Peer Recommendation|
|A set of time slots , which denote the weekly available time slots for scheduling a study session, where refers to an arbitrary time slot.|
|A set of roles for participation in peer learning sessions where is used to present providing peer learning support, for seeking peer learning support, and for searching for study partners. refers to an arbitrary role.|
|A four-dimensional array, where indicates that user has indicated interest in participating in a study session on knowledge unit with role at timestamp .|
|A three-dimensional array in which shows the availability of user for time slot at timestamp .|
|A three-dimensional array in which shows the competency preference of user for roles at timestamp .|
|A three-dimensional array, where shows the reciprocal score between user and user at timestamp .|
4 The RiPPLE Platform
This section presents an overview of the main features and functionalities that are supported by RiPPLE.
4.1 Creating and Answering Questions
There are many benefits in engaging students as partners in co-creation of educational content [Bovill et al. (2011)], and in particular, in creation of multiple-choice questions [Denny et al. (2008)]. RiPPLE enables students to create questions and share them with their peers. Figure 1 shows the graphical interface used in RiPPLE for creating questions.
Creating a question includes the following steps:
Developing the body of the question. Text, images, videos and scientific formulas may be used in the development of the body of the question.
Tagging the question with one to four topics. The 