The mart_taskforce.level1_aggregated mart aggregates data about a student’s performance and activities in a course on a weekly basis.

BQ Prod Dataset Locations

  • mart_taskforce

Schema

mart/taskforce/level1_aggregated

Field Name

Type 

Description

udp_person_id

INTEGER

The UDP ID of the student. 

lms_person_id

STRING

The LMS ID of the student.

udp_course_offering_id

INTEGER

The UDP ID of the course offering. 

lms_course_offering_id

STRING

The LMS ID of the course offering.

week_in_term

INTEGER

The week of the academic term. 

num_tiny_submissions

INTEGER

The number of submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

num_small_submissions

INTEGER

The number of submissions classified as ‘small’, or making up a small percentage of the student’s final grade. 

num_medium_submissions

INTEGER

The number of submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

num_large_submissions

INTEGER

The number of submissions classified as ‘large’, or making up a large percentage of the student’s final grade. 

num_major_submissions

INTEGER

The number of submissions classified as ‘major’, or making up a major percentage of the student’s final grade. 

num_unweighted_submissions

INTEGER

The number of unweighted submissions.

num_submissions_without_due_date

INTEGER

The number of submissions without due dates. 

num_submissions_with_due_date

INTEGER

The number of submissions with due dates. 

num_submissions

INTEGER

The total number of submissions. 

num_tiny_assignments

INTEGER

The number of assignments classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

num_small_assignments

INTEGER

The number of assignments classified as ‘small’, or making up a small percentage of the student’s final grade. 

num_medium_assignments

INTEGER

The number of assignments classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

num_large_assignments

INTEGER

The number of assignments classified as ‘large’, or making up a large percentage of the student’s final grade. 

num_major_assignments

INTEGER

The number of assignments classified as ‘major’, or making up a major percentage of the student’s final grade. 

num_unweighted_assignments

INTEGER

The number of unweighted assignments.

num_assignments_without_due_date

INTEGER

The number of assignments without due dates. 

num_assignments_with_due_date

INTEGER

The number of assignments with due dates. 

num_assignments

INTEGER

The total number of assignments. 

num_tiny_missing_submissions

INTEGER

The number of missing submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

num_small_missing_submissions

INTEGER

The number of missing submissions classified as ‘small’, or making up a small percentage of the student’s final grade. 

num_medium_missing_submissions

INTEGER

The number of missing submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

num_large_missing_submissions

INTEGER

The number of missing submissions classified as ‘large’, or making up a large percentage of the student’s final grade. 

num_major_missing_submissions

INTEGER

The number of missing submissions classified as ‘major’, or making up a major percentage of the student’s final grade. 

num_unweighted_missing_submissions

INTEGER

The number of unweighted missing submissions. 

num_missing_submissions

INTEGER

The total number of missing submissions. 

num_tiny_late_submissions

INTEGER

The number of late submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

num_small_late_submissions

INTEGER

The number of late submissions classified as ‘small’, or making up a small percentage of the student’s final grade. 

num_medium_late_submissions

INTEGER

The number of late submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

num_large_late_submissions

INTEGER

The number of late submissions classified as ‘large’, or making up a large percentage of the student’s final grade. 

num_major_late_submissions

INTEGER

The number of late submissions classified as ‘major’, or making up a major percentage of the student’s final grade. 

num_unweighted_late_submissions

INTEGER

The number of unweighted late submissions.

num_late_submissions

INTEGER

The total number of late submissions. 

avg_time_buffer_hrs_tiny

FLOAT

The average submission time buffer in hours for submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

avg_time_buffer_hrs_small

FLOAT

The average submission time buffer in hours for submissions classified as ‘small’, or making up a small percentage of the student’s final grade. 

avg_time_buffer_hrs_medium

FLOAT

The average submission time buffer in hours for submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

avg_time_buffer_hrs_large

FLOAT

The average submission time buffer in hours for submissions classified as ‘large’, or making up a large percentage of the student’s final grade. 

avg_time_buffer_hrs_major

FLOAT

The average submission time buffer in hours for submissions classified as ‘major’, or making up a major percentage of the student’s final grade. 

avg_time_buffer_hrs_unweighted

FLOAT

The average submission time buffer in hours for unweighted submissions. 

avg_time_buffer_hrs

FLOAT

The average submission time buffer in hours for all submissions.

avg_published_score_pct_tiny

NUMERIC

The average published score percentage for submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade. 

avg_published_score_pct_small

NUMERIC

The average published score percentage for submissions classified as ‘small’, or making up a small percentage of the student’s final grade. 

avg_published_score_pct_medium

NUMERIC

The average published score percentage for submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade. 

avg_published_score_pct_large

NUMERIC

The average published score percentage for submissions classified as ‘large’, or making up a large percentage of the student’s final grade. 

avg_published_score_pct_major

NUMERIC

The average published score percentage for submissions classified as ‘major’, or making up a major percentage of the student’s final grade. 

avg_score_pct_unweighted

NUMERIC

The average score percentage for unweighted submissions. 

avg_published_score_pct_without_due_date

NUMERIC

The average published score percentage for submissions without due dates.

avg_published_score_pct_with_due_date

NUMERIC

The average published score percentage for submissions with due dates

avg_published_score

NUMERIC

The average published score percentage for all submissions.

discussion_entry_count

INTEGER

The number of discussion entries posted by the student. 

discussion_post_count

INTEGER

The number of discussion posts posted by the student. 

discussion_reply_count

INTEGER

The number of discussion replies posted by the student.

discussion_count

INTEGER

The total number of discussions interacted with by the student.

assignment_discussion_count

INTEGER

The total number of discussions associated with an assignment interacted with by the student.

threaded_discussion_count

INTEGER

The total number of threaded discussions interacted with by the student.

side_comment_discussion_count

INTEGER

The total number of side comment discussions interacted with by the student. 

total_discussion_count

INTEGER

The total number of discussions available in the course offering.

total_assignment_discussion_count

INTEGER

The total number of discussions associated with assignments available in the course offering. 

total_threaded_discussion_count

INTEGER

The total number of threaded discussions available in the course offering.

total_side_comment_discussion_count

INTEGER

The total number of side comment discussions available in the course offering.

avg_discussion_entry_length

FLOAT

The average length of the student’s discussion entries.

avg_discussion_post_length

FLOAT

The average length of the student’s discussion posts.

avg_discussion_reply_length

FLOAT

The average length of the student’s discussion replies.

view_days

INTEGER

The number of view days in the LMS.

num_sessions_10min

INTEGER

The number of sessions in the LMS, with a 10 minute cutoff when calculating sessions. 

total_time_seconds_10min

INTEGER

The total time spent in the LMS in seconds, with a 10 minute cutoff when calculating sessions. 

total_actions_10min

INTEGER

The total number of actions in the LMS, with a 10 minute cutoff when calculating sessions.

avg_time_seconds_10min

FLOAT

The average amount of time spent in the LMS in seconds, with a 10 minute cutoff when calculating sessions. 

avg_actions_10min

FLOAT

The average number of actions in the LMS, with a 10 minute cutoff when calculating sessions.

num_sessions_20min

INTEGER

The number of sessions in the LMS, with a 20 minute cutoff when calculating sessions. 

total_time_seconds_20min

INTEGER

The total time spent in the LMS in seconds, with a 20 minute cutoff when calculating sessions. 

total_actions_20min

INTEGER

The total number of actions in the LMS, with a 20 minute cutoff when calculating sessions.

avg_time_seconds_20min

FLOAT

The average amount of time spent in the LMS in seconds, with a 20 minute time cutoff when calculating sessions. 

avg_actions_20min

FLOAT

The average number of actions in the LMS, with a 20 minute cutoff when calculating sessions.

num_sessions_30min

INTEGER

The number of sessions in the LMS, with a 30 minute cutoff when calculating sessions. 

total_time_seconds_30min

INTEGER

The total time spent in the LMS in seconds, with a 30 minute cutoff when calculating sessions. 

total_actions_30min

INTEGER

The total number of actions in the LMS, with a 30 minute cutoff when calculating sessions.

avg_time_seconds_30min

FLOAT

The average amount of time spent in the LMS in seconds, with a 30 minute cutoff when calculating sessions. 

avg_actions_30min

FLOAT

The average number of actions in the LMS, with a 30 minute cutoff when calculating sessions.

num_tool_launches

INTEGER

The total number of LTI tool launches.

num_tools_launched

INTEGER

The total number of LTI tools launched.

tool_launch_detail.launch_app_name

STRING

An array of the launch app names of the LTI tools launched.

tool_launch_detail.num_launches

INTEGER

An array of the number of launches for each LTI tool. 

file_views

INTEGER

The number of file views. 

num_files_viewed

INTEGER

The number of files viewed.

file_access_detail.file_id

INTEGER

An array of the UDP IDs of the files viewed.

file_access_detail.display_name

STRING

An array of the display names of the files viewed.

file_access_detail.content_type

STRING

An array of the content types of the files viewed.

file_access_detail.content_sub_type

STRING

An array of the content subtypes of the files viewed.

file_access_detail.num_times_viewed

INTEGER

An array of the number of times each file was viewed.

Field Structure and Subcategories

This level 1 table has many fields, so we’ve grouped them together in the following subcategories

  • Assignments
    • Submissions
    • Assignments
    • Missing Assignments
    • Late Submissions
    • Submission Time Buffer
    • Published Scores
  • Discussions
    • Discussion Threads
    • Discussion Entries
  • Learning Environment Activity
    • View days
    • Sessions
    • Tool Launches
    • File Views

Assignment Weight Groupings

Many fields have names that include tiny, small, medium, large, and major. These classifications are based on the group_weight field in the ‘learner_activity_group’ entity. The cases are as follows: 

  • If the group_weight is null or equal to 0%, the submission  is ‘unweighted’. 
  • If the group_weight is less than or equal to 2%, the submission is ‘tiny’.
  • If the group_weight is greater than 2% and less than or equal to 5%, the submission is ‘small’.
  • If the group_weight is greater than 5% and less than or equal to 10%, the submission is ‘medium’.
  • If the group_weight is greater than 10% and less than or equal to 25%, the submission is ‘large’. 
  • If the group_weight is greater than 25%, the submission is ‘major’. 

This mart only includes assignments with non-null values for group_weight.

Assignments

Number of Submissions

Fields 

  • num_tiny_submissions 
  • num_small_submissions
  • num_medium_submissions 
  • num_large_submissions 
  • num_major_submissions 
  • num_unweighted_submissions
  • num_submissions_without_due_date 
  • num_submissions_with_due_date
  • num_submissions 

Context Store Dependencies 

  • learner_activity_result
  • learner_activity 
  • learner_activity_group

Description

These fields present the number of submissions by a student in a course for each week in the term.  A submission is defined by the learner_activity_result_id field in the ‘learner_activity_result’ entity. The week of the submission is determined by the due date of the assignment, which is derived from the due_date field in the ‘learner_activity’ entity. If the due_date is null, it is derived from the response_date field in the ‘learner_activity_result’ entity. One of the fields, num_submissions, shows the overall number of submissions, while num_submissions_with_due_date and num_submissions_without_due_date show the number of submissions with and without due dates respectively. The rest of the fields focus on submissions either classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’. 

Number of Assignments

Fields 

  • num_tiny_assignments
  • num_small_assignments
  • num_medium_assignments 
  • num_large_assignments 
  • num_major_assignments 
  • num_unweighted_assignments 
  • num_assignments_without_due_date
  • num_assignments_with_due_date 
  • num_assignments 

Context Store Dependencies 

  • learner_activity 
  • learner_activity_group

Description

These fields present the number of assignments for a student in a course for each week in the term. An assignment is defined by the learner_activity_id in the ‘learner_activity’ entity. The week of the assignment is determined by its due date, which comes from the due_date field in ‘learner_activity’. One of the fields, num_assignments, shows the total number of assignments, while num_assignments_with_due_date and num_assignments_without_due_date show the number of assignments with and without due dates respectively. The rest of the fields focus on assignments either classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’.

Number of Missing Submissions

Fields 

  • num_tiny_missing_submissions
  • num_small_missing_submissions
  • num_medium_missing_submissions 
  • num_large_missing_submissions 
  • num_major_missing_submissions 
  • num_unweighted_missing_submissions
  • num_missing_submissions 

Context Store Dependencies 

  • learner_activity_result
  • learner_activity 
  • learner_activity_group

Description

These fields present the number of missing submissions of a student in a course for each week in the term. A submission is considered missing if it meets the following criteria: 

    1. The published_score field in ‘learner_activity_result’ is null. 
    2. The grading_status field in ‘learner_activity_result’ has a value of ‘unsubmitted’.
  • The due_date field in ‘learner_activity’ has a date older than the current date.

The field num_missing_submissions presents the total number of missing submissions. The rest of the fields focus on missing submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’. 

Number of Late Submissions

Fields 

  • num_tiny_late_submissions
  • num_small_late_submissions
  • num_medium_late_submissions 
  • num_large_late_submissions 
  • num_major_late_submissions 
  • num_unweighted_late_submissions 
  • num_late_submissions 

Context Store Dependencies 

  • learner_activity_result
  • learner_activity 
  • learner_activity_group

Description

These fields present the number of late submissions by a student in a course for each week in the term.  A submission is late if it meets the following criteria: 

  • The submission_date field in ‘learner_activity_result’ has a later date than the due_date in ‘learner_activity’. 

One of the fields, num_late_submissions, shows the total number of late submissions. The rest of the fields focus on late submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’.

Average Time Buffer in Hours

Fields 

  • avg_time_buffer_hrs_tiny
  • avg_time_buffer_hrs_small
  • avg_time_buffer_hrs_medium 
  • avg_time_buffer_hrs_large 
  • avg_time_buffer_hrs_major 
  • avg_time_buffer_hrs_unweighted 
  • avg_time_buffer_hrs 

Context Store Dependencies 

  • learner_activity_result
  • learner_activity 
  • learner_activity_group

Description

These fields present the average time buffer in hours for submissions by a student in a course for each week in the term. The time buffer of a submission is the difference between when the assignment was due and when the student submitted the assignment. We calculate this as the difference in hours between the date of the due_date field in ‘learner_activity’ and the date of the submission_date field in ‘learner_activity_result’. One of the fields, avg_time_buffer_hrs, shows the average time buffer in hours for all submissions. The rest of the fields focus on submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’.

Average Published Score Percentage

Fields 

  • avg_published_score_pct_tiny 
  • avg_published_score_pct_small 
  • avg_published_score_pct_medium 
  • avg_published_score_pct_large 
  • avg_published_score_pct_major 
  • avg_score_pct_unweighted 
  • avg_published_score_pct_without_due_date 
  • avg_published_score_pct_with_due_date 
  • avg_published_score 

Context Store Dependencies 

  • learner_activity_result 
  • learner_activity 
  • learner_activity_group 

Description 

These fields show the average published score percentage of submissions by a student in a course for each week in the term. The published score percentage of a submission is calculated by dividing the published score of the submission by the maximum number of points for the assignment. To do this, we divide the published_score field in ‘learner_activity_result’ by the points_possible field in ‘learner_activity’. To calculate the average published score percentage for submissions, we first multiply the calculated published score percentage by the group weight of the assignment, which is derived from the group_weight field in ‘learner_activity_group’. We add all of those computed values together for each student, course, and week in term. Then, we divide that sum by the sum of the assignment group weights for each student, course, and week to compute the average published score percentage. Once again, one of these fields, avg_published_score, shows the average published score percentage for all submissions. The fields avg_published_score_pct_with_due_date and avg_published_score_without_due_date show the average published score percentage for submissions with and without due dates respectively. The other fields each focus on a specific set of submissions, classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, or ‘major’. 

Discussions

Discussion Entry Counts 

Fields 

  • discussion_entry_count 
  • discussion_post_count 
  • discussion_reply_count 

Context Store Dependencies 

  • discussion_entry 

Description 

These fields present the number of discussion entries posted by a student in a course for each week in the term. A discussion entry is defined by the discussion_entry_id field in the ‘discussion_entry’ entity. The week of the discussion entry is defined by the date the discussion entry was created, which is derived from the created_date field in ‘discussion_entry’. The field discussion_entry_count shows the total number of discussion entries, and is computed by counting the number of distinct discussion_entry_id values. A discussion post is defined as a discussion entry with the value of the position field in ‘discussion_entry’ equal to 1. Therefore, discussion_post_count is computed by counting the number of distinct discussion_entry_id values with position = 1. On the other hand, a discussion reply is defined as a discussion entry with the value of the position field greater than 1. To compute discussion_reply_count, we count the number of distinct discussion_entry_id values with position > 1. 

Discussion Counts 

Fields 

  • discussion_count 
  • assignment_discussion_count 
  • threaded_discussion_count 
  • side_comment_discussion_count 

Context Store Dependencies 

  • discussion_entry
  • discussion 

Description 

These fields present the number of discussions a student has interacted with in a course for each week in the term. A discussion is defined by the discussion_id field in the ‘discussion’ entity, and the week of the discussion is defined by the created_date of the discussion entry. The field discussion_count shows the total number of discussions, and is computed by counting the number of distinct discussion_id values. The field assignment_discussion_count looks at the number of discussions that are associated with an assignment. This field is computed by counting the number of distinct discussion_id values that have non-null learner_activity_id values. The threaded_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘threaded’, and the side_comment_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘side_comment’. 

Total Discussion Counts 

Fields 

  • total_discussion_count 
  • total_assignment_discussion_count 
  • total_threaded_discussion_count 
  • total_side_comment_discussion_count 

Context Store Dependencies 

  • discussion 

Description 

These fields present the total number of discussions in a course for a given week in the term. The field total_discussion_count is computed by counting the number of distinct discussion_id values in the ‘discussion’ entity for each course and week in the term. The total_assignment_discussion_count field counts the number of distinct discussion_id values with non-null learner_activity_id values. The total_threaded_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘threaded’ , while the total_side_comment_discussion_thread field is computed by counting the number of distinct discussion_id values with discussion_type = ‘side_comment’ instead. 

Average Discussion Entry Length 

Fields 

  • avg_discussion_entry_length 
  • avg_discussion_post_length 
  • avg_discussion_reply_length 

Context Store Dependencies 

  • discussion_entry 

Description 

These fields present the average length of the discussion entry messages for a student in a course for a given week in the term. These fields are computed by taking the average of the message_length field in the ‘discussion_entry’ entity for each student, course, and week in the term. For the avg_discussion_entry_length field, we take the average for all discussion entries. The avg_discussion_post_length field only takes the average for discussion entries with position = 1, while the avg_discussion_reply_length field only takes the average for discussion entries with position > 1. 

Learning Environment Activity

View Days

Fields 

  • view_days 

Description 

The view_days field shows the number of days a student viewed the learning environment for a course in a given week. This field is computed using the UDP’s event store. We count the number of distinct session dates for a student in a course for a week in the term. The session date is defined by the minimum event_time of a session in the learning environment. 

Sessions with 10, 20, and 30 Minute Cutoffs 

Fields

  • num_sessions_10min 
  • total_time_seconds_10min 
  • total_actions_10min 
  • avg_time_seconds_10min 
  • avg_actions_10min 
  • num_sessions_20min 
  • total_time_seconds_20min 
  • total_actions_20min 
  • avg_time_seconds_20min 
  • avg_actions_20min 
  • num_sessions_30min 
  • total_time_seconds_30min 
  • total_actions_30min 
  • avg_time_seconds_30min 
  • avg_actions_30min 

Description 

For this mart, we define sessions using three different time cutoffs: 10 minutes, 20 minutes, and 30 minutes. We define the time spent in a session by adding up the duration of events in the session. For Caliper events in the event store, we define the duration of events by calculating the difference between the event time and the previous event time. If this difference is greater than or equal to the time cutoff for the session, the duration of the event is not counted towards the session and a new session is defined. So, for example, if an event duration is greater than or equal to 10 minutes, we will not include that event in a session with a 10 minute cutoff, and will define a new session. 

To show how sessions are defined, take an event with a duration of 9 minutes and 30 seconds. This event is less than 10 minutes, so it is included in a session with a 10 minute cutoff. It is also included in a session with 20 minute and 30 minute cutoffs, since the event is shorter than 20 and 30 minutes respectively. However, an event that is 13 minutes long is not included in a session with a 10 minute cutoff, since it is longer than 10 minutes. It is still included in a session with 20 and 30 minute cutoffs though. The same goes for an event with a duration of 25 minutes. This event is not included in a session with 10 and 20 minute cutoffs, but is still included in a session with a 30 minute cutoff. And finally, a 35 minute event is not included in a session with 10, 20, or 30 minute cutoffs. 

Event Length (in Minutes)

Sessions that Include the Event

0 - 9 

Sessions with a 10 minute cutoff, 20 minute cutoff, and 30 minute cutoff

10 - 19 

Sessions with a 20 minute cutoff and a 30 minute cutoff

20 - 29 

Sessions with a 30 minute cutoff

30 and above

None 

The num_sessions_x fields present the total number of sessions with the given time cutoff for a student in the learning environment of a course for a week in the term. The total_time_seconds_x fields show the amount of time in seconds a student spent in the learning environment. To find the total time spent in seconds, we add up all the durations of the sessions with the given time cutoff per student, course, and week in term. The total_actions_x fields present the number of actions of a student in the learning environment. The number of actions is calculated by counting the number of events associated with the sessions with the given time cutoff. The avg_time_seconds_x fields compute the average time in seconds a student spent in the learning environment. This is computed by dividing the total time spent in the learning environment (total_time_seconds_x) by the total number of sessions in the learning environment (num_sessions_x) for each student, course, and week in term. The avg_actions_x fields present the average number of actions in the learning environment. To compute this, we divide the total number of actions in the learning environment (total_actions_x) by the total number of sessions in the learning environment (num_sessions_x) for each student, course, and week in term. 

Please visit our separate interaction session mart documentation page here for a visual example and more information about interaction sessions.

Tool Launches 

Fields 

  • num_tool_launches 
  • num_tools_launched 
  • tool_launch_detail.launch_app_name
  • tool_launch_detail.num_launches 

Description

These fields focus on the LTI tools launched by a student in the learning environment of a course for each week in the term. We define a LTI tool launch using the ‘expanded’ table in the event store. An event is a LTI launch event if the name of the object (object.name) is ‘context_external_tool’. The field num_tool_launches presents the total number of LTI tool launches. This field is computed by counting the number of LTI launch events for each student, course, and week. num_tools_launched presents the number of distinct LTI tools launched. This is computed by counting the number of distinct launch_app_name values. The launch_app_name field is extracted from the asset_name field of the object.extensions chunk of the JSON Caliper event. 

The tool_launch_detail fields go into more detail about the LTI tools that were launched. tool_launch_detail.launch_app_name is an array of all the LTI tools launched. This array includes all the launch_app_name values associated with the given student, course, and week. The tool_launch_detail.num_launches is an array that presents the number of launches corresponding to each LTI tool in the tool_launch_detail.launch_app_name array. This field computes the number of launches for each tool by counting the number of launch events for each launch_app_name value in the array. 

File Views

Fields 

  • file_views 
  • num_files_viewed 
  • file_access_detail.file_id 
  • file_access_detail.display_name 
  • file_access_detail.content_type 
  • file_access_detail.content_sub_type 
  • file_access_detail.num_times_viewed 

Context Store Dependencies 

  • file 

Description

These fields focus on the files viewed by a student in the learning environment of a course for each week in the term. We identify that a file has been viewed by using the ‘expanded’ table in the event store and the ‘file’ entity in the context store. We first identify the subset of events in which an interaction with an object occurred, or when the object ID for an event is not null. The object ID is extracted from the object.id field in the ‘expanded’ table. We only want to include events in which an interaction with a file occurred, so we only include events that have an object ID corresponding to a file ID found in the ‘file’ entity. 

The file_views field presents the total number of file views. To compute this field, we count the number of file interaction events per student, course, and week. The num_files_viewed field presents the number of files viewed. This is calculated by counting the number of distinct file_id values associated with file interaction events. 

The file_access_detail fields go into more detail about the files the student accessed. The file_access_detail.file_id is an array of all the IDs of the files accessed. The file_access_detail.display_name is an array of the corresponding display names of these files, derived from the display_name field in the ‘file’ entity. The file_access_detail.content_type field is an array of the corresponding content types of these files. These values are extracted from the content_type field in the ‘file’ entity, extracting the part of the string before the ‘/’ from the field. So, for example, if the value of the content_type field in ‘file’ is ‘application/pptx’, the value of file_access_detail.content_type would be ‘application’. The file_access_detail.content_sub_type field is an array of the content subtypes of the files accessed. These values are again extracted from the content_type field in the ‘file’ entity, but taking the part of the string after the ‘/’ instead. For the previous example, the value of file_access_detail.content_sub_type would be ‘pptx’. The final field in this section is the file_access_detail.num_times_viewed field. This is an array of the number of times each file accessed was viewed. To compute the number of times each file was viewed, we count the number of events associated with each file.

  • No labels