Skip to main content

Assessment Engine (AE)

Overview

The Assessment Engine is the critical evaluation component of EduVision. It provides objective, consistent, and immediate feedback on student performance. It supports multiple question types (Code, Multiple Choice, Open-Ended Text) and powers the adaptive learning loop.

Core Capabilities

1. Multi-Modal Evaluation

The AE handles diverse assessment formats:

  • Code Execution: Runs student code in a secure sandbox (Docker/MicroVM). Checks output against test cases.
  • Static Analysis: Analyzes code structure (AST) for syntax errors, style issues, and logic patterns.
  • Semantic Similarity: Compares student text answers against rubrics/exemplars using embeddings (Cosine Similarity).
  • LLM Grading: Uses a rubric-guided LLM (Llama 3.1) to grade open-ended essays or complex reasoning questions.

2. Immediate Feedback Generation

Beyond just a score, the AE provides actionable feedback.

  • Type: "Syntax Error", "Logic Error", "Conceptual Gap".
  • Hint: Suggests specific areas for improvement without giving away the answer.

3. Skill Tagging

Every assessment item is tagged with specific skills (e.g., "Python Loops", "Functions", "Variables").

  • Granularity: Allows the Learner Engine to update mastery at a fine-grained level.
  • Dependency Tracking: Helps identify prerequisite failures.

Technical Implementation

Code Evaluation Sandbox

def evaluate_code(student_code, test_cases):
try:
result = run_in_sandbox(student_code, timeout=5)
score = calculate_score(result, test_cases)
feedback = generate_feedback(result)
return {"score": score, "feedback": feedback}
except SandboxError as e:
return {"score": 0, "feedback": f"Runtime Error: {str(e)}"}

LLM Grading Rubric

The system uses a structured prompt for grading essays:

GRADING_PROMPT = """
Evaluate the following student answer based on the provided rubric.
Rubric: {rubric}
Student Answer: {answer}

Output JSON:
{
"score": 0.0-1.0,
"feedback": "...",
"missing_concepts": ["..."]
}
"""

Integration with Other Engines

  • Learner Engine: Receives the score and skill_tags to update the student's mastery model (BKT).
  • Pedagogy Engine: Uses assessment results to decide whether to advance or remediate.
  • Tutor Engine: Delivers the feedback to the student in a conversational manner.