The working architecture of the Learning Tracker has three components as shown in the figure below.
- edX component - integrating the Learning Tracker on edX course pages (JavaScript).
- Server backend - hosting a Tomcat servlet that generates the Learning Tracker script for each learner when requests are made from the edX course pages (Java8).
- Local component - computing the information to be displayed on the widget based on the data extracted from the trace logs of learners (Java8).
In essence, the Learning Tracker is a JavaScript script embedded in the edX MOOC pages as part of the course material. The widget is plotted using Highcharts. The documentation for customizing the widget is here.
An example of a widget script is included in the file edx_integration.
The server backend serves two purposes:
- storing online the learner data that is to be displayed on the widget
- generating the widget script for a learner
Storing learner data The data is stored in a mySQL database and updated weekly.
TODO: database diagram
Generating widget scripts The server also accepts HTTPS requests from the edX pages that request the script of a specific learnerss. The request has two parameters: learner's anonymous id and the week. The server backend is implemented as a Tomcat servlet that receives HTTPS requests and responds with the generated Learning Tracker script as a string.
Any changes in the widget interface design should be made in the script generation Tomcat servlet.
The offline component is used for calculating the metrics to be displayed on the widget based on data extracted from edX trace logs:
- calculating the average graduate profile
- calculating the profile for each learner
The code for the local, offline component is included in the folder metric_calculation. he code for generating the metric values and the script are customizable for every run of the experiment. The current implementation calculates 13 metrics as presented below. The metrics to be displayed on the Learning Tracker are selected in the initialize
method of the MetricComputation
class.
The metrics are calculated considering data generated from the first day of the course.
- Number of sessions per week
- Average length of a session (in minutes)
- Average time between sessions (in hours)
- Number of forum session
- Number of quiz questions attempted
- Timeliness of quiz answers submission (in hours)
- Number of sessions logged
- Number of videos accessed
- Time spent on the platform (in seconds)
- Average time spent on the platform per week (in seconds)
- Proportion of time spent on assignments (graded quiz questions)
- Number of video lectures re-visited
- Number of forum contributions
Thresholds are calculated using the method computeThreshold
in the class MetricComputation
. The results will be placed in the folder thresholds
and used in the subsequent steps.