There are two types of exports:
Course Data (if allowed by your organisation)
Content Data
Course Data
If your organisation allows it the Grasple platform offers you the possibility to export
different datasets related to a course in a CSV format. These exports can be found on the dedicated 'Data Export' page. This page can be reached via both the monitor and the test-page for a course.
If you do not see this option either your organisation does not offer this possibility, or you are not a teacher in the course which you want to export data from.
Content Data
NOTE: The goal is to allow you as a teacher to export all content by yourself in several (machine readable) formats. Currently, we are not there yet. If you want to export content, please reach out to our support (via chat icon in the bottom right).
A first export is available for templated exercises: the parameter values export. You can export the parameter values by clicking on the "export values" button in the parameter editor section. See below an example:
The exported dataset will have the following format:
the first row contains the header
the first column contains the template_row_id
each row contains the template_row_id and the LateX value of parameter for that template_row_id
Available Course Datasets
The data export page currently offers the following datasets, which can be divided into two groups.
Structure datasets:
Course Structure - the structure of the course
Course Students - all (un)registered students in a course
Subjects - all subjects of a course with aggregated data
Tests - all test of a course with aggregated data
Progress datasets:
Student Progress - the progress (based on activity) of single student within this course
Lesson Attempts - all lesson attempts of all students for all subjects in this course
Subject Attempts - all practice attempts of all students for all subjects in this course
Subject Results - the highest score for all students for all subjects in this course
Subject Answers - all answers given for all attempts of all students for all subjects in this course
Test Attempts - all attempts of all students for all tests in this course
Test Results - the highest score for all students for all tests in this course
Test Answers - all answers given for all attempts of all students for all selected tests in this course
Below you can find the column descriptions of each dataset. Please feel free to reach out to us if anything is unclear or if you are missing any data.
Date filtering:
The export page offers you the possibility to filter the datasets based on a start-date and an end-date. These dates are only taken into account for the progress datasets. Only attempts / answers started after the start-date and before the end-date will be included.
In addition, the 'finished' status takes into account the end-date. Thus, a test-attempt which is not submitted before the end-date will not be taken into account in, for example, the calculation of the highest score. The goal is to mimic the behaviour of the export page as if you would have exported the data on the specified end-date.
Important considerations
The data export functionality comes with three important notes.
First, please be aware that the datasets are currently not filtered on, for example, time and content. By offering you detailed datasets we hope to give you the flexibility to analyse the data in the way you desire.
Secondly, the data is collected in a non-controlled setting. Please take into account the data disclaimer when analysing the data and making conclusions.
Also, the datasets can contain personal information of students. Please take into account the guidelines of your institution when handling and processing this data. When downloading the data it becomes your responsibility.
Lastly, one important note for Excel users. For some of the exports the data in the CSV can cause Excel to split the data incorrectly. To prevent this from happening we recommend Excel users to import a CSV file via the 'import' functionality, which can be found under the `Open > Import` menu item.
Detailed descriptions of the datasets
The following sections each describe the details of a data-set.
Note: for all datasets we add a column 'student_id' after the other user-related columns if this data is available for your organisation.
Course Structure
A row represents: a single course element
Available columns:
id: the id of the course element
type: the type of the course element, either ‘test’ or ‘subject
name: the name of the course element’
element_index: the index of the element in the module, lower means earlier in the module.
module_name: the name of the module this element belongs to
module_index: the index of the module in the course structure, lower means earlier in the course
Course Students
A row represents: a single student in the course
Available columns:
user_id: the id of the user (can be empty if the user is not registered)
name: the name of the user
email: the email address of the user
registered: whether the user is registered in the course
group_name: the name of the course-group a student is in (possibly empty)
Student Progress
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
#exercisesAnswered: the total number of answers given in a subject exercises part or a test
#correctAnswers: the total number of correct answers given in the first answer attempt
#subjectsCompleted: the number of unique subjects completed by practice in the given context
#testsCompleted: the number of unique tests completed in the given context
Note: this dataset is purely based on the activity of a student in the platform. Therefore, the progress of a student does not necessarily correspond to the colours on the level-map as the latter one also changes based on test results.
Subjects
A row represents: a single subject
Available columns:
subject_id: a unique identifier for the subject
subject_name: the name of the subject
#studentsStartedExercises: the total number of students which started the exercises of this subject
#studentsFinishedExercises: the total number of students which finished the exercises of this subject
hasLesson: boolean indicating whether the subject has a lesson part
#exercisesAnswered: the total number of answers given to exercises in this subject
averageScore: the average of the highest score per student that finished an exercise-session in this subject
Lesson Attempts
A row represents: a single attempt of a student for the lesson part of a subject
Available columns:
subject_id: a unique identifier for the subject
subject_name: the name of the subject
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
finished: a boolean indicating whether the attempt is completed
started_at: the timestamp of when the attempt was started
finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)
Subject Attempts
A row represents: a single attempt of a student for the exercises part of a subject
Available columns:
subject_id: a unique identifier for the subject
subject_name: the name of the subject
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
#exercisesAnswered: the total number of answers given to exercises in this attempt
score: the score calculated for this attempt (empty if attempt is not finished)
finished: a boolean indicating whether the attempt is completed
started_at: the timestamp of when the attempt was started
finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)
Subject Results
A row represents: the (highest) score for a student / subject combination
Available columns:
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
subject_id: a unique identifier for the subject
subject_name: the name of the subject
subject_index: the index of the subject in the complete course
max_score: the highest score obtained for this student on this this, '-' if there is no score.
Note: this dataset contains a row for each student / subject combination in the course, not only the rows for students that attempted a given subject.
Also note that this dataset is purely based on the activity of a student in the platform. Therefore, the result of a student does not necessarily correspond to the colours on the level-map as the latter one also changes based on test results.
Options:
Create pivot table with subjects as columns:
When selected output of the dataset will be changed into the following format:
A row represent: all highest scores of a single student
Available columns:
- user_id: a unique identifier for a user
- user_name: the name of the user
- user_email: the email address of the user
- [subject-name]: the highest score of this subject for the student
This column is repeated for all subjects in the course.
Subject Answers
A row represents: a single answer given for a question in an attempt of a student for a subject practice session.
Available columns:
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
started_subject: whether the student started the subject
subject_id: a unique identifier for the subject
subject_name: the name of the subject
subject_index: the index of the subject in the complete course
subject_session_id: the unique id of this practice session
subject_session_started_at: the date at which the practice session was started
subject_session_completed_at: the date at which the practice session was completed
subject_session_completed: boolean indicating if the student completed this practice session
exercise_id: the unique id of the (sub)question which was answered
template_row_id: the row id of the placeholders served to the student
main_exercise_id: the unique id of the main exercise of this exercise, which is the same as exercise_id if this question is the top-level question
main_exercise_version: the version of the exercise which the user received
open_answer: the answer which as entered by the student in case of an open question
mc_answer_id: the unique id of the multiple-choice answer chosen by the student
mc_answer: the cleaned HTML of the chosen multiple-choice answer
correct: signals whether the answer was marked as correct (1) or incorrect (0)
skipped: indicates whether the exercise was skipped (1) or not (0)
scored_points: the number of points received for this question attempt
answer_rule_id: the unique id of the answer rule which has been matched for this open answer. Not available for multiple-choice exercises or if no match was found
invalid_input: indicates whether the received input resulted in a parse error. If parsing of the answer resulted in an error the value will be 1, otherwise it well be 0
exercise_answered_at: the timestamp when the last answer was received by the system. Can be missing if no answer was given
Note: by default this dataset contains a row for each student / subject combination in the course, not only the rows for students that attempted a given subject. If you only want to have the given answers (or if you need to reduce the size of the exported data) you can filter out all students which did not provide answers using the Filter out empty student / subject combinations
option.
Note: this dataset can only be exported in weekly batches, which means it only contains answers submitted a given week. Since practice sessions can span multiple weeks, the subject_session_started_at
and subject_session_completed_at
can fall outside the range of the week.
You can choose the exact range which you want the export in the filters on the top of the export page. If you do not specify a range the export will contain the data of the last 7 days. Should you only specify the start-date or the end-date the chosen range will be a week starting from / ending at the given date. If you specify a range which is longer than 7 days only the first 7 days of starting from the start-date will be included.
Tests
A row represents: a single test in the course
Available columns:
test_id: a unique identifier for the test
test_name: the name of the test
#studentsStarted: the total number of students which started this test
#studentsFinished: the total number of students which finished this test
#exercisesAnswered: the total number of answers given to exercises in this test
averageScore: the average of the highest score per student that finished the test
Test Attempts
A row represents: a single attempt of a student for a test
Available columns:
test_id: a unique identifier for the test
test_name: the name of the test
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
score: the score of this attempt (empty if attempt is not finished)
finished: a boolean indicating whether the attempt is completed
started_at: the timestamp of when the attempt was started
finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)
Test Results
A row represents: the (highest) score for a student / test combination
Available columns:
user_id: a unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
test_id: a unique identifier for the test
test_name: the name of the test
test_index: the index of the test in the complete course
max_score: the highest score obtained for this student on this this, '-' if there is no score.
Note: this dataset contains a row for each student / test combination in the course, not only the rows for students that attempted a given test.
Options:
Create pivot table with tests as columns:
When selected output of the dataset will be changed into the following format:
A row represent: all highest scores of a single student
Available columns:
- user_id: a unique identifier for a user
- user_name: the name of the user
- user_email: the email address of the user
- [test-name]: the highest score of this test for the student
This column is repeated for all tests in the course.
Test Answers
A row represents: a single answer given for a question in an attempt of a student for a test.
Available columns:
user_id: the unique identifier for a user
user_name: the name of the user
user_email: the email address of the user
started_test: indicates if the student started the test (1) or not (0)
test_id: the unique identifier for the test
test_name: the name of the test
test_index: the index of the test in the course
test_attempt_id: the unique id of this attempt
test_attempt_completed_at: the date at which the test attempt was completed
exercise_id: the unique id of the (sub)question which was answered
template_row_id: the row id of the placeholders served to the student
main_exercise_id: the unique id of the main exercise of this exercise, which is the same as exercise_id if this question is the top-level question
main_exercise_version: the version of the exercise which the user received
open_answer_raw: the answer which as entered by the student in case of an open question
open_answer_processed: the answer as interpreted by the system
mc_answer_id: the unique id of the multiple-choice answer chosen by the student
mc_answer: the cleaned HTML of the chosen multiple-choice answer
correct: signals whether the answer was marked as correct (1) or incorrect (0)
scored_points: the number of points received for this question
max_points: the maximum number of points a student could receive for this exercise
answer_rule_id: the unique id of the answer rule which has been matched for this open answer. Not available for multiple-choice exercises or if no match was found
invalid_input: indicates whether the received input resulted in a parse error. If parsing of the answer resulted in an error the value will be 1, otherwise it well be 0
skipped: indicates whether the exercise was skipped (1) or not (0)
evaluated: indicates whether the exercise was evaluated (1) or not (0). Exercises are not evaluated if they are skipped, or if there was a problem during the evaluation of the answer (see column "evaluation_error" and "skipped" for more detail).
NOTE: since 20/05/2021 this value now equals to 0 when a syntax error occurred. Before the value was equal to 1 when a syntax error occurred.evaluation_error: indicates whether there was a problem with the evaluation of the answer (1) or not (0). This values remains 1 or 0 independent on whether the answer has been manually_adjusted (see below).
NOTE: since 20/05/2021 this value also equals to 1 when a syntax error occurred. Before the value was equal to 0 when a syntax error occurred.manually_adjusted: indicates whether the current marking of this answer is based on a manual evaluation by a teacher or not. The value is equal to 1 if the answer has been manually evaluated and 0 if not.
exercise_answered_at: the timestamp when the last answer was received by the system. Can be missing if no answer was given
exercise_received_at: the timestamp when the exercise was served to the student for the first time. Can be after the end time of the attempt if the attempts has been automatically closed at the end-time of the test attempt.
question_pool_name: the name of the question pool if the test uses question pools. This value is empty if no question pools are used.
question_pool_id: the unique id of the question pool if the test uses question pools. This value is empty if no question pools are used.
Note: this dataset contains a row for each student / test combination in the course, not only the rows for students that attempted a given test.
Options:
Only include data of selected test:
Select a single test to only export answers of the chosen test. By default all answers for all tests are exported.