# CSP学生OJ数据集成功能说明 ## 功能概述 本项目现在已经集成了OJ数据获取和分析功能,可以自动从Hydro OJ系统获取学生的作业提交数据,结合学生画像和课堂表现,生成个性化的课评反馈。 ## 文件结构说明 ``` .claude/ ├── rules/ │ └── oj_data.md # OJ数据获取和分析规则 ├── skills/ │ ├── claude_skill.md # 技能总览 │ ├── generate_feedback_skill.md # 课评生成技能(集成OJ数据) │ ├── student_profile_collector_skill.md # 学生画像采集技能 │ └── periodic_summary_skill.md # 周期性总结生成技能 └── config/ └── hw_dict.json # OJ作业ID映射表(包含CSP01-CSP07所有课次的作业ID) scripts/ ├── update_feedback_with_oj.py # OJ数据获取和分析脚本 └── analyze_course_student.py # 课程学生数据分析脚本 .env.example # OJ配置示例文件 ``` ## 配置步骤 1. 复制.env.example为.env,并填写你的OJ账号信息: ``` OJ_BASE_URL=https://oj.qonnwolf.com OJ_USERNAME=你的OJ用户名 OJ_PASSWORD=你的OJ密码 # 默认学生账号密码(CSP03学生统一使用) DEFAULT_OJ_PASSWORD=codemao888 ``` 2. 学生账号配置: - CSP03学生:账号为学生姓名(中文名/全拼),密码统一为`codemao888` - 其他班级:可在`.claude/config/oj_accounts.json`中配置对应班级的账号规则和默认密码 3. 确保hw_dict.json中的作业ID与实际OJ中的作业ID一致,如果有不一致的情况,可以手动修改。 ## 使用方法 ### 1. 生成课后反馈 使用触发词:"写 [班级] [课程代码] 的课后反馈" 例如:"写 周六上午CSP03班 CSP03-05 的课后反馈" 系统会自动: - 获取该课次的OJ作业提交数据 - 分析每个学生的完成情况、错误类型、提交次数 - 结合学生画像和课堂表现生成个性化课评 - 生成班级整体反馈和微信群版本 ### 2. 生成周期性总结 使用触发词:"给我 [学生姓名] 的月度总结" 或 "给我 [班级名] 的季度总结" 系统会自动分析该时间段内的所有OJ数据和课评记录,生成成长总结。 ### 3. 手动运行脚本获取OJ数据 ```bash python scripts/update_feedback_with_oj.py \ --course CSP03-05 \ --title "递归算法应用" \ --class-name "周六上午CSP03班" \ --date 20260506 \ --students "张三,李四,王五" ``` ## 支持的CSP课程 目前已支持CSP01到CSP07所有课次的作业ID映射,覆盖: - CSP01(入门级) - CSP02(基础级) - CSP03(进阶级) - CSP04(提高级) - CSP05(竞赛级入门) - CSP06(竞赛级提高) - CSP07(竞赛级冲刺) ## OJ数据分析维度 系统会自动分析每个学生的: - 作业完成率(AC题数/总题数) - 提交次数和调试效率 - 错误类型分布(WA/RE/CE/TLE等) - 知识点掌握情况 - 学习趋势和进步情况 ## 注意事项 1. OJ课次编号可能与课程大纲编号不一致,系统会自动按标题匹配 2. 如果作业ID映射不准确,可以手动修改.claude/config/hw_dict.json 3. OJ数据是客观参考,最终课评会结合老师的课堂观察进行调整