# EDM Cup 2023 — Data

来源：https://www.kaggle.com/competitions/edm-cup-2023/data

本地 Meta Kaggle 快照；不是本次实时页面。

# Dataset Description

# \*\_unit\_test\_scores.csv

These files reference the unit test scores, which are the scores this competition revolves around predicting. training\_unit\_test\_scores.csv contains all the unit test scores for you to use during model training, and evaluation\_unit\_test\_scores.csv contains only the assignment log IDs for which you must predict the unit test scores.

### assignment\_log\_id

A unique identifier for a particular assignment completed by the student. Details on all the assignment logs in this data set can be found in assignment\_details.csv file. You will notice that for assignment log IDs in evaluation\_unit\_test\_scores.csv, the start and end time of the assignment is removed because that information is determined after the unit test is assigned and would provide unfair information about students' unit test performance. assignment\_relationships.csv can be used to determine which assignments the student completed within the unit before taking their unit test.

### problem\_id

A unique identifier for the problem within the assignment the student completed.

### score

The score the student received on their problem. The score is 1 when the student completed an open-ended response problem or submitted the correct answer on their first attempt without any tutoring, and 0 otherwize. A list of every problem in each unit test can be found in sequence\_details.csv, which should help with the score predictions.

# \*\_relationships.csv

These files track which sequences and assignments are unit tests, and which sequences and assignments within each unit correspond to the unit tests. Each sequence ID corresponds to a distinct set of mathematics problems that a teacher can assign to their class, and each assignment log ID corresponds to a particular instance of a student starting a problem set assigned to them. These tables are very important because they inform which information from action\_logs.csv corresponds to each unit test score that must be predicted.

### unit\_test\_\*\_id

This is the ID of the unit test sequence or assignment log. The same ID will appear multiple times in this column; once for each sequence or assignment log within the unit.

### in\_unit\_\*\_id

This is the ID of a sequence or assignment log with the unit that corresponds to the unit test. For sequences, there is a fixed set of in unit sequences for each unit. For assignment logs, each student could have been assigned different sequences from within each unit. Therefore, even if two unit test assignment logs correspond to the same sequence, they could have different sets of in unit assignment logs, because each unit test assignment log is related to only the assignment logs the student completed within the unit prior to taking the unit test.

# action\_logs.csv

This file contains all the clickstream data from students as they completed assignments within each unit. This file will likely be the main source of information for predicting unit test scores.

### assignment\_log\_id

A unique identifier for the assignment being completed by the student when they took an action.

### timestamp

The UNIX timestamp for the instant the action was taken.

### problem\_id

A unique identifier for the problem being completed by the student when they took an action. This field is only available when the student takes an action related to a problem.

### max\_attempts

Within ASSISTments, students potentially see a credit bar as they complete each problem. When students request tutoring or submit wrong answers, the credit bar decreases. This column indicates the maximum attempts a student has for a particular problem before they see they have lost all credit on the problem. This column's value, configurable by the teacher upon assignment, is only present for the problem\_started action.

### available\_core\_tutoring

Within ASSISTments, students have access to, at most, one core tutoring option when they start a problem, after this tutoring option has been exhausted, the student can request the answer to the problem. Alternatively, teachers can configure assignments to not provide any tutoring or answers to students, usually to mimic a testing environment. This column indicates which core tutoring option was available at the start of the problem. This column's value is only present for the problem\_started action.

On occasion, students could also request auxiliary tutoring in the form of chat sessions with live tutors or skill-related videos. While the live\_tutor\_requested and skill\_related\_video\_requested actions correspond to this auxiliary tutoring, the use of auxiliary tutoring was rare, and information on its availability at the beginning of a problem was not available.

There are four possible values for the available\_core\_tutoring column:

- **hint** : A set of hints was available upon the student's request.
- **explanation** : An explanation was available upon the student's request.
- **answer** : Only the correct answer was available upon the student's request.
- **no\_tutoring** : No tutoring was available for this problem at all.

### score\_viewable

A binary indication of whether or not the student can view the credit bar for the problem they are completing. Teachers configure whether or not their students can see the credit bar upon assignment. This column's value is only present for the problem\_started action.

### continuous\_score\_viewable

A binary indication of whether or not the credit bar for the problem being completed shows partial credit or simply goes to zero upon the student submitting a wrong answer or requesting tutoring. Teachers configure whether or not their students can see their partial credit on problems upon assignment. This column's value is only present for the problem\_started action.

### action

An indication of which action was taken by the student in this particular instance.

There are fourteen possible values for the action column:

- **problem\_started** : The student started a problem.
- **problem\_finished** : The student finished a problem.
- **continue\_selected** : The student pressed the continue button after they finished a problem, moving them to the next problem in their assignment.
- **correct\_response** : The student submitted a correct response to a problem.
- **wrong\_response** : The student submitted an incorrect response to a problem.
- **open\_response** : The student submitted a response to an open response question.
- **assignment\_started** : The student started their assignment.
- **answer\_requested** : The student requested the answer to a problem.
- **assignment\_finished** : The student completed their assignment.
- **assignment\_resumed** : The student resumed their assignment. Unfortunately, there is no way to know exactly when they left their assignment, meaning this action often comes after a long delay from the previous action.
- **hint\_requested** : The student requested one hint from a set of hints for the problem.
- **explanation\_requested** : The student requested an explanation for the problem
- **skill\_related\_video\_requested** : The student requested a video that provides general instruction for the skill most related to solving the problem.
- **live\_tutor\_requested** : The student requested a chat session with a live tutor.

### hint\_id

A unique ID for the hint requested by the student. This column's value is only present for the hint\_requested action.

### explanation\_id

A unique ID for the explanation requested by the student. This column's value is only present for the hint\_requested action.

# sequence\_details.csv

This file contains at least one row for each sequence present in the dataset and contains all the information unique to each sequence. Some sequences have duplicate rows because they are present in multiple locations within units. Whether that is intentional is unclear.

### sequence\_id

A unique identifier for the sequence.

### sequence\_folder\_path\_level\_1

Sequences are organized into folders, this is the highest level folder path, which contains information on whether the sequence came from the Kendall Hunt Illustrative Mathematics curriculum ([https://im.kendallhunt.com/](https://im.kendallhunt.com/)) or the Engage New York mathematics curriculum ([http://www.nysed.gov/curriculum-instruction/engageny](http://www.nysed.gov/curriculum-instruction/engageny)). If there is no folder at this path depth, this column is blank.

### sequence\_folder\_path\_level\_2

Sequences are organized into folders, this is the second highest level folder path, which contains information on what grade or subject the sequence is a part of. If there is no folder at this path depth, this column is blank.

### sequence\_folder\_path\_level\_3

Sequences are organized into folders, this is the third highest level folder path, which contains information on what unit the sequence is a part of. If there is no folder at this path depth, this column is blank.

### sequence\_folder\_path\_level\_4

Sequences are organized into folders, this is the fourth highest level folder path, which contains information on what specific subject within the unit the sequence is a part of. If there is no folder at this path depth, this column is blank.

### sequence\_folder\_path\_level\_5

Sequences are organized into folders, this is the fifth highest level folder path, which contains information on what specific subject within the unit the sequence is a part of. If there is no folder at this path depth, this column is blank.

### sequence\_name

The name of the sequence, which conveys information on what material the sequence is evaluating and what role it has within the curriculum.

### sequence\_folder\_position

This specifies the order that the sequence appears within the folder. The sequences are ordered within the folder to align with when the curriculum suggests that they be assigned.

### sequence\_problem\_ids

A list of the ID of every problem contained within the sequence.

# assignment\_details.csv

This file contains one row for every assignment started by a student in the scope of the dataset.

### assignment\_log\_id

A unique identifier for each assignment started by a student

### teacher\_id

A unique identifier for the teacher of the student that started the assignment.

### class\_id

A unique identifier for the class the student that started the assignment was in.

### student\_id

A unique identifier for the student that started the assignment.

### sequence\_id

A unique identifier for the sequence of problems that was assigned to the student.

### assignment\_release\_date

The UNIX timestamp for when the assignment was made available to the student.

### assignment\_due\_date

The UNIX timestamp for when the assignment was due. If a teacher did not specify a due date, this column will be blank.

### assignment\_start\_time

The UNIX timestamp for when the student started the assignment. For assignments that you must predict the score of, this column's information is removed because it could give an unfair predictive advantage.

### assignment\_end\_time

The UNIX timestamp for when the student completed the assignment. If the student never completed the assignment, this column will be blank. For assignments that you must predict the score of, this column's information is removed because it could give an unfair predictive advantage.

# problem\_details.csv

This file contains one row for every problem referenced in the dataset, except for some problems in the action logs, which have been deleted from the database. These problems likely had errors during their original transcription into ASSISTments that were corrected, but no record of the original problems was kept.

### problem\_id

A unique identifier for each problem.

### problem\_multipart\_id

Some problems are part of a multi-part problem. For example, the first problem in a multi-part problem might say "If a circle has a radius of 5, what is its circumference?" and the second problem might say "What is its area?". The second problem requires the context provided by the first problem. This column contains a unique identifier for each set of problems in a multi-part problem. Every problem has a multi-part problem ID, but it could be that there are no other problems with the same multi-part ID, meaning the problem is a standalone problem.

### problem\_multipart\_position

An indication of the problem's order within the multi-part problem. The problem that comes first is at position 1, and the following problems each increment their position by 1 from the previous problem.

### problem\_type

The format of the answer to the problem.

There are 10 possible values for the problem\_type column:

- **Multiple Choice** : The student selects one of multiple predefined answers.
- **Ungraded Open Response** : The student writes in plain text and/or uploads media for the teacher to see.
- **Number** : The student must type in a number with no letters or mathematical symbols for it to be accepted as a submission, otherwise the student is told their answer is not in the correct format, and to revise it before submitting.
- **Algebraic Expression** : The student must type an expression that contains only numbers, letters (when they are used as variables in the expression), and mathematical symbols for it to be accepted as a submission, otherwise the student is told their answer is not in the correct format, and to revise it before submitting.
- **Numeric Expression** : The student must type an expression that contains only numbers and mathematical symbols for it to be accepted as a submission, otherwise the student is told their answer is not in the correct format, and to revise it before submitting.
- **Check All That Apply** : The student must select between none and all of a set of predefined answers.
- **Exact Match (ignore case)**: Without limiting the characters the student is allowed to input, the student must type an answer that exactly matches the problem's correct answer with the exception of using upper or lower case letters.
- **Exact Fraction** : The student must type an answer that is a fraction that uses the same numerator and denominator as the problem's correct answer for the student to be considered correct, unlike a Numeric Expression problem type, which would be considered correct as long as the student's fraction simplified to the same thing as the problem's correct answer.
- **Exact Match (case sensitive)**: Without limiting the characters the student is allowed to input, the student must type an answer that exactly matches the problem's correct answer.
- **Ordering** : The student must arrange a set of predefined answers to place them in the correct order.

### problem\_skill\_code

The Common Core State Standards for Mathematics skill code most related to solving the problem. If a skill code has a dash in it, that specifies a more detailed sub-skill beyond what the common core provides. The common core skill codes can be found here: [https://learning.ccsso.org/wp-content/uploads/2022/11/ADA-Compliant-Math-Standards.pdf](https://learning.ccsso.org/wp-content/uploads/2022/11/ADA-Compliant-Math-Standards.pdf).

### problem\_skill\_description

A brief description of the skill code the problem is tagged with.

### problem\_contains\_image

A binary indicator of whether or not the problem contains an image.

### problem\_contains\_equation

A binary indicator of whether or not the problem contains a Wiris Editor equation. More information on the Wiris editor can be found here: [https://demo.wiris.com/mathtype/en/](https://demo.wiris.com/mathtype/en/).

### problem\_contains\_video

A binary indicator of whether or not the problem contains a video.

### problem\_text\_bert\_pca

This is the first 32 principal components of the bert embedding for the text-based content of the problem across all the problem's bert embeddings, rounded to the 8th decimal place.

# hint\_details.csv

This file contains one row for every hint referenced in the dataset, except for some hints in the action logs, which have been deleted from the database. At one point, there were some hints in ASSISTments that simply gave away the answer with no elaboration. The hints missing from this file were likely removed for this reason and replaced with better tutoring.

### hint\_id

A unique identifier for each hint.

### hint\_creator\_id

A unique identifier for the creator of the hint.

### hint\_position

When hints are provided as tutoring for a problem, they come as a set of hints, where each hint reveals slightly more about how to solve the problem. This column indicates the order that the hint appears in the set of hints for its problem. The hint that comes first is at position 1, and the following hints each increment their position by 1 from the previous hint.

### hint\_contains\_image

A binary indicator of whether or not the hint contains an image.

### hint\_contains\_equation

A binary indicator of whether or not the hint contains a Wiris Editor equation. More information on the Wiris editor can be found here: [https://demo.wiris.com/mathtype/en/](https://demo.wiris.com/mathtype/en/).

### hint\_contains\_video

A binary indicator of whether or not the hint contains a video.

### hint\_text\_bert\_pca

This is the first 32 principal components of the bert embedding for the text-based content of the hint across all the hint's bert embeddings, rounded to the 8th decimal place.

# explanation\_details.csv

This file contains one row for each explanation in the dataset.

### explanation\_id

A unique identifier for each explanation.

### explanation\_creator\_id

A unique identifier for the creator of the explanation.

### explanation\_contains\_image

A binary indicator of whether or not the explanation contains an image.

### explanation\_contains\_equation

A binary indicator of whether or not the explanation contains a Wiris Editor equation. More information on the Wiris editor can be found here: [https://demo.wiris.com/mathtype/en/](https://demo.wiris.com/mathtype/en/).

### explanation\_contains\_video

A binary indicator of whether or not the explanation contains a video.

### explanation\_text\_bert\_pca

This is the first 32 principal components of the bert embedding for the text-based content of the explanation across all the explanation's bert embeddings, rounded to the 8th decimal place.