📦 高等数学学情数据分析Skill — 技能工具

v1.0.0

基于作业批改数据,提供学生能力画像、班级学情看板及个性化教学建议,助力高等数学教学决策闭环。

0· 25·0 当前·0 累计
daigxok 头像by @daigxok (math)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/16
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
Skill's functionality matches its description, but the instructions lack any detail about how sensitive student data is sourced, authenticated, stored, or shared — that ambiguity is a meaningful security/privacy concern.
评估建议
This skill appears to do what it says (student/class analytics) but the SKILL.md omits crucial operational and privacy details. Before installing or enabling it: 1) Ask the maintainer for the data connectors and exact data flow—where do assignment grades, timestamps, and student identifiers come from and what credentials are required? 2) Confirm how/where visualizations and exported data are hosted or uploaded (no placeholders like example.com in real use). 3) Require and verify privacy controls...
详细分析 ▾
用途与能力
Name/description (high-level learning-analytics for calculus) align with the documented functions (dashboards, student profiles, recommendations). There are no unrelated binaries, env vars, or installs declared that conflict with the stated purpose.
指令范围
SKILL.md describes generating dashboards and detailed student profiles (including names, IDs, time-spent, trends) and even contains model pseudocode. However it does not specify where assignment data comes from, how it should be supplied, or whether the agent should read files/DBs. Handling of student PII is implied but no privacy, retention, or export rules are given. The examples reference external URLs (placeholder example.com) but there are no instructions about where visualizations are hosted or whether data is transmitted to third parties.
安装机制
Instruction-only skill with no install spec and no code files to be written to disk — lowest install risk. The embedded Python snippets are documentation only and are not installed/executed by the skill itself.
凭证需求
The skill declares no required credentials or env vars, yet it clearly requires access to student assignment/grade data (sensitive identifiers, time-on-task). There is no declaration of required data connectors, database credentials, or storage locations. This mismatch (no declared data access vs. need to process PII) is a proportionality/privacy gap that should be clarified before use.
持久化与权限
Skill is not set to always:true, has no install steps, and does not request system-wide configuration. It does not request persistent privileges in the manifest.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/16

初始版本:班级数据看板、学生能力画像、教学建议生成

无害

安装命令

点击复制
官方npx clawhub@latest install calculus-learning-analytics
镜像加速npx clawhub@latest install calculus-learning-analytics --registry https://cn.longxiaskill.com

技能文档

概述

基于作业批改数据的学情分析系统,构建学生能力画像、班级整体表现看板、教学建议引擎。实现从数据收集到教学决策的完整闭环。

核心功能

1. 多维度数据看板

  • 班级概览: 提交率、平均分、知识点掌握热力图
  • 学生画像: 个人能力雷达图、进步趋势、薄弱点分析
  • 教学洞察: 错误模式聚类、教学效果评估、资源使用分析

2. 智能分析引擎

  • 能力维度建模: 概念理解、计算能力、逻辑推理三大维度
  • 知识点关联分析: 发现知识点之间的依赖关系
  • 预测模型: 预测学生未来表现和风险预警
  • 个性化推荐: 基于薄弱点的针对性练习推荐

3. 教学决策支持

  • 课堂重点建议: 基于错误集中度推荐讲解重点
  • 分层教学方案: 为不同水平学生设计教学策略
  • 资源优化分配: 智能推荐教学资源和辅导时间

工具定义

generate_class_dashboard

生成班级学情数据看板

参数

  • class_id (string): 班级ID
  • time_range (string): 时间范围,"week"、"month"、"semester"
  • include_metrics (array): 包含的指标列表
  • visualization_type (string): 可视化类型,"summary"、"detailed"、"export"

返回

{
  "dashboard_id": "db_20260416_001",
  "class_info": {
    "class_id": "math2024-01",
    "student_count": 45,
    "time_range": "2026-04-01 至 2026-04-15"
  },
  "overview_metrics": {
    "submission_rate": 92.3,
    "average_score": 78.5,
    "completion_rate": 85.7,
    "improvement_rate": 12.3
  },
  "knowledge_heatmap": [
    {
      "topic": "导数计算",
      "mastery_rate": 88.2,
      "common_errors": ["链式法则", "隐函数求导"]
    },
    {
      "topic": "定积分应用",
      "mastery_rate": 72.5,
      "common_errors": ["积分上下限", "面积计算"]
    }
  ],
  "ability_radar": {
    "concept_understanding": 75.3,
    "computation_ability": 82.1,
    "logical_reasoning": 68.7,
    "problem_solving": 71.2,
    "mathematical_modeling": 65.4
  },
  "visualizations": {
    "heatmap_url": "https://example.com/heatmap.png",
    "radar_chart_url": "https://example.com/radar.png",
    "trend_chart_url": "https://example.com/trend.png"
  }
}

analyze_student_profile

深度分析学生个人学习画像

参数

  • student_id (string): 学生ID
  • analysis_depth (string): 分析深度,"basic"、"standard"、"deep"
  • include_comparison (boolean): 是否包含班级对比
  • generate_recommendations (boolean): 是否生成学习建议

返回

{
  "student_id": "stu001",
  "basic_info": {
    "name": "张三",
    "class": "math2024-01",
    "total_assignments": 24,
    "average_score": 81.5
  },
  "learning_trend": {
    "score_trend": [75, 78, 82, 85, 81, 83, 86],
    "submission_trend": [1, 1, 1, 1, 0, 1, 1],  # 1=提交,0=未提交
    "time_spent_trend": [45, 50, 48, 52, 0, 55, 53]  # 分钟
  },
  "knowledge_mastery": {
    "strong_topics": [
      {"topic": "导数计算", "mastery": 92, "rank": "top10%"},
      {"topic": "函数极限", "mastery": 88, "rank": "top20%"}
    ],
    "weak_topics": [
      {"topic": "微分中值定理", "mastery": 62, "rank": "bottom30%"},
      {"topic": "泰勒公式", "mastery": 58, "rank": "bottom25%"}
    ],
    "improving_topics": [
      {"topic": "不定积分", "from": 65, "to": 78, "improvement": 13}
    ]
  },
  "error_patterns": {
    "most_common": "计算粗心错误",
    "frequency": 8,
    "contexts": ["积分计算", "导数运算"],
    "time_pattern": "作业后半段出现较多"
  },
  "personalized_recommendations": {
    "immediate": [
      "重点复习微分中值定理的应用场景",
      "完成泰勒公式专项练习5题"
    ],
    "short_term": [
      "每周增加30分钟证明题练习",
      "建立错题本,记录计算粗心错误"
    ],
    "long_term": [
      "参加数学建模兴趣小组",
      "阅读《微积分的历程》拓展视野"
    ]
  },
  "comparison_with_class": {
    "score_percentile": 75.3,
    "submission_rank": "前30%",
    "improvement_rank": "前20%"
  }
}

generate_teaching_recommendations

生成教学建议和课堂优化方案

参数

  • class_id (string): 班级ID
  • focus_topics (array): 重点关注知识点
  • time_constraint (number): 课堂时间约束(分钟)
  • teaching_style (string): 教学风格,"traditional"、"interactive"、"flipped"

返回

{
  "recommendation_id": "rec_001",
  "class_analysis": {
    "overall_level": "中等偏上",
    "main_challenges": ["抽象概念理解", "证明题逻辑"],
    "learning_characteristics": "计算能力强,逻辑推理需加强"
  },
  "next_class_focus": {
    "primary_topic": "微分中值定理应用",
    "time_allocation": {
      "concept_explanation": 20,
      "example_demonstration": 15,
      "student_practice": 25,
      "qna_discussion": 10
    },
    "key_points": [
      "罗尔定理与拉格朗日定理的联系",
      "中值定理的几何解释",
      "典型应用场景分析"
    ]
  },
  "differentiated_instruction": {
    "advanced_students": [
      "挑战题:中值定理的推广形式",
      "阅读材料:《微积分发展史》相关章节"
    ],
    "average_students": [
      "巩固练习:标准题型训练",
      "小组讨论:定理应用实例"
    ],
    "struggling_students": [
      "基础回顾:定理条件理解",
      "一对一辅导:具体问题解答"
    ]
  },
  "resource_recommendations": {
    "videos": [
      {
        "title": "微分中值定理直观解释",
        "url": "https://example.com/video1",
        "duration": 8,
        "suitable_for": "all"
      }
    ],
    "interactive_tools": [
      {
        "name": "GeoGebra中值定理演示",
        "url": "https://geogebra.org/...",
        "activity": "拖动观察定理条件变化"
      }
    ],
    "practice_sets": [
      {
        "name": "中值定理基础练习",
        "difficulty": "基础",
        "count": 6,
        "estimated_time": 30
      }
    ]
  },
  "assessment_suggestions": {
    "formative": [
      "课堂小测:定理条件判断",
      "小组展示:应用实例分享"
    ],
    "summative": [
      "单元测试:包含证明和应用题",
      "项目作业:实际问题建模"
    ]
  }
}

使用示例

示例1:生成班级数据看板

# 生成月度班级学情看板
openclaw skill calculus-learning-analytics generate_class_dashboard \
  --class-id "math2024-01" \
  --time-range "month" \
  --include-metrics "['submission_rate','average_score','knowledge_mastery']" \
  --visualization-type "detailed"

示例2:深度分析学生画像

# 深度分析学生学习情况
openclaw skill calculus-learning-analytics analyze_student_profile \
  --student-id "stu001" \
  --analysis-depth "deep" \
  --include-comparison true \
  --generate-recommendations true

示例3:生成教学建议

# 为下周课堂生成教学方案
openclaw skill calculus-learning-analytics generate_teaching_recommendations \
  --class-id "math2024-01" \
  --focus-topics "['微分中值定理','泰勒公式']" \
  --time-constraint 90 \
  --teaching-style "interactive"

数据分析模型

能力维度建模

class AbilityModel:
    """学生能力多维度建模"""
    
    def __init__(self):
        self.dimensions = {
            'concept_understanding': {
                'indicators': ['定义记忆', '定理理解', '概念应用'],
                'weight': 0.3
            },
            'computation_ability': {
                'indicators': ['计算速度', '计算准确率', '复杂计算'],
                'weight': 0.25
            },
            'logical_reasoning': {
                'indicators': ['证明逻辑', '问题分析', '推理能力'],
                'weight': 0.25
            },
            'problem_solving': {
                'indicators': ['策略选择', '方法创新', '结果验证'],
                'weight': 0.2
            }
        }
    
    def calculate_ability_scores(self, student_data):
        """计算各维度能力分数"""
        scores = {}
        
        for dim_name, dim_config in self.dimensions.items():
            dimension_score = 0
            total_weight = 0
            
            for indicator in dim_config['indicators']:
                # 从学生数据中提取指标分数
                indicator_score = self.extract_indicator_score(
                    student_data, dim_name, indicator
                )
                dimension_score += indicator_score
                total_weight += 1
            
            scores[dim_name] = dimension_score / total_weight
        
        return scores

知识点关联分析

class KnowledgeGraphAnalyzer:
    """知识点关联关系分析"""
    
    def __init__(self):
        self.graph = KnowledgeGraph()
        
    def analyze_prerequisites(self, weak_topic):
        """分析薄弱知识点的前置依赖"""
        prerequisites = self.graph.get_prerequisites(weak_topic)
        
        # 检查学生是否掌握前置知识点
        missing_prereqs = []
        for prereq in prerequisites:
            if not self.check_mastery(prereq):
                missing_prereqs.append({
                    'topic': prereq,
                    'mastery_level': self.get_mastery_level(prereq),
                    'recommendation': f'先复习{prereq}'
                })
        
        return missing_prereqs
    
    def find_related_errors(self, error_type):
        """发现关联错误模式"""
        related_errors = []
        
        # 基于知识图谱查找关联错误
        for topic in self.graph.get_related_topics(error_type):
            similar_errors = self.find_similar_errors(topic, error_type)
            if similar_errors:
                related_errors.append({
                    'topic': topic,
                    'error_count': len(similar_errors),
                    'common_pattern': self.extract_pattern(similar_errors)
                })
        
        return related_errors

预测模型

class PerformancePredictor:
    """学生表现预测模型"""
    
    def __init__(self):
        self.model = self.load_prediction_model()
        
    def predict_future_score(self, student_history, upcoming_topic):
        """预测学生在未来知识点上的表现"""
        # 特征工程
        features = self.extract_features(student_history)
        
        # 添加知识点特征
        topic_features = self.get_topic_features(upcoming_topic)
        features.update(topic_features)
        
        # 模型预测
        predicted_score = self.model.predict(features)
        confidence = self.model.predict_proba(features)
        
        return {
            'predicted_score': predicted_score,
            'confidence': confidence,
            'key_factors': self.explain_prediction(features)
        }
    
    def identify_at_risk_students(self, class_data, threshold=60):
        """识别风险学生"""
        at_risk = []
        
        for student in class_data:
            # 预测未来表现
            prediction = self.predict_future_score(
                student['history'], 
                student['next_topic']
            )
            
            if prediction['predicted_score'] < threshold:
                at_risk.append({
                    'student_id': student['id'],
                    'predicted_score': prediction['predicted_score'],
                    'risk_factors': prediction['key_factors'],
                    'intervention_suggested': self.suggest_intervention(student)
                })
        
        return at_risk

与现有Skill集成

集成calculus-error-analyzer

# 获取深度错误分析
from calculus_error_analyzer import get_error_insights

error_insights = get_error_insights( class_id="math2024-01", time_range="month", analysis_depth="deep" )

# 整合到学情报告 dashboard_data['error_analysis'] = error_insights

调用question-type-generator

# 基于薄弱点生成练习
from question_type_generator import generate_targeted_practice

practice_set = generate_targeted_practice( weak_topics=student_profile['weak_topics'], difficulty="adaptive", count=10 )

数据可视化

热力图生成

def generate_knowledge_heatmap(self, class_data):
    """生成知识点掌握热力图"""
    heatmap_data = []
    
    for topic in self.knowledge_topics:
        # 计算班级平均掌握率
        mastery_rates = [
            student['knowledge_mastery'].get(topic, 0)
            for student in class_data
        ]
        avg_mastery = sum(mastery_rates) / len(mastery_rates)
        
        # 识别常见错误
        common_errors = self.identify_common_errors(topic, class_data)
        
        heatmap_data.append({
            'topic': topic,
            'mastery_rate': avg_mastery,
            'common_errors': common_errors,
            'color_intensity': self.calculate_color(avg_mastery)
        })
    
    return heatmap_data

雷达图生成

def generate_ability_radar(self, student_scores, class_average):
    """生成能力维度雷达图"""
    radar_data = {
        'dimensions': list(student_scores.keys()),
        'student_scores': list(student_scores.values()),
        'class_average': list(class_average.values()),
        'max_score': 100
    }
    
    # 计算相对优势
    relative_strengths = []
    for dim in student_scores:
        relative = student_scores[dim] - class_average[dim]
        relative_strengths.append({
            'dimension': dim,
            'difference': relative,
            'strength': '优势' if relative > 5 else '劣势' if relative < -5 else '平均'
        })
    
    radar_data['relative_analysis'] = relative_strengths
    return radar_data

配置说明

分析参数配置

analytics_settings:
  scoring_weights:
    concept_understanding: 0.30
    computation_ability: 0.25
    logical_reasoning: 0.25
    problem_solving: 0.20
    
  prediction_settings:
    model: "xgboost"
    features: ["historical_scores", "submission_pattern", "error_types"]
    horizon: 7  # 预测未来7天
    
  visualization:
    color_scheme: "viridis"
    chart_types: ["heatmap", "radar", "line", "bar"]
    export_formats: ["png", "pdf", "html"]

告警阈值配置

alert_thresholds:
  performance:
    at_risk: 60      # 低于60分预警
    significant_drop: 15  # 分数下降15分以上
    
  engagement:
    missing_submissions: 3  # 连续3次未提交
    late_submissions: 5     # 5次以上迟交
    
  progress:
    stagnation: 7    # 7天无进步
    regression: 10   # 退步10分以上

性能优化

数据缓存策略

```python class AnalyticsCache: """学情数据缓存管理""" def __init__(self): self.cache_ttl = { 'dashboard': 300, # 5分钟 'student_profile': 600, # 10分钟 'predictions': 1800, # 30分钟 'recommendations': 3600 # 1小时 } async def get_cached_analysis(self, cache_key, analysis_type): """获取缓存的分析结果""" ttl = self.cache_ttl.get(analysis_type, 300)

数据来源ClawHub ↗ · 中文优化:龙虾技能库