Files
ClassFeedback/docs/README_OJ.md

94 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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数据是客观参考最终课评会结合老师的课堂观察进行调整