Education Expert

作者 personamanagmentlayer79ccaa982048無授權條款43 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

Expert-level education technology, learning management systems, and ed-tech platforms. Use when the user mentions edtech, lms, e learning, or assessment, or when the task involves Educational Technology or Standards.

AI 產生的概覽

為教育科技、LMS 平台、評量引擎與學習分析提供專家級指引與參考程式碼。

功能
此技能提供教育科技、學習管理系統與線上學習平台方面的專家級指引。內容涵蓋 LMS、SIS、適性學習等核心概念,以及 SCORM、xAPI、LTI、QTI 等標準,並包含 LMS 選課、成績單與 GPA、評量與評分引擎、含風險預測的學習分析,以及 xAPI 語句建構的參考程式碼。此外也列出最佳實務、反模式與外部資源。
適用情境
當任務涉及教育科技、LMS、線上學習或評量,或使用者提到教育技術與相關標準時使用。適合課程管理、評分、學生分析與互通性標準方面的設計與實作問題。
執行需求
僅為說明性內容,未附帶指令碼。參考程式碼為 Python,依賴未提供的資料庫層與輔助方法。閱讀指引內容不需要憑證或網路存取。

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 dataclassfrom typing import List, Optionalfrom datetime import datetimefrom enum import Enum
class EnrollmentStatus(Enum):    ACTIVE = "active"    COMPLETED = "completed"    DROPPED = "dropped"    PENDING = "pending"
@dataclassclass 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]
@dataclassclass Student:    student_id: str    first_name: str    last_name: str    email: str    enrolled_date: datetime    grade_level: str    gpa: float
@dataclassclass 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_rate'] < 0.5:            risk_score += 25        if engagement['assessment_participation'] < 0.7:            risk_score += 25
        # Grade indicators        if grades and sum(grades) / len(grades) < 60:            risk_score += 25
        risk_level = 'high' if risk_score >= 75 else 'medium' if risk_score >= 50 else 'low'
        return {            'student_id': student_id,            'risk_score': risk_score,            'risk_level': risk_level,            'recommendations': self.generate_interventions(risk_score, engagement)        }
    def generate_learning_path(self, student_id, learning_goals):        """Generate personalized learning path"""        # Analyze student's current knowledge        current_skills = self.assess_skills(student_id)        gap_analysis = self.identify_skill_gaps(current_skills, learning_goals)
        # Recommend courses and resources        recommended_courses = self.match_courses_to_goals(gap_analysis)
        return {            'student_id': student_id,            'current_level': current_skills,            'target_level': learning_goals,            'skill_gaps': gap_analysis,            'recommended_path': recommended_courses,            'estimated_duration': self.estimate_completion_time(recommended_courses)        }

xAPI (Tin Can API) Integration

python
import jsonfrom datetime import datetime
class xAPIStatement:    """xAPI statement builder"""
    @staticmethod    def create_statement(actor, verb, object_data, result=None):        """Create xAPI statement"""        statement = {            'actor': {                'objectType': 'Agent',                'name': actor['name'],                'mbox': f"mailto:{actor['email']}"            },            'verb': {                'id': verb['id'],                'display': {'en-US': verb['display']}            },            'object': {                'id': object_data['id'],                'definition': {                    'name': {'en-US': object_data['name']},                    'description': {'en-US': object_data.get('description', '')}                }            },            'timestamp': datetime.utcnow().isoformat()        }
        if result:            statement['result'] = result
        return statement
    @staticmethod    def completed_course(student, course, score):        """Create course completion statement"""        return xAPIStatement.create_statement(            actor={'name': student['name'], 'email': student['email']},            verb={                'id': 'http://adlnet.gov/expapi/verbs/completed',                'display': 'completed'            },            object_data={                'id': f"http://lms.example.com/course/{course['id']}",                'name': course['title']            },            result={                'score': {                    'scaled': score / 100,                    'raw': score,                    'min': 0,                    'max': 100                },                'completion': True,                'success': score >= 70            }        )

Best Practices

  • Implement accessibility standards (WCAG)
  • Support mobile learning
  • Enable offline access
  • Provide real-time feedback
  • Use adaptive learning algorithms
  • Protect student data privacy (FERPA)
  • Enable collaborative learning
  • Provide detailed analytics
  • Support multiple content formats
  • Implement plagiarism detection
  • Enable parent/guardian access
  • Support multilingual content

Anti-Patterns

❌ Poor mobile experience ❌ No accessibility features ❌ Ignoring data privacy ❌ No analytics or reporting ❌ Inflexible assessment tools ❌ No offline capabilities ❌ Poor user experience

Resources

來源與署名

來源:personamanagmentlayer/pcl位於stdlib/domains/education-expert提交79ccaa9

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架