education-expert
Expert-level education technology, learning management systems, and ed-tech platforms
What this skill does
# Education Expert
Expert guidance for education technology, learning management systems, online learning platforms, and educational software development.
## Core Concepts
### Educational Technology
- Learning Management Systems (LMS)
- Student Information Systems (SIS)
- Assessment and evaluation tools
- Adaptive learning platforms
- Virtual classrooms
- Content management
### Standards
- SCORM (Sharable Content Object Reference Model)
- xAPI (Experience API / Tin Can API)
- LTI (Learning Tools Interoperability)
- QTI (Question and Test Interoperability)
- Accessibility (WCAG, Section 508)
### Key Features
- Course management
- Grade tracking
- Student analytics
- Content delivery
- Collaborative tools
- Assessment engines
## LMS Core Implementation
```python
from dataclasses import dataclass
from typing import List, Optional
from datetime import datetime
from enum import Enum
class EnrollmentStatus(Enum):
ACTIVE = "active"
COMPLETED = "completed"
DROPPED = "dropped"
PENDING = "pending"
@dataclass
class Course:
course_id: str
title: str
description: str
instructor_id: str
start_date: datetime
end_date: datetime
credits: int
capacity: int
syllabus_url: str
prerequisites: List[str]
@dataclass
class Student:
student_id: str
first_name: str
last_name: str
email: str
enrolled_date: datetime
grade_level: str
gpa: float
@dataclass
class Enrollment:
enrollment_id: str
student_id: str
course_id: str
enrollment_date: datetime
status: EnrollmentStatus
final_grade: Optional[float]
class LMSPlatform:
"""Learning Management System core functionality"""
def __init__(self, db):
self.db = db
def enroll_student(self, student_id, course_id):
"""Enroll student in course"""
course = self.db.get_course(course_id)
current_enrollment = self.db.count_enrollments(course_id)
# Check capacity
if current_enrollment >= course.capacity:
raise Exception("Course is full")
# Check prerequisites
if course.prerequisites:
completed = self.get_completed_courses(student_id)
if not all(prereq in completed for prereq in course.prerequisites):
raise Exception("Prerequisites not met")
enrollment = Enrollment(
enrollment_id=generate_id(),
student_id=student_id,
course_id=course_id,
enrollment_date=datetime.now(),
status=EnrollmentStatus.ACTIVE,
final_grade=None
)
return self.db.save_enrollment(enrollment)
def get_student_transcript(self, student_id):
"""Generate student transcript"""
enrollments = self.db.get_student_enrollments(student_id)
transcript = []
for enrollment in enrollments:
if enrollment.status == EnrollmentStatus.COMPLETED:
course = self.db.get_course(enrollment.course_id)
transcript.append({
'course_code': course.course_id,
'course_name': course.title,
'credits': course.credits,
'grade': enrollment.final_grade,
'term': self.get_term(enrollment.enrollment_date)
})
return transcript
def calculate_gpa(self, student_id):
"""Calculate student GPA"""
transcript = self.get_student_transcript(student_id)
total_points = 0
total_credits = 0
for record in transcript:
if record['grade'] is not None:
total_points += record['grade'] * record['credits']
total_credits += record['credits']
return total_points / total_credits if total_credits > 0 else 0.0
```
## Assessment Engine
```python
from abc import ABC, abstractmethod
class Question(ABC):
"""Base question class"""
def __init__(self, question_id, text, points):
self.question_id = question_id
self.text = text
self.points = points
@abstractmethod
def check_answer(self, student_answer):
pass
class MultipleChoiceQuestion(Question):
"""Multiple choice question"""
def __init__(self, question_id, text, points, choices, correct_answer):
super().__init__(question_id, text, points)
self.choices = choices
self.correct_answer = correct_answer
def check_answer(self, student_answer):
return student_answer == self.correct_answer
class Essay Question(Question):
"""Essay question requiring manual grading"""
def __init__(self, question_id, text, points, rubric):
super().__init__(question_id, text, points)
self.rubric = rubric
def check_answer(self, student_answer):
# Requires manual grading
return None
class AssessmentEngine:
"""Assessment and grading system"""
def grade_assessment(self, assessment, student_answers):
"""Grade student assessment"""
total_points = 0
earned_points = 0
results = []
for question in assessment.questions:
total_points += question.points
student_answer = student_answers.get(question.question_id)
if isinstance(question, MultipleChoiceQuestion):
is_correct = question.check_answer(student_answer)
points_earned = question.points if is_correct else 0
earned_points += points_earned
results.append({
'question_id': question.question_id,
'correct': is_correct,
'points': points_earned,
'feedback': 'Correct!' if is_correct else f'Incorrect. Correct answer: {question.correct_answer}'
})
else:
# Essay questions need manual grading
results.append({
'question_id': question.question_id,
'status': 'pending_review',
'answer': student_answer
})
score_percentage = (earned_points / total_points) * 100 if total_points > 0 else 0
return {
'total_points': total_points,
'earned_points': earned_points,
'percentage': score_percentage,
'results': results
}
def analyze_assessment_statistics(self, assessment_id, all_submissions):
"""Analyze assessment performance"""
scores = [s['percentage'] for s in all_submissions]
return {
'mean': sum(scores) / len(scores),
'median': sorted(scores)[len(scores) // 2],
'min': min(scores),
'max': max(scores),
'std_dev': self.calculate_std_dev(scores)
}
```
## Learning Analytics
```python
class LearningAnalytics:
"""Student learning analytics"""
def get_student_engagement(self, student_id, course_id):
"""Calculate student engagement metrics"""
activities = self.db.get_student_activities(student_id, course_id)
metrics = {
'login_frequency': self.calculate_login_frequency(activities),
'content_completion_rate': self.calculate_completion_rate(activities),
'assessment_participation': self.calculate_participation(activities),
'forum_posts': len([a for a in activities if a['type'] == 'forum_post']),
'time_on_platform': sum(a['duration'] for a in activities)
}
return metrics
def predict_student_risk(self, student_id, course_id):
"""Predict at-risk students"""
engagement = self.get_student_engagement(student_id, course_id)
grades = self.get_recent_grades(student_id, course_id)
risk_score = 0
# Low engagement indicators
if engagement['login_frequency'] < 2: # Less than 2x per week
risk_score += 25
if engagement['content_completion_Related in domains
aerospace-expert
IncludedExpert-level aerospace systems, flight management, maintenance tracking, aviation safety, and aerospace software
automotive-expert
IncludedExpert-level automotive systems, connected vehicles, fleet management, telematics, ADAS, and automotive software
real-estate-expert
IncludedExpert-level real estate systems, property management, MLS integration, CRM, virtual tours, and market analysis
manufacturing-expert
IncludedExpert-level manufacturing systems, Industry 4.0, production optimization, quality control, and smart factory solutions
retail-expert
IncludedExpert-level retail systems, POS, inventory management, e-commerce, customer analytics, and omnichannel retail
insurance-expert
IncludedExpert-level insurance systems, underwriting, claims processing, actuarial analysis, risk assessment, and insurtech solutions