MathDial - Tutoring Dialogue Quality Annotation
Annotate math tutoring dialogues for guidance correctness, tutoring strategies, and key concepts, based on the MathDial dataset (Macina et al., Findings ACL 2023). Supports evaluation of AI-generated tutoring interactions for K-12 math problems.
Configuration Fileconfig.yaml
# MathDial - Tutoring Dialogue Quality Annotation
# Based on Macina et al., Findings ACL 2023
# Paper: https://aclanthology.org/2023.findings-acl.507/
# Dataset: https://github.com/eth-nlped/mathdial
#
# Annotate math tutoring dialogue turns for correctness of guidance,
# tutoring strategies employed, and key spans (math concepts, errors, strategies).
#
# Guidance Quality:
# - Correct Guidance: The tutor provides mathematically correct help
# - Incorrect Guidance: The tutor makes a mathematical error
# - Partially Correct: Some correct elements but also errors or omissions
# - Off-topic: The tutor's response does not address the math problem
#
# Tutoring Strategies:
# - Scaffolding: Breaking the problem into smaller, manageable steps
# - Direct Instruction: Explicitly telling the student the answer or method
# - Questioning: Asking questions to guide the student's thinking
# - Encouragement: Positive reinforcement and motivational support
# - Error Correction: Identifying and correcting student mistakes
#
# Guidelines:
# 1. Read the math problem and student level first
# 2. Read the dialogue turn carefully
# 3. Evaluate the mathematical correctness of the tutor's guidance
# 4. Identify all tutoring strategies used in this turn
# 5. Highlight key spans for math concepts, student errors, and tutor strategies
annotation_task_name: "MathDial: Tutoring Dialogue Quality Annotation"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
- annotation_type: radio
name: guidance_quality
description: "How correct is the tutor's mathematical guidance in this dialogue turn?"
labels:
- "Correct Guidance"
- "Incorrect Guidance"
- "Partially Correct"
- "Off-topic"
keyboard_shortcuts:
"Correct Guidance": "1"
"Incorrect Guidance": "2"
"Partially Correct": "3"
"Off-topic": "4"
tooltips:
"Correct Guidance": "The tutor provides mathematically correct and helpful guidance"
"Incorrect Guidance": "The tutor makes a mathematical error or provides wrong information"
"Partially Correct": "Some elements are correct but there are errors or important omissions"
"Off-topic": "The tutor's response does not address the math problem at hand"
- annotation_type: multiselect
name: tutoring_strategies
description: "Which tutoring strategies are used in this dialogue turn? Select all that apply."
labels:
- "Scaffolding"
- "Direct Instruction"
- "Questioning"
- "Encouragement"
- "Error Correction"
tooltips:
"Scaffolding": "Breaking the problem into smaller steps to guide the student gradually"
"Direct Instruction": "Explicitly telling the student the answer, method, or formula"
"Questioning": "Asking questions to prompt the student to think and reason"
"Encouragement": "Providing positive reinforcement, praise, or motivational support"
"Error Correction": "Identifying a student mistake and correcting it with explanation"
- annotation_type: span
name: key_spans
description: "Highlight key spans in the dialogue turn"
labels:
- "Math Concept"
- "Student Error"
- "Tutor Strategy"
tooltips:
"Math Concept": "A mathematical concept, formula, term, or operation mentioned"
"Student Error": "A mistake or misconception expressed by the student"
"Tutor Strategy": "A phrase where the tutor applies a specific pedagogical strategy"
annotation_instructions: |
You will annotate math tutoring dialogue turns from the MathDial dataset.
For each item:
1. Read the math problem and student level context.
2. Read the dialogue turn carefully.
3. Rate the correctness of the tutor's guidance.
4. Select all tutoring strategies present in the turn.
5. Highlight relevant spans for math concepts, student errors, and tutor strategies.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="display: flex; gap: 12px; margin-bottom: 14px; flex-wrap: wrap;">
<div style="background: #e8eaf6; padding: 7px 14px; border-radius: 8px;">
<strong>Student Level:</strong> {{student_level}}
</div>
</div>
<div style="background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 16px; margin-bottom: 16px;">
<strong style="color: #a16207;">Math Problem:</strong>
<p style="font-size: 15px; line-height: 1.6; margin: 8px 0 0 0;">{{math_problem}}</p>
</div>
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px;">
<strong style="color: #0369a1;">Dialogue Turn:</strong>
<p style="font-size: 16px; line-height: 1.8; margin: 8px 0 0 0; white-space: pre-wrap;">{{text}}</p>
</div>
</div>
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "mathdial_001",
"text": "Student: I got 15 as the answer for 3 times 6, is that right?\nTutor: Hmm, not quite! Let's think about it step by step. What does 3 times 6 mean? It means you're adding 6 three times. Can you try adding 6 + 6 + 6?",
"math_problem": "Calculate 3 x 6",
"student_level": "Grade 3"
},
{
"id": "mathdial_002",
"text": "Student: I don't understand how to find the area of a triangle.\nTutor: Great question! The area of a triangle is base times height divided by 2. So if the base is 8 cm and the height is 5 cm, you multiply 8 times 5 to get 40, then divide by 2 to get 20 square centimeters.",
"math_problem": "Find the area of a triangle with base 8 cm and height 5 cm",
"student_level": "Grade 5"
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/education/mathdial-tutoring-dialogue potato start config.yaml
Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Student Essay Discourse Element Classification
Discourse element annotation of student essays based on Song et al. (COLING 2020). Annotators identify argumentative discourse units, classify essay types, and tag rhetorical strategies used in student writing.
Food Hazard Detection
Food safety hazard detection task requiring annotators to identify hazards, products, and risk levels in food incident reports, and classify the type of contamination. Based on SemEval-2025 Task 9.
HateXplain - Explainable Hate Speech Detection
Multi-task hate speech annotation with classification (hate/offensive/normal), target community identification, and rationale span highlighting. Based on the HateXplain benchmark (Mathew et al., AAAI 2021) - the first dataset covering classification, target identification, and rationale extraction.