From 12b818e2e942d810fceb4286801eeb7918c3c424 Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:04:06 +0800 Subject: [PATCH 1/6] data: add grades_summary.json --- src/hoa_majors/data/grades_summary.json | 997 ++++++++++++++++++++++++ 1 file changed, 997 insertions(+) create mode 100644 src/hoa_majors/data/grades_summary.json diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json new file mode 100644 index 0000000..1fd63dd --- /dev/null +++ b/src/hoa_majors/data/grades_summary.json @@ -0,0 +1,997 @@ +{ + "grades": { + "AUTO1001": { + "course_name": "自动化认知与实践", + "default": { + "default": { + "grade": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" + } + } + }, + "AUTO2001": { + "course_name": "自动化专业导论", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "AUTO2003B": { + "course_name": "创新训练课 B", + "default": { + "default": { + "grade": "大作业 100%" + } + } + }, + "AUTO2005": { + "course_name": "信号分析与处理", + "default": { + "default": { + "grade": "作业 10% + 实验 25% + 期末考试 65%" + } + } + }, + "AUTO2006": { + "course_name": "控制理论中的代数基础", + "default": { + "default": { + "grade": "平时成绩 10% + 作业 20% + 期末考试 70%" + } + } + }, + "AUTO3001A": { + "course_name": "自动控制理论 A", + "default": { + "default": { + "grade": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" + } + } + }, + "AUTO3001B": { + "course_name": "自动控制理论B", + "default": { + "default": { + "grade": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " + } + } + }, + "AUTO3002A": { + "course_name": "自动控制实践 A", + "default": { + "default": { + "grade": "作业 10% + 实验 25% + 期末考试 65%" + } + } + }, + "AUTO3002B": { + "2021": { + "default": { + "grade": "作业 10% + 实验 40% + 期末考试 50%" + } + }, + "2023": { + "default": { + "grade": "作业 10% + 实验 30% + 期末考试 60%" + } + }, + "course_name": "自动控制实践 B", + "default": { + "default": { + "grade": "作业 10% + 实验 40% + 期末考试 50%" + } + } + }, + "AUTO3003": { + "course_name": "数字图像处理", + "default": { + "default": { + "grade": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" + } + } + }, + "AUTO3004": { + "course_name": "系统建模与仿真", + "default": { + "default": { + "grade": "作业 20% + 实验 20% + 期末考试 60%" + } + } + }, + "AUTO3005": { + "course_name": "机器人学导论", + "default": { + "default": { + "grade": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" + } + } + }, + "AUTO3006": { + "course_name": "机器视觉", + "default": { + "default": { + "grade": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" + } + } + }, + "AUTO3007": { + "2020": { + "default": { + "grade": "作业 20% + 实验 40% + 期末考试 40%" + } + }, + "2021": { + "default": { + "grade": "作业 20% + 实验 30% + 期末考试 50%" + } + }, + "2022": { + "default": { + "grade": "作业 20% + 实验 30% + 期末考试 50%" + } + }, + "course_name": "过程控制系统", + "default": { + "default": { + "grade": "作业 20% + 实验 30% + 期末考试 50%" + } + } + }, + "AUTO3011": { + "course_name": "运动控制系统", + "default": { + "default": { + "grade": "作业+实验 50% + 期末考试 50%" + } + } + }, + "AUTO3012": { + "course_name": "移动机器人导论", + "default": { + "default": { + "grade": "作业 20% + 实验 40% + 实验报告 40%" + } + } + }, + "AUTO3016": { + "course_name": "自动控制实践 A 实验", + "default": { + "default": { + "grade": "实验报告 90% (10% × 9) + 答辩 10%" + } + } + }, + "AUTO3019": { + "course_name": "机器学习概论", + "default": { + "default": { + "grade": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" + } + } + }, + "AUTO3022": { + "course_name": "自动化领域专家系列讲座", + "default": { + "default": { + "grade": "报告 100%" + } + } + }, + "AUTO3024": { + "course_name": "嵌入式系统", + "default": { + "default": { + "grade": "作业 10% + 实验 50% + 期末考试 40%" + } + } + }, + "AUTO3028": { + "2021": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + }, + "2023": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + }, + "course_name": "数学规划与数值优化" + }, + "AUTO3099": { + "21级": { + "default": { + "grade": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" + } + }, + "course_name": "毕业设计" + }, + "AUTO5001": { + "course_name": "线性系统理论", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "AUTO5002": { + "course_name": "系统辨识", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "AUTO5005": { + "course_name": "非线性与自适应控制", + "default": { + "default": { + "grade": "平时成绩 30% + 期末考试 70%" + } + } + }, + "AUTO5013": { + "course_name": "最优估计", + "default": { + "default": { + "grade": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" + } + } + }, + "AUTO5023": { + "2024": { + "default": { + "grade": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" + } + }, + "course_name": "凸优化与最优控制", + "default": { + "default": { + "grade": "随堂测验 10% + 作业 20% + 期末考试 70%" + } + } + }, + "AUTO5024": { + "course_name": "模式识别", + "default": { + "default": { + "grade": "上机实验 40% + 期末考试 60%" + } + } + }, + "CHEM1012": { + "course_name": "大学化学III", + "default": { + "default": { + "grade": "平时 60% + 实验 40%" + } + } + }, + "COMP1011": { + "course_name": "程序设计与思维实践", + "default": { + "default": { + "grade": "作业 10% + 实验 30% + 期末考试 60%" + } + } + }, + "COMP2001": { + "course_name": "计算机专业导论", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "COMP2008": { + "course_name": "计算机组成原理", + "default": { + "default": { + "grade": "作业 10% + 实验 20% + 期末考试 70%" + } + } + }, + "COMP2010": { + "course_name": "近世代数", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "COMP2012": { + "course_name": "计算机设计与实践", + "default": { + "default": { + "grade": "实验 100%" + } + } + }, + "COMP2014": { + "course_name": "C++语言程序设计", + "default": { + "default": { + "grade": "作业 20% + 实验 40% + 期末考试 40%" + } + } + }, + "COMP2029": { + "course_name": "面向领域的计算机系统设计与开发实践", + "default": { + "default": { + "grade": "过程检查 30% + 结题验收 70%" + } + } + }, + "COMP2030": { + "course_name": "离散数学", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "COMP2050": { + "2021": { + "default": { + "grade": "作业 10% + 实验 20% + 作业 70%" + } + }, + "course_name": "数据结构与算法" + }, + "COMP2051": { + "course_name": "数字逻辑设计", + "default": { + "default": { + "grade": "作业 20% + 实验 30% + 期末考试 50%" + } + } + }, + "COMP2052": { + "course_name": "数据结构与算法", + "default": { + "default": { + "grade": "作业 10% + 实验 20% + 期末考试 70%" + } + } + }, + "COMP3001": { + "course_name": "操作系统", + "default": { + "default": { + "grade": "平时分 10% + 实验 30% + 期末考试 60%" + } + } + }, + "COMP3002": { + "course_name": "软件工程", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "COMP3004": { + "course_name": "形式语言与自动机", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "COMP3005": { + "course_name": "人工智能", + "default": { + "default": { + "grade": "作业 30% + 实验 30% + 期末考试 40%" + } + } + }, + "COMP3006": { + "course_name": "机器学习", + "default": { + "default": { + "grade": "作业 10% + Project 50% + 期末考试 40%" + } + } + }, + "COMP3007": { + "course_name": "模式识别", + "default": { + "default": { + "grade": "作业 10% + 期末考试 90%" + } + } + }, + "COMP3009": { + "course_name": "大数据导论", + "default": { + "default": { + "grade": "大作业 40% + 小作业 30% + 实验 30%" + } + } + }, + "COMP3010": { + "course_name": "数据库系统", + "default": { + "default": { + "grade": "作业 10% + 实验 30% + 期末考试 60%" + } + } + }, + "COMP3011": { + "course_name": "计算机体系结构", + "default": { + "default": { + "grade": "作业 20% + 实验 40% + 期末考试 40%" + } + } + }, + "COMP3013": { + "course_name": "编译原理", + "default": { + "default": { + "grade": "作业 10% + 实验 20% + 期末考试 70%" + } + } + }, + "COMP3017": { + "course_name": "服务计算", + "default": { + "default": { + "grade": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" + } + } + }, + "COMP3018": { + "course_name": "图像处理", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "COMP3019": { + "course_name": "生物信息学", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "COMP3021": { + "course_name": "自然语言处理", + "default": { + "default": { + "grade": "比赛 60% + 期末考试 40%" + } + } + }, + "COMP3028": { + "course_name": "软件体系结构", + "default": { + "default": { + "grade": "Participation 10% + Practical exercises 30% + Final examination 60%" + } + } + }, + "COMP3029": { + "course_name": "计算机视觉", + "default": { + "default": { + "grade": "考勤 24% + 作业 40% + Final Project 36%" + } + } + }, + "COMP3030": { + "course_name": "信息检索", + "default": { + "default": { + "grade": "随堂练习 10% + 作业 40% + 大项目 50%" + } + } + }, + "COMP3039": { + "course_name": "嵌入式计算", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + } + }, + "COMP3040": { + "course_name": "密码学基础", + "default": { + "default": { + "grade": "作业 20% + 实验 30% + 期末考试 50%" + } + } + }, + "COMP3043": { + "course_name": "深度学习体系结构", + "default": { + "default": { + "grade": "实验 40% + 课堂小测 40% + 期末报告 20%" + } + } + }, + "COMP3044": { + "course_name": "科研写作交流技巧", + "default": { + "default": { + "grade": "课堂参与 20% + 课堂展示 40% + 论文 40%" + } + } + }, + "COMP3052": { + "course_name": "计算机系统", + "default": { + "default": { + "grade": "作业 20% + 实验 20% + 期末考试 60%" + } + } + }, + "COMP3053": { + "course_name": "汇编语言与接口技术", + "default": { + "default": { + "grade": "作业 20% + 实验 20% + 期末考试 60%" + } + } + }, + "COMP3054": { + "course_name": "网络与系统安全", + "default": { + "default": { + "grade": "作业 10% + 实验 30% + 期末考试 60%" + } + } + }, + "COMP3059": { + "course_name": "软件构造", + "default": { + "default": { + "grade": "作业 10% + 上机实验 40% + 期末考试 50%" + } + } + }, + "COMP3060": { + "course_name": "软件构造实践", + "default": { + "default": { + "grade": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" + } + } + }, + "ECON2005F": { + "course_name": "经济学原理(跨专业选修)", + "default": { + "default": { + "grade": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" + } + } + }, + "EE1007": { + "21级电气/通信、22级自动化": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + }, + "21级自动化": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + }, + "course_name": "模拟电子技术基础" + }, + "EE1008": { + "course_name": "模拟电子技术实验", + "default": { + "default": { + "grade": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" + } + } + }, + "EE1009": { + "course_name": "数字电子技术基础", + "default": { + "default": { + "grade": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" + } + } + }, + "EE1010": { + "course_name": "数字电子技术实验", + "default": { + "default": { + "grade": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" + } + } + }, + "EE1011A": { + "WangCan": { + "default": { + "grade": "作业 35% + 期末考试 65%" + } + }, + "WangYi": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + }, + "course_name": "电路IA" + }, + "EE1011B": { + "course_name": "电路IB", + "default": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + } + }, + "EE1012A": { + "course_name": "电路实验IA", + "default": { + "default": { + "grade": "实验报告 100%" + } + } + }, + "EE1012B": { + "course_name": "电路实验IB", + "default": { + "default": { + "grade": "出勤 + 实验报告 100%" + } + } + }, + "EE1013": { + "course_name": "电路与电子学", + "default": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + } + }, + "EE1014": { + "course_name": "电路与电子技术实验", + "default": { + "default": { + "grade": "实验报告 100%" + } + } + }, + "EE1018": { + "course_name": "电路与电子学I", + "default": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + } + }, + "EE2003": { + "course_name": "电磁场", + "default": { + "default": { + "grade": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" + } + } + }, + "EE2004": { + "2024": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + }, + "course_name": "高等电路与电子分析" + }, + "EE3002": { + "course_name": "电力电子技术", + "default": { + "default": { + "grade": "实验 20% + 期中考试 20% + 期末考试 60%" + } + } + }, + "EE3015": { + "course_name": "电力系统分析" + }, + "EE304X": { + "course_name": "专业综合实践", + "default": { + "default": { + "grade": "实物验收 30% + 设计报告 70%" + } + } + }, + "EMEC1002": { + "2024": { + "default": { + "grade": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" + } + }, + "course_name": "理论力学II" + }, + "ENGG1002": { + "course_name": "工程训练(金工实习)", + "default": { + "default": { + "grade": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" + } + } + }, + "ENGG1003": { + "23级": { + "default": { + "grade": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" + } + }, + "course_name": "工程训练(电子工艺实习)", + "default": { + "default": { + "grade": "实验 100% (具体细分参考年份配置)" + } + } + }, + "GEIP1011": { + "2022": { + "default": { + "grade": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" + } + }, + "2023": { + "default": { + "grade": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" + } + }, + "course_name": "马克思主义基本原理" + }, + "GEIP1015": { + "course_name": "思想道德与法治", + "default": { + "default": { + "grade": "平时 50% + 期末考试 50%" + } + } + }, + "GEIP1016": { + "course_name": "中国近现代史纲要", + "default": { + "default": { + "grade": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" + } + } + }, + "GEIP1017": { + "2023": { + "default": { + "grade": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" + } + }, + "2024": { + "default": { + "grade": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" + } + }, + "2025": { + "default": { + "grade": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" + } + }, + "course_name": "习近平新时代中国特色社会主义思想概论", + "default": { + "default": { + "grade": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" + } + } + }, + "GEIP1018": { + "2024": { + "default": { + "grade": "课程论文 10% + 小组汇报 20% + 期末考试 70%" + } + }, + "course_name": "毛泽东思想和中国特色社会主义理论体系概论" + }, + "GEIP4004": { + "course_name": "新时代中国特色社会主义理论与实践", + "default": { + "default": { + "grade": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" + } + } + }, + "LANG100X": { + "course_name": "大学英语", + "default": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + }, + "大一": { + "default": { + "grade": "作业 40% + 期末考试 60%" + } + }, + "大二": { + "default": { + "grade": "作业 50% + 期末考试 50%" + } + } + }, + "MATH1002": { + "course_name": "代数与几何", + "default": { + "default": { + "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + } + } + }, + "MATH1004": { + "course_name": "概率论与数理统计", + "default": { + "default": { + "grade": "作业 20% + 论文 10% + 期末考试 70%" + } + } + }, + "MATH1005": { + "course_name": "复变函数与积分变换", + "default": { + "default": { + "grade": "作业 20% + 期末考试 80%" + } + } + }, + "MATH1015A": { + "course_name": "微积分A", + "default": { + "default": { + "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + } + } + }, + "MATH1015B": { + "course_name": "微积分B", + "default": { + "default": { + "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + } + } + }, + "MATH4001": { + "course_name": "矩阵分析", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "MATH4002": { + "course_name": "优化算法", + "default": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + } + }, + "MATH4004": { + "course_name": "数值分析", + "default": { + "default": { + "grade": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" + } + } + }, + "MECH2010": { + "course_name": "机械设计基础", + "default": { + "default": { + "grade": "平时成绩 30% + 作业 20% + 期末考试 50%" + } + } + }, + "MECH2019": { + "course_name": "设计与制造 A", + "default": { + "default": { + "grade": "平时作业 20% + 大作业 30% + 期末考试 50%" + } + } + }, + "MECH2020": { + "course_name": "设计与制造B", + "default": { + "default": { + "grade": "小作业 10% + 大作业 20% + 期末考试 70%" + } + } + }, + "MECH2022": { + "course_name": "固体力学", + "default": { + "default": { + "grade": "作业 15% + 实验 15% + 期末考试 70%" + } + } + }, + "MECH3005": { + "course_name": "机电系统控制基础", + "default": { + "default": { + "grade": "平时作业 20% + 实验 20% + 期末考试 60%" + } + } + }, + "MECH3041": { + "course_name": "设计与制造 C", + "default": { + "default": { + "grade": "大作业 20% + 实验 30% + 期末考试 50%" + } + } + }, + "MECH3060": { + "course_name": "机器人学基础", + "default": { + "default": { + "grade": "作业 25% + 实验 15% + 期末考试 60%" + } + } + }, + "PHYS1001": { + "2023": { + "default": { + "grade": "作业 30% + 期末考试 70%" + } + }, + "2024": { + "default": { + "grade": { + "作业": "30%", + "期中考试": "20%", + "期末考试": "50%" + } + } + }, + "course_name": "大学物理" + }, + "PHYS1002": { + "course_name": "大学物理实验", + "default": { + "default": { + "grade": "每次实验得分的加权和 100%" + } + } + }, + "SEIN1040": { + "course_name": "中国科技史话", + "default": { + "default": { + "grade": "平时 20% + 实验 40% + 课堂展示 40%" + } + } + }, + "WOCD1008": { + "course_name": "日语I", + "default": { + "default": { + "grade": "平时成绩 100%" + } + } + }, + "WRIT0001": { + "course_name": "写作与沟通", + "default": { + "default": { + "grade": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" + } + }, + "寸熙": { + "default": { + "grade": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" + } + } + } + } +} From 9146bd0921aa76b670adaf1561e04a45d1e92bde Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:12:11 +0800 Subject: [PATCH 2/6] data: structure grade breakdown as items list --- scripts/update_grades_summary.py | 102 + src/hoa_majors/data/grades_summary.json | 2310 +++++++++++++++++++++-- 2 files changed, 2280 insertions(+), 132 deletions(-) create mode 100644 scripts/update_grades_summary.py diff --git a/scripts/update_grades_summary.py b/scripts/update_grades_summary.py new file mode 100644 index 0000000..0d31240 --- /dev/null +++ b/scripts/update_grades_summary.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Update grades_summary.json from repos-management/grades_summary.toml. + +Schema (per course/year/variant grade entry): + grade = { + "raw": , + "items": [ {"name": , "percent": } ... ], + "note": + } + +Rationale: +- Always preserves the original text in `raw`. +- Provides a structured list in `items` when parseable. +- Captures any leftover/annotation text in `note`. +""" + +from __future__ import annotations + +import json +import re +import tomllib +import urllib.request +from pathlib import Path +from typing import Any + +SOURCE_URL = ( + "https://raw.githubusercontent.com/HITSZ-OpenAuto/repos-management/main/grades_summary.toml" +) +OUT_PATH = Path(__file__).resolve().parents[1] / "src/hoa_majors/data/grades_summary.json" + +PERCENT_RE = re.compile(r"(\d+%)") + + +def parse_grade(raw: str) -> dict[str, Any]: + """Parse a grade string into a structured object. + + We aim for best-effort parsing while keeping raw text intact. + """ + + raw_norm = raw.replace("+", "+") + + # Split on '+' only when it likely separates components. + # - "... 30%+ ..." (plus right after a percent) + # - "... + ..." (plus surrounded by whitespace) + # This avoids splitting merged names like "作业+实验 50%". + split_re = r"(?<=%)\s*\+\s*|\s+\+\s+" + parts = [p.strip() for p in re.split(split_re, raw_norm) if p.strip()] + + items: list[dict[str, str]] = [] + notes: list[str] = [] + + for part in parts or [raw_norm.strip()]: + m = PERCENT_RE.search(part) + if not m: + # Not parseable as a (name, percent) pair. + notes.append(part) + continue + + percent = m.group(1) + name = part[: m.start()].strip() + tail = part[m.end() :].strip() + + # If the "name" is empty, treat as note to avoid producing nonsense keys. + if not name: + notes.append(part) + continue + + items.append({"name": name, "percent": percent}) + if tail: + notes.append(tail) + + note = " ".join(n for n in notes if n).strip() or None + return {"raw": raw, "items": items, "note": note} + + +def transform(obj: Any) -> None: + if isinstance(obj, dict): + for k, v in list(obj.items()): + if k == "grade" and isinstance(v, str): + obj[k] = parse_grade(v) + else: + transform(v) + elif isinstance(obj, list): + for v in obj: + transform(v) + + +def main() -> None: + raw_bytes = urllib.request.urlopen(SOURCE_URL).read() + data = tomllib.loads(raw_bytes.decode("utf-8")) + + transform(data) + + OUT_PATH.parent.mkdir(parents=True, exist_ok=True) + OUT_PATH.write_text( + json.dumps(data, ensure_ascii=False, indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + + +if __name__ == "__main__": + main() diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json index 1fd63dd..8d3fa8f 100644 --- a/src/hoa_majors/data/grades_summary.json +++ b/src/hoa_majors/data/grades_summary.json @@ -4,7 +4,28 @@ "course_name": "自动化认知与实践", "default": { "default": { - "grade": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课堂实验", + "percent": "30%" + }, + { + "name": "机器人考核", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ], + "note": null, + "raw": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" + } } } }, @@ -12,7 +33,20 @@ "course_name": "自动化专业导论", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -20,7 +54,16 @@ "course_name": "创新训练课 B", "default": { "default": { - "grade": "大作业 100%" + "grade": { + "items": [ + { + "name": "大作业", + "percent": "100%" + } + ], + "note": null, + "raw": "大作业 100%" + } } } }, @@ -28,7 +71,24 @@ "course_name": "信号分析与处理", "default": { "default": { - "grade": "作业 10% + 实验 25% + 期末考试 65%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": null, + "raw": "作业 10% + 实验 25% + 期末考试 65%" + } } } }, @@ -36,7 +96,24 @@ "course_name": "控制理论中的代数基础", "default": { "default": { - "grade": "平时成绩 10% + 作业 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "平时成绩 10% + 作业 20% + 期末考试 70%" + } } } }, @@ -44,7 +121,32 @@ "course_name": "自动控制理论 A", "default": { "default": { - "grade": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "13%" + }, + { + "name": "课堂表现", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "4%" + }, + { + "name": "硬件实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" + } } } }, @@ -52,7 +154,32 @@ "course_name": "自动控制理论B", "default": { "default": { - "grade": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " + "grade": { + "items": [ + { + "name": "作业", + "percent": "12%" + }, + { + "name": "出勤", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "5%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " + } } } }, @@ -60,25 +187,93 @@ "course_name": "自动控制实践 A", "default": { "default": { - "grade": "作业 10% + 实验 25% + 期末考试 65%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": null, + "raw": "作业 10% + 实验 25% + 期末考试 65%" + } } } }, "AUTO3002B": { "2021": { "default": { - "grade": "作业 10% + 实验 40% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 实验 40% + 期末考试 50%" + } } }, "2023": { "default": { - "grade": "作业 10% + 实验 30% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" + } } }, "course_name": "自动控制实践 B", "default": { "default": { - "grade": "作业 10% + 实验 40% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 实验 40% + 期末考试 50%" + } } } }, @@ -86,7 +281,28 @@ "course_name": "数字图像处理", "default": { "default": { - "grade": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课程设计", + "percent": "25%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "45%" + } + ], + "note": null, + "raw": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" + } } } }, @@ -94,7 +310,24 @@ "course_name": "系统建模与仿真", "default": { "default": { - "grade": "作业 20% + 实验 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" + } } } }, @@ -102,7 +335,28 @@ "course_name": "机器人学导论", "default": { "default": { - "grade": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "课程设计", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" + } } } }, @@ -110,30 +364,123 @@ "course_name": "机器视觉", "default": { "default": { - "grade": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "考勤", + "percent": "5%" + }, + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "课设", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" + } } } }, "AUTO3007": { "2020": { "default": { - "grade": "作业 20% + 实验 40% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" + } } }, "2021": { "default": { - "grade": "作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" + } } }, "2022": { "default": { - "grade": "作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" + } } }, "course_name": "过程控制系统", "default": { "default": { - "grade": "作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" + } } } }, @@ -141,7 +488,20 @@ "course_name": "运动控制系统", "default": { "default": { - "grade": "作业+实验 50% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业+实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业+实验 50% + 期末考试 50%" + } } } }, @@ -149,7 +509,24 @@ "course_name": "移动机器人导论", "default": { "default": { - "grade": "作业 20% + 实验 40% + 实验报告 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "实验报告", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 实验报告 40%" + } } } }, @@ -157,7 +534,20 @@ "course_name": "自动控制实践 A 实验", "default": { "default": { - "grade": "实验报告 90% (10% × 9) + 答辩 10%" + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "90%" + }, + { + "name": "答辩", + "percent": "10%" + } + ], + "note": "(10% × 9)", + "raw": "实验报告 90% (10% × 9) + 答辩 10%" + } } } }, @@ -165,7 +555,28 @@ "course_name": "机器学习概论", "default": { "default": { - "grade": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" + "grade": { + "items": [ + { + "name": "平时", + "percent": "10%" + }, + { + "name": "作业", + "percent": "30%" + }, + { + "name": "报告", + "percent": "20%" + }, + { + "name": "期末大作业", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" + } } } }, @@ -173,7 +584,16 @@ "course_name": "自动化领域专家系列讲座", "default": { "default": { - "grade": "报告 100%" + "grade": { + "items": [ + { + "name": "报告", + "percent": "100%" + } + ], + "note": null, + "raw": "报告 100%" + } } } }, @@ -181,19 +601,62 @@ "course_name": "嵌入式系统", "default": { "default": { - "grade": "作业 10% + 实验 50% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + 实验 50% + 期末考试 40%" + } } } }, "AUTO3028": { "2021": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } }, "2023": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } }, "course_name": "数学规划与数值优化" @@ -201,7 +664,36 @@ "AUTO3099": { "21级": { "default": { - "grade": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" + "grade": { + "items": [ + { + "name": "开题检查", + "percent": "2%" + }, + { + "name": "中期检查", + "percent": "3%" + }, + { + "name": "结题检查", + "percent": "5%" + }, + { + "name": "指导老师评分", + "percent": "27%" + }, + { + "name": "评阅老师评分", + "percent": "18%" + }, + { + "name": "答辩小组评分", + "percent": "45%" + } + ], + "note": null, + "raw": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" + } } }, "course_name": "毕业设计" @@ -210,7 +702,20 @@ "course_name": "线性系统理论", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -218,7 +723,20 @@ "course_name": "系统辨识", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -226,7 +744,20 @@ "course_name": "非线性与自适应控制", "default": { "default": { - "grade": "平时成绩 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "平时成绩 30% + 期末考试 70%" + } } } }, @@ -234,20 +765,71 @@ "course_name": "最优估计", "default": { "default": { - "grade": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "项目", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" + } } } }, "AUTO5023": { "2024": { "default": { - "grade": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业(含凸优化习题以及最优控制大作业)", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" + } } }, "course_name": "凸优化与最优控制", "default": { "default": { - "grade": "随堂测验 10% + 作业 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "随堂测验", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "随堂测验 10% + 作业 20% + 期末考试 70%" + } } } }, @@ -255,7 +837,20 @@ "course_name": "模式识别", "default": { "default": { - "grade": "上机实验 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "上机实验 40% + 期末考试 60%" + } } } }, @@ -263,7 +858,20 @@ "course_name": "大学化学III", "default": { "default": { - "grade": "平时 60% + 实验 40%" + "grade": { + "items": [ + { + "name": "平时", + "percent": "60%" + }, + { + "name": "实验", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 60% + 实验 40%" + } } } }, @@ -271,7 +879,24 @@ "course_name": "程序设计与思维实践", "default": { "default": { - "grade": "作业 10% + 实验 30% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" + } } } }, @@ -279,7 +904,20 @@ "course_name": "计算机专业导论", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -287,7 +925,24 @@ "course_name": "计算机组成原理", "default": { "default": { - "grade": "作业 10% + 实验 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" + } } } }, @@ -295,7 +950,20 @@ "course_name": "近世代数", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -303,7 +971,16 @@ "course_name": "计算机设计与实践", "default": { "default": { - "grade": "实验 100%" + "grade": { + "items": [ + { + "name": "实验", + "percent": "100%" + } + ], + "note": null, + "raw": "实验 100%" + } } } }, @@ -311,7 +988,24 @@ "course_name": "C++语言程序设计", "default": { "default": { - "grade": "作业 20% + 实验 40% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" + } } } }, @@ -319,7 +1013,20 @@ "course_name": "面向领域的计算机系统设计与开发实践", "default": { "default": { - "grade": "过程检查 30% + 结题验收 70%" + "grade": { + "items": [ + { + "name": "过程检查", + "percent": "30%" + }, + { + "name": "结题验收", + "percent": "70%" + } + ], + "note": null, + "raw": "过程检查 30% + 结题验收 70%" + } } } }, @@ -327,14 +1034,44 @@ "course_name": "离散数学", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, "COMP2050": { "2021": { "default": { - "grade": "作业 10% + 实验 20% + 作业 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "作业", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 作业 70%" + } } }, "course_name": "数据结构与算法" @@ -343,7 +1080,24 @@ "course_name": "数字逻辑设计", "default": { "default": { - "grade": "作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" + } } } }, @@ -351,7 +1105,24 @@ "course_name": "数据结构与算法", "default": { "default": { - "grade": "作业 10% + 实验 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" + } } } }, @@ -359,7 +1130,24 @@ "course_name": "操作系统", "default": { "default": { - "grade": "平时分 10% + 实验 30% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "平时分", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时分 10% + 实验 30% + 期末考试 60%" + } } } }, @@ -367,7 +1155,20 @@ "course_name": "软件工程", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -375,7 +1176,20 @@ "course_name": "形式语言与自动机", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -383,7 +1197,24 @@ "course_name": "人工智能", "default": { "default": { - "grade": "作业 30% + 实验 30% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 30% + 实验 30% + 期末考试 40%" + } } } }, @@ -391,7 +1222,24 @@ "course_name": "机器学习", "default": { "default": { - "grade": "作业 10% + Project 50% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "Project", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + Project 50% + 期末考试 40%" + } } } }, @@ -399,7 +1247,20 @@ "course_name": "模式识别", "default": { "default": { - "grade": "作业 10% + 期末考试 90%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "90%" + } + ], + "note": null, + "raw": "作业 10% + 期末考试 90%" + } } } }, @@ -407,7 +1268,24 @@ "course_name": "大数据导论", "default": { "default": { - "grade": "大作业 40% + 小作业 30% + 实验 30%" + "grade": { + "items": [ + { + "name": "大作业", + "percent": "40%" + }, + { + "name": "小作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + } + ], + "note": null, + "raw": "大作业 40% + 小作业 30% + 实验 30%" + } } } }, @@ -415,7 +1293,24 @@ "course_name": "数据库系统", "default": { "default": { - "grade": "作业 10% + 实验 30% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" + } } } }, @@ -423,7 +1318,24 @@ "course_name": "计算机体系结构", "default": { "default": { - "grade": "作业 20% + 实验 40% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" + } } } }, @@ -431,7 +1343,24 @@ "course_name": "编译原理", "default": { "default": { - "grade": "作业 10% + 实验 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" + } } } }, @@ -439,7 +1368,28 @@ "course_name": "服务计算", "default": { "default": { - "grade": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" + "grade": { + "items": [ + { + "name": "Participation", + "percent": "5%" + }, + { + "name": "Hot topic study journal", + "percent": "15%" + }, + { + "name": "Exercises", + "percent": "20%" + }, + { + "name": "Final Examination", + "percent": "60%" + } + ], + "note": null, + "raw": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" + } } } }, @@ -447,7 +1397,20 @@ "course_name": "图像处理", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -455,7 +1418,20 @@ "course_name": "生物信息学", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -463,7 +1439,20 @@ "course_name": "自然语言处理", "default": { "default": { - "grade": "比赛 60% + 期末考试 40%" + "grade": { + "items": [ + { + "name": "比赛", + "percent": "60%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "比赛 60% + 期末考试 40%" + } } } }, @@ -471,7 +1460,24 @@ "course_name": "软件体系结构", "default": { "default": { - "grade": "Participation 10% + Practical exercises 30% + Final examination 60%" + "grade": { + "items": [ + { + "name": "Participation", + "percent": "10%" + }, + { + "name": "Practical exercises", + "percent": "30%" + }, + { + "name": "Final examination", + "percent": "60%" + } + ], + "note": null, + "raw": "Participation 10% + Practical exercises 30% + Final examination 60%" + } } } }, @@ -479,7 +1485,24 @@ "course_name": "计算机视觉", "default": { "default": { - "grade": "考勤 24% + 作业 40% + Final Project 36%" + "grade": { + "items": [ + { + "name": "考勤", + "percent": "24%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "Final Project", + "percent": "36%" + } + ], + "note": null, + "raw": "考勤 24% + 作业 40% + Final Project 36%" + } } } }, @@ -487,7 +1510,24 @@ "course_name": "信息检索", "default": { "default": { - "grade": "随堂练习 10% + 作业 40% + 大项目 50%" + "grade": { + "items": [ + { + "name": "随堂练习", + "percent": "10%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "大项目", + "percent": "50%" + } + ], + "note": null, + "raw": "随堂练习 10% + 作业 40% + 大项目 50%" + } } } }, @@ -495,7 +1535,20 @@ "course_name": "嵌入式计算", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } } }, @@ -503,7 +1556,24 @@ "course_name": "密码学基础", "default": { "default": { - "grade": "作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" + } } } }, @@ -511,7 +1581,24 @@ "course_name": "深度学习体系结构", "default": { "default": { - "grade": "实验 40% + 课堂小测 40% + 期末报告 20%" + "grade": { + "items": [ + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂小测", + "percent": "40%" + }, + { + "name": "期末报告", + "percent": "20%" + } + ], + "note": null, + "raw": "实验 40% + 课堂小测 40% + 期末报告 20%" + } } } }, @@ -519,7 +1606,24 @@ "course_name": "科研写作交流技巧", "default": { "default": { - "grade": "课堂参与 20% + 课堂展示 40% + 论文 40%" + "grade": { + "items": [ + { + "name": "课堂参与", + "percent": "20%" + }, + { + "name": "课堂展示", + "percent": "40%" + }, + { + "name": "论文", + "percent": "40%" + } + ], + "note": null, + "raw": "课堂参与 20% + 课堂展示 40% + 论文 40%" + } } } }, @@ -527,7 +1631,24 @@ "course_name": "计算机系统", "default": { "default": { - "grade": "作业 20% + 实验 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" + } } } }, @@ -535,7 +1656,24 @@ "course_name": "汇编语言与接口技术", "default": { "default": { - "grade": "作业 20% + 实验 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" + } } } }, @@ -543,7 +1681,24 @@ "course_name": "网络与系统安全", "default": { "default": { - "grade": "作业 10% + 实验 30% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" + } } } }, @@ -551,7 +1706,24 @@ "course_name": "软件构造", "default": { "default": { - "grade": "作业 10% + 上机实验 40% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 上机实验 40% + 期末考试 50%" + } } } }, @@ -559,7 +1731,28 @@ "course_name": "软件构造实践", "default": { "default": { - "grade": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" + "grade": { + "items": [ + { + "name": "开题报告", + "percent": "10%" + }, + { + "name": "中期检查", + "percent": "20%" + }, + { + "name": "结题报告", + "percent": "20%" + }, + { + "name": "软件作品", + "percent": "50%" + } + ], + "note": null, + "raw": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" + } } } }, @@ -567,19 +1760,66 @@ "course_name": "经济学原理(跨专业选修)", "default": { "default": { - "grade": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" + "grade": { + "items": [ + { + "name": "考勤", + "percent": "20%" + }, + { + "name": "生活中的经济学", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ], + "note": null, + "raw": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" + } } } }, "EE1007": { "21级电气/通信、22级自动化": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } }, "21级自动化": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } }, "course_name": "模拟电子技术基础" @@ -588,7 +1828,11 @@ "course_name": "模拟电子技术实验", "default": { "default": { - "grade": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" + "grade": { + "items": [], + "note": "MOOC预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", + "raw": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" + } } } }, @@ -596,7 +1840,20 @@ "course_name": "数字电子技术基础", "default": { "default": { - "grade": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": "(上课会有小测,以考勤为主,到场即有60分)", + "raw": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" + } } } }, @@ -604,19 +1861,49 @@ "course_name": "数字电子技术实验", "default": { "default": { - "grade": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" + "grade": { + "items": [], + "note": "预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数", + "raw": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" + } } } }, "EE1011A": { "WangCan": { "default": { - "grade": "作业 35% + 期末考试 65%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "35%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": null, + "raw": "作业 35% + 期末考试 65%" + } } }, "WangYi": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } }, "course_name": "电路IA" @@ -625,7 +1912,20 @@ "course_name": "电路IB", "default": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } } }, @@ -633,7 +1933,16 @@ "course_name": "电路实验IA", "default": { "default": { - "grade": "实验报告 100%" + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": null, + "raw": "实验报告 100%" + } } } }, @@ -641,7 +1950,16 @@ "course_name": "电路实验IB", "default": { "default": { - "grade": "出勤 + 实验报告 100%" + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": "出勤", + "raw": "出勤 + 实验报告 100%" + } } } }, @@ -649,7 +1967,20 @@ "course_name": "电路与电子学", "default": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } } }, @@ -657,7 +1988,16 @@ "course_name": "电路与电子技术实验", "default": { "default": { - "grade": "实验报告 100%" + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": null, + "raw": "实验报告 100%" + } } } }, @@ -665,7 +2005,20 @@ "course_name": "电路与电子学I", "default": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } } }, @@ -673,14 +2026,48 @@ "course_name": "电磁场", "default": { "default": { - "grade": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "14%" + }, + { + "name": "MOOC", + "percent": "12%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "66%" + } + ], + "note": null, + "raw": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" + } } } }, "EE2004": { "2024": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } }, "course_name": "高等电路与电子分析" @@ -689,7 +2076,24 @@ "course_name": "电力电子技术", "default": { "default": { - "grade": "实验 20% + 期中考试 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "实验 20% + 期中考试 20% + 期末考试 60%" + } } } }, @@ -700,14 +2104,48 @@ "course_name": "专业综合实践", "default": { "default": { - "grade": "实物验收 30% + 设计报告 70%" + "grade": { + "items": [ + { + "name": "实物验收", + "percent": "30%" + }, + { + "name": "设计报告", + "percent": "70%" + } + ], + "note": null, + "raw": "实物验收 30% + 设计报告 70%" + } } } }, "EMEC1002": { "2024": { "default": { - "grade": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "平时考勤", + "percent": "10%" + }, + { + "name": "作业&小测", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" + } } }, "course_name": "理论力学II" @@ -716,32 +2154,145 @@ "course_name": "工程训练(金工实习)", "default": { "default": { - "grade": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" + "grade": { + "items": [ + { + "name": "工程认知(课堂作业)", + "percent": "15%" + }, + { + "name": "工程素养(出勤)", + "percent": "15%" + }, + { + "name": "工程技能(训练内容)", + "percent": "30%" + }, + { + "name": "工程综合(项目制作)", + "percent": "30%" + }, + { + "name": "工程创新(项目创新)", + "percent": "10%" + } + ], + "note": null, + "raw": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" + } } } }, "ENGG1003": { "23级": { "default": { - "grade": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" + "grade": { + "items": [ + { + "name": "元器件识别", + "percent": "7%" + }, + { + "name": "电子封装", + "percent": "7%" + }, + { + "name": "电子可靠性", + "percent": "5%" + }, + { + "name": "硬件设计", + "percent": "11%" + }, + { + "name": "PCB设计", + "percent": "11%" + }, + { + "name": "软件设计", + "percent": "18%" + }, + { + "name": "焊接调试", + "percent": "11%" + }, + { + "name": "项目制作", + "percent": "30%" + } + ], + "note": null, + "raw": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" + } } }, "course_name": "工程训练(电子工艺实习)", "default": { "default": { - "grade": "实验 100% (具体细分参考年份配置)" + "grade": { + "items": [ + { + "name": "实验", + "percent": "100%" + } + ], + "note": "(具体细分参考年份配置)", + "raw": "实验 100% (具体细分参考年份配置)" + } } } }, "GEIP1011": { "2022": { "default": { - "grade": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" + } } }, "2023": { "default": { - "grade": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "4%" + }, + { + "name": "小测", + "percent": "16%" + }, + { + "name": "讨论与展示", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" + } } }, "course_name": "马克思主义基本原理" @@ -750,7 +2301,20 @@ "course_name": "思想道德与法治", "default": { "default": { - "grade": "平时 50% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "平时", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时 50% + 期末考试 50%" + } } } }, @@ -758,37 +2322,130 @@ "course_name": "中国近现代史纲要", "default": { "default": { - "grade": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" + } } } }, "GEIP1017": { "2023": { "default": { - "grade": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "30%" + }, + { + "name": "期末论文", + "percent": "50%" + } + ], + "note": null, + "raw": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" + } } }, "2024": { "default": { - "grade": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" + } } }, "2025": { "default": { - "grade": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "24%" + }, + { + "name": "期中论文", + "percent": "16%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" + } } }, "course_name": "习近平新时代中国特色社会主义思想概论", "default": { "default": { - "grade": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" + "grade": { + "items": [], + "note": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", + "raw": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" + } } } }, "GEIP1018": { "2024": { "default": { - "grade": "课程论文 10% + 小组汇报 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "课程论文", + "percent": "10%" + }, + { + "name": "小组汇报", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "课程论文 10% + 小组汇报 20% + 期末考试 70%" + } } }, "course_name": "毛泽东思想和中国特色社会主义理论体系概论" @@ -797,7 +2454,28 @@ "course_name": "新时代中国特色社会主义理论与实践", "default": { "default": { - "grade": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" + } } } }, @@ -805,17 +2483,56 @@ "course_name": "大学英语", "default": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } }, "大一": { "default": { - "grade": "作业 40% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" + } } }, "大二": { "default": { - "grade": "作业 50% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 50% + 期末考试 50%" + } } } }, @@ -823,7 +2540,24 @@ "course_name": "代数与几何", "default": { "default": { - "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" + } } } }, @@ -831,7 +2565,24 @@ "course_name": "概率论与数理统计", "default": { "default": { - "grade": "作业 20% + 论文 10% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "论文", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 20% + 论文 10% + 期末考试 70%" + } } } }, @@ -839,7 +2590,20 @@ "course_name": "复变函数与积分变换", "default": { "default": { - "grade": "作业 20% + 期末考试 80%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" + } } } }, @@ -847,7 +2611,24 @@ "course_name": "微积分A", "default": { "default": { - "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" + } } } }, @@ -855,7 +2636,24 @@ "course_name": "微积分B", "default": { "default": { - "grade": "作业 20% + 期中考试 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" + } } } }, @@ -863,7 +2661,20 @@ "course_name": "矩阵分析", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -871,7 +2682,20 @@ "course_name": "优化算法", "default": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } } }, @@ -879,7 +2703,24 @@ "course_name": "数值分析", "default": { "default": { - "grade": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "课堂测验及作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" + } } } }, @@ -887,7 +2728,24 @@ "course_name": "机械设计基础", "default": { "default": { - "grade": "平时成绩 30% + 作业 20% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时成绩 30% + 作业 20% + 期末考试 50%" + } } } }, @@ -895,7 +2753,24 @@ "course_name": "设计与制造 A", "default": { "default": { - "grade": "平时作业 20% + 大作业 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "大作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时作业 20% + 大作业 30% + 期末考试 50%" + } } } }, @@ -903,7 +2778,24 @@ "course_name": "设计与制造B", "default": { "default": { - "grade": "小作业 10% + 大作业 20% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "小作业", + "percent": "10%" + }, + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "小作业 10% + 大作业 20% + 期末考试 70%" + } } } }, @@ -911,7 +2803,24 @@ "course_name": "固体力学", "default": { "default": { - "grade": "作业 15% + 实验 15% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 15% + 实验 15% + 期末考试 70%" + } } } }, @@ -919,7 +2828,24 @@ "course_name": "机电系统控制基础", "default": { "default": { - "grade": "平时作业 20% + 实验 20% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时作业 20% + 实验 20% + 期末考试 60%" + } } } }, @@ -927,7 +2853,24 @@ "course_name": "设计与制造 C", "default": { "default": { - "grade": "大作业 20% + 实验 30% + 期末考试 50%" + "grade": { + "items": [ + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "大作业 20% + 实验 30% + 期末考试 50%" + } } } }, @@ -935,22 +2878,65 @@ "course_name": "机器人学基础", "default": { "default": { - "grade": "作业 25% + 实验 15% + 期末考试 60%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "25%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 25% + 实验 15% + 期末考试 60%" + } } } }, "PHYS1001": { "2023": { "default": { - "grade": "作业 30% + 期末考试 70%" + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" + } } }, "2024": { "default": { "grade": { - "作业": "30%", - "期中考试": "20%", - "期末考试": "50%" + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 30% + 期中考试 20% + 期末考试 50%" } } }, @@ -960,7 +2946,16 @@ "course_name": "大学物理实验", "default": { "default": { - "grade": "每次实验得分的加权和 100%" + "grade": { + "items": [ + { + "name": "每次实验得分的加权和", + "percent": "100%" + } + ], + "note": null, + "raw": "每次实验得分的加权和 100%" + } } } }, @@ -968,7 +2963,24 @@ "course_name": "中国科技史话", "default": { "default": { - "grade": "平时 20% + 实验 40% + 课堂展示 40%" + "grade": { + "items": [ + { + "name": "平时", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂展示", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 20% + 实验 40% + 课堂展示 40%" + } } } }, @@ -976,7 +2988,16 @@ "course_name": "日语I", "default": { "default": { - "grade": "平时成绩 100%" + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "100%" + } + ], + "note": null, + "raw": "平时成绩 100%" + } } } }, @@ -984,12 +3005,37 @@ "course_name": "写作与沟通", "default": { "default": { - "grade": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" + "grade": { + "items": [], + "note": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", + "raw": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" + } } }, "寸熙": { "default": { - "grade": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" + "grade": { + "items": [ + { + "name": "平时", + "percent": "15%" + }, + { + "name": "短文", + "percent": "30%" + }, + { + "name": "长文", + "percent": "40%" + }, + { + "name": "口头报告", + "percent": "15%" + } + ], + "note": null, + "raw": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" + } } } } From 7b082f30a0624ffb64f29d47fda77cb6a9ce7c8b Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:25:55 +0800 Subject: [PATCH 3/6] data: normalize grades entries keys and drop course_name --- scripts/update_grades_summary.py | 101 +- src/hoa_majors/data/grades_summary.json | 4694 ++++++++++------------- 2 files changed, 2225 insertions(+), 2570 deletions(-) diff --git a/scripts/update_grades_summary.py b/scripts/update_grades_summary.py index 0d31240..cef2045 100644 --- a/scripts/update_grades_summary.py +++ b/scripts/update_grades_summary.py @@ -31,6 +31,39 @@ PERCENT_RE = re.compile(r"(\d+%)") +def normalize_entry_key(course_variant: str) -> str: + """Normalize TOML variant keys into one of: + + - default + - 入学年份_default (e.g. 2024_default) + - 入学年份_专业 (e.g. 2022_自动化) + + Notes: + - Keys like "23级" / "21级自动化" are converted to 2023_* / 2021_*. + - A few variants in upstream data are not enrollment-year based (e.g. teacher names). + We currently map them into "default" (see PR discussion if this needs refinement). + """ + + if course_variant == "default": + return "default" + + # Plain year. + if re.fullmatch(r"\d{4}", course_variant): + return f"{course_variant}_default" + + # Patterns like "23级" / "21级自动化". + m = re.fullmatch(r"(?P\d{2})级(?P.*)", course_variant) + if m: + year = f"20{m.group('yy')}" + rest = m.group("rest").strip() + if not rest: + return f"{year}_default" + return f"{year}_{rest}" + + # Non-year variants in the upstream file. + return "default" + + def parse_grade(raw: str) -> dict[str, Any]: """Parse a grade string into a structured object. @@ -73,27 +106,79 @@ def parse_grade(raw: str) -> dict[str, Any]: return {"raw": raw, "items": items, "note": note} -def transform(obj: Any) -> None: +def extract_grade_strings(obj: Any) -> list[str]: + """Collect all grade strings found under a variant block. + + Upstream TOML shapes include: + - variant -> default -> {grade: "..."} + - variant -> default -> default -> {grade: "..."} + """ + + out: list[str] = [] if isinstance(obj, dict): - for k, v in list(obj.items()): + for k, v in obj.items(): if k == "grade" and isinstance(v, str): - obj[k] = parse_grade(v) + out.append(v) else: - transform(v) + out.extend(extract_grade_strings(v)) elif isinstance(obj, list): for v in obj: - transform(v) + out.extend(extract_grade_strings(v)) + return out def main() -> None: raw_bytes = urllib.request.urlopen(SOURCE_URL).read() - data = tomllib.loads(raw_bytes.decode("utf-8")) + toml_data = tomllib.loads(raw_bytes.decode("utf-8")) + + grades = toml_data.get("grades", {}) + out_grades: dict[str, Any] = {} + + for course_code, course_obj in grades.items(): + if not isinstance(course_obj, dict): + continue + + entries: dict[str, Any] = {} + + for variant_key, variant_obj in course_obj.items(): + if variant_key == "course_name": + continue # explicitly removed per repo convention + + entry_key = normalize_entry_key(str(variant_key)) + grade_strings = extract_grade_strings(variant_obj) + if not grade_strings: + continue + + # If multiple grade strings appear for the same entry_key, keep the first and + # append the rest into its note to remain lossless enough. + first = grade_strings[0] + grade_struct = parse_grade(first) + if len(grade_strings) > 1: + extra = " | ".join(grade_strings[1:]) + grade_struct["note"] = ( + f"{grade_struct['note']} | {extra}" if grade_struct["note"] else extra + ) + + if entry_key in entries: + # Merge collision: keep existing and append this raw into note. + prev = entries[entry_key]["grade"] + prev_note = prev.get("note") + prev["note"] = ( + f"{prev_note} | ALT: {grade_struct['raw']}" + if prev_note + else f"ALT: {grade_struct['raw']}" + ) + else: + entries[entry_key] = {"grade": grade_struct} + + if entries: + out_grades[course_code] = entries - transform(data) + out = {"grades": out_grades} OUT_PATH.parent.mkdir(parents=True, exist_ok=True) OUT_PATH.write_text( - json.dumps(data, ensure_ascii=False, indent=2, sort_keys=True) + "\n", + json.dumps(out, ensure_ascii=False, indent=2, sort_keys=True) + "\n", encoding="utf-8", ) diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json index 8d3fa8f..bdcb5db 100644 --- a/src/hoa_majors/data/grades_summary.json +++ b/src/hoa_majors/data/grades_summary.json @@ -1,3041 +1,2611 @@ { "grades": { "AUTO1001": { - "course_name": "自动化认知与实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "课堂实验", - "percent": "30%" - }, - { - "name": "机器人考核", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "30%" - } - ], - "note": null, - "raw": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课堂实验", + "percent": "30%" + }, + { + "name": "机器人考核", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ], + "note": null, + "raw": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" } } }, "AUTO2001": { - "course_name": "自动化专业导论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "AUTO2003B": { - "course_name": "创新训练课 B", "default": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "100%" - } - ], - "note": null, - "raw": "大作业 100%" - } + "grade": { + "items": [ + { + "name": "大作业", + "percent": "100%" + } + ], + "note": null, + "raw": "大作业 100%" } } }, "AUTO2005": { - "course_name": "信号分析与处理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 10% + 实验 25% + 期末考试 65%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": null, + "raw": "作业 10% + 实验 25% + 期末考试 65%" } } }, "AUTO2006": { - "course_name": "控制理论中的代数基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "10%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "平时成绩 10% + 作业 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "平时成绩 10% + 作业 20% + 期末考试 70%" } } }, "AUTO3001A": { - "course_name": "自动控制理论 A", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "13%" - }, - { - "name": "课堂表现", - "percent": "5%" - }, - { - "name": "上机实验", - "percent": "4%" - }, - { - "name": "硬件实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "13%" + }, + { + "name": "课堂表现", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "4%" + }, + { + "name": "硬件实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" } } }, "AUTO3001B": { - "course_name": "自动控制理论B", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "12%" - }, - { - "name": "出勤", - "percent": "5%" - }, - { - "name": "上机实验", - "percent": "5%" - }, - { - "name": "实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "12%" + }, + { + "name": "出勤", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "5%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " } } }, "AUTO3002A": { - "course_name": "自动控制实践 A", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 10% + 实验 25% + 期末考试 65%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": null, + "raw": "作业 10% + 实验 25% + 期末考试 65%" } } }, "AUTO3002B": { - "2021": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 实验 40% + 期末考试 50%" - } + "2021_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 实验 40% + 期末考试 50%" } }, - "2023": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" } }, - "course_name": "自动控制实践 B", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 实验 40% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 实验 40% + 期末考试 50%" } } }, "AUTO3003": { - "course_name": "数字图像处理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "课程设计", - "percent": "25%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "45%" - } - ], - "note": null, - "raw": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课程设计", + "percent": "25%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "45%" + } + ], + "note": null, + "raw": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" } } }, "AUTO3004": { - "course_name": "系统建模与仿真", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" } } }, "AUTO3005": { - "course_name": "机器人学导论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "15%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "课程设计", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "课程设计", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" } } }, "AUTO3006": { - "course_name": "机器视觉", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "5%" - }, - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "课设", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "考勤", + "percent": "5%" + }, + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "课设", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" } } }, "AUTO3007": { - "2020": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } + "2020_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" } }, - "2021": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } + "2021_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" } }, - "2022": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } + "2022_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" } }, - "course_name": "过程控制系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" } } }, "AUTO3011": { - "course_name": "运动控制系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业+实验", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业+实验 50% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业+实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业+实验 50% + 期末考试 50%" } } }, "AUTO3012": { - "course_name": "移动机器人导论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "实验报告", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 实验报告 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "实验报告", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 实验报告 40%" } } }, "AUTO3016": { - "course_name": "自动控制实践 A 实验", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "90%" - }, - { - "name": "答辩", - "percent": "10%" - } - ], - "note": "(10% × 9)", - "raw": "实验报告 90% (10% × 9) + 答辩 10%" - } + "default": { + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "90%" + }, + { + "name": "答辩", + "percent": "10%" + } + ], + "note": "(10% × 9)", + "raw": "实验报告 90% (10% × 9) + 答辩 10%" } } }, "AUTO3019": { - "course_name": "机器学习概论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "10%" - }, - { - "name": "作业", - "percent": "30%" - }, - { - "name": "报告", - "percent": "20%" - }, - { - "name": "期末大作业", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时", + "percent": "10%" + }, + { + "name": "作业", + "percent": "30%" + }, + { + "name": "报告", + "percent": "20%" + }, + { + "name": "期末大作业", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" } } }, "AUTO3022": { - "course_name": "自动化领域专家系列讲座", "default": { - "default": { - "grade": { - "items": [ - { - "name": "报告", - "percent": "100%" - } - ], - "note": null, - "raw": "报告 100%" - } + "grade": { + "items": [ + { + "name": "报告", + "percent": "100%" + } + ], + "note": null, + "raw": "报告 100%" } } }, "AUTO3024": { - "course_name": "嵌入式系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + 实验 50% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + 实验 50% + 期末考试 40%" } } }, "AUTO3028": { - "2021": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "2021_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } }, - "2023": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } - }, - "course_name": "数学规划与数值优化" + } }, "AUTO3099": { - "21级": { - "default": { - "grade": { - "items": [ - { - "name": "开题检查", - "percent": "2%" - }, - { - "name": "中期检查", - "percent": "3%" - }, - { - "name": "结题检查", - "percent": "5%" - }, - { - "name": "指导老师评分", - "percent": "27%" - }, - { - "name": "评阅老师评分", - "percent": "18%" - }, - { - "name": "答辩小组评分", - "percent": "45%" - } - ], - "note": null, - "raw": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" - } + "2021_default": { + "grade": { + "items": [ + { + "name": "开题检查", + "percent": "2%" + }, + { + "name": "中期检查", + "percent": "3%" + }, + { + "name": "结题检查", + "percent": "5%" + }, + { + "name": "指导老师评分", + "percent": "27%" + }, + { + "name": "评阅老师评分", + "percent": "18%" + }, + { + "name": "答辩小组评分", + "percent": "45%" + } + ], + "note": null, + "raw": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" } - }, - "course_name": "毕业设计" + } }, "AUTO5001": { - "course_name": "线性系统理论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "AUTO5002": { - "course_name": "系统辨识", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "AUTO5005": { - "course_name": "非线性与自适应控制", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "平时成绩 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "平时成绩 30% + 期末考试 70%" } } }, "AUTO5013": { - "course_name": "最优估计", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "项目", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "项目", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" } } }, "AUTO5023": { - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "作业(含凸优化习题以及最优控制大作业)", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "作业(含凸优化习题以及最优控制大作业)", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" } }, - "course_name": "凸优化与最优控制", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "随堂测验", - "percent": "10%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "随堂测验 10% + 作业 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "随堂测验", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "随堂测验 10% + 作业 20% + 期末考试 70%" } } }, "AUTO5024": { - "course_name": "模式识别", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "上机实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "上机实验 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "上机实验 40% + 期末考试 60%" } } }, "CHEM1012": { - "course_name": "大学化学III", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "60%" - }, - { - "name": "实验", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 60% + 实验 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时", + "percent": "60%" + }, + { + "name": "实验", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 60% + 实验 40%" } } }, "COMP1011": { - "course_name": "程序设计与思维实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" } } }, "COMP2001": { - "course_name": "计算机专业导论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "COMP2008": { - "course_name": "计算机组成原理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" } } }, "COMP2010": { - "course_name": "近世代数", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "COMP2012": { - "course_name": "计算机设计与实践", "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "100%" - } - ], - "note": null, - "raw": "实验 100%" - } + "grade": { + "items": [ + { + "name": "实验", + "percent": "100%" + } + ], + "note": null, + "raw": "实验 100%" } } }, "COMP2014": { - "course_name": "C++语言程序设计", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" } } }, "COMP2029": { - "course_name": "面向领域的计算机系统设计与开发实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "过程检查", - "percent": "30%" - }, - { - "name": "结题验收", - "percent": "70%" - } - ], - "note": null, - "raw": "过程检查 30% + 结题验收 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "过程检查", + "percent": "30%" + }, + { + "name": "结题验收", + "percent": "70%" + } + ], + "note": null, + "raw": "过程检查 30% + 结题验收 70%" } } }, "COMP2030": { - "course_name": "离散数学", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "COMP2050": { - "2021": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "作业", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 作业 70%" - } + "2021_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "作业", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 作业 70%" } - }, - "course_name": "数据结构与算法" + } }, "COMP2051": { - "course_name": "数字逻辑设计", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" } } }, "COMP2052": { - "course_name": "数据结构与算法", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" } } }, "COMP3001": { - "course_name": "操作系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时分", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时分 10% + 实验 30% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时分", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时分 10% + 实验 30% + 期末考试 60%" } } }, "COMP3002": { - "course_name": "软件工程", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "COMP3004": { - "course_name": "形式语言与自动机", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "COMP3005": { - "course_name": "人工智能", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 30% + 实验 30% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 30% + 实验 30% + 期末考试 40%" } } }, "COMP3006": { - "course_name": "机器学习", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "Project", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + Project 50% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "Project", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 10% + Project 50% + 期末考试 40%" } } }, "COMP3007": { - "course_name": "模式识别", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "90%" - } - ], - "note": null, - "raw": "作业 10% + 期末考试 90%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "90%" + } + ], + "note": null, + "raw": "作业 10% + 期末考试 90%" } } }, "COMP3009": { - "course_name": "大数据导论", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "40%" - }, - { - "name": "小作业", - "percent": "30%" - }, - { - "name": "实验", - "percent": "30%" - } - ], - "note": null, - "raw": "大作业 40% + 小作业 30% + 实验 30%" - } + "default": { + "grade": { + "items": [ + { + "name": "大作业", + "percent": "40%" + }, + { + "name": "小作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + } + ], + "note": null, + "raw": "大作业 40% + 小作业 30% + 实验 30%" } } }, "COMP3010": { - "course_name": "数据库系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" } } }, "COMP3011": { - "course_name": "计算机体系结构", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "作业 20% + 实验 40% + 期末考试 40%" } } }, "COMP3013": { - "course_name": "编译原理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 10% + 实验 20% + 期末考试 70%" } } }, "COMP3017": { - "course_name": "服务计算", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "Participation", - "percent": "5%" - }, - { - "name": "Hot topic study journal", - "percent": "15%" - }, - { - "name": "Exercises", - "percent": "20%" - }, - { - "name": "Final Examination", - "percent": "60%" - } - ], - "note": null, - "raw": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "Participation", + "percent": "5%" + }, + { + "name": "Hot topic study journal", + "percent": "15%" + }, + { + "name": "Exercises", + "percent": "20%" + }, + { + "name": "Final Examination", + "percent": "60%" + } + ], + "note": null, + "raw": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" } } }, "COMP3018": { - "course_name": "图像处理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "COMP3019": { - "course_name": "生物信息学", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "COMP3021": { - "course_name": "自然语言处理", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "比赛", - "percent": "60%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "比赛 60% + 期末考试 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "比赛", + "percent": "60%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "note": null, + "raw": "比赛 60% + 期末考试 40%" } } }, "COMP3028": { - "course_name": "软件体系结构", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "Participation", - "percent": "10%" - }, - { - "name": "Practical exercises", - "percent": "30%" - }, - { - "name": "Final examination", - "percent": "60%" - } - ], - "note": null, - "raw": "Participation 10% + Practical exercises 30% + Final examination 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "Participation", + "percent": "10%" + }, + { + "name": "Practical exercises", + "percent": "30%" + }, + { + "name": "Final examination", + "percent": "60%" + } + ], + "note": null, + "raw": "Participation 10% + Practical exercises 30% + Final examination 60%" } } }, "COMP3029": { - "course_name": "计算机视觉", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "24%" - }, - { - "name": "作业", - "percent": "40%" - }, - { - "name": "Final Project", - "percent": "36%" - } - ], - "note": null, - "raw": "考勤 24% + 作业 40% + Final Project 36%" - } + "default": { + "grade": { + "items": [ + { + "name": "考勤", + "percent": "24%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "Final Project", + "percent": "36%" + } + ], + "note": null, + "raw": "考勤 24% + 作业 40% + Final Project 36%" } } }, "COMP3030": { - "course_name": "信息检索", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "随堂练习", - "percent": "10%" - }, - { - "name": "作业", - "percent": "40%" - }, - { - "name": "大项目", - "percent": "50%" - } - ], - "note": null, - "raw": "随堂练习 10% + 作业 40% + 大项目 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "随堂练习", + "percent": "10%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "大项目", + "percent": "50%" + } + ], + "note": null, + "raw": "随堂练习 10% + 作业 40% + 大项目 50%" } } }, "COMP3039": { - "course_name": "嵌入式计算", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 40% + 期末考试 60%" } } }, "COMP3040": { - "course_name": "密码学基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 实验 30% + 期末考试 50%" } } }, "COMP3043": { - "course_name": "深度学习体系结构", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "40%" - }, - { - "name": "课堂小测", - "percent": "40%" - }, - { - "name": "期末报告", - "percent": "20%" - } - ], - "note": null, - "raw": "实验 40% + 课堂小测 40% + 期末报告 20%" - } + "default": { + "grade": { + "items": [ + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂小测", + "percent": "40%" + }, + { + "name": "期末报告", + "percent": "20%" + } + ], + "note": null, + "raw": "实验 40% + 课堂小测 40% + 期末报告 20%" } } }, "COMP3044": { - "course_name": "科研写作交流技巧", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "课堂参与", - "percent": "20%" - }, - { - "name": "课堂展示", - "percent": "40%" - }, - { - "name": "论文", - "percent": "40%" - } - ], - "note": null, - "raw": "课堂参与 20% + 课堂展示 40% + 论文 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "课堂参与", + "percent": "20%" + }, + { + "name": "课堂展示", + "percent": "40%" + }, + { + "name": "论文", + "percent": "40%" + } + ], + "note": null, + "raw": "课堂参与 20% + 课堂展示 40% + 论文 40%" } } }, "COMP3052": { - "course_name": "计算机系统", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" } } }, "COMP3053": { - "course_name": "汇编语言与接口技术", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 20% + 实验 20% + 期末考试 60%" } } }, "COMP3054": { - "course_name": "网络与系统安全", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 10% + 实验 30% + 期末考试 60%" } } }, "COMP3059": { - "course_name": "软件构造", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "上机实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 上机实验 40% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 10% + 上机实验 40% + 期末考试 50%" } } }, "COMP3060": { - "course_name": "软件构造实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "开题报告", - "percent": "10%" - }, - { - "name": "中期检查", - "percent": "20%" - }, - { - "name": "结题报告", - "percent": "20%" - }, - { - "name": "软件作品", - "percent": "50%" - } - ], - "note": null, - "raw": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "开题报告", + "percent": "10%" + }, + { + "name": "中期检查", + "percent": "20%" + }, + { + "name": "结题报告", + "percent": "20%" + }, + { + "name": "软件作品", + "percent": "50%" + } + ], + "note": null, + "raw": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" } } }, "ECON2005F": { - "course_name": "经济学原理(跨专业选修)", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "20%" - }, - { - "name": "生活中的经济学", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "30%" - } - ], - "note": null, - "raw": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" - } + "default": { + "grade": { + "items": [ + { + "name": "考勤", + "percent": "20%" + }, + { + "name": "生活中的经济学", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ], + "note": null, + "raw": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" } } }, "EE1007": { - "21级电气/通信、22级自动化": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "2021_电气/通信、22级自动化": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } }, - "21级自动化": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "2021_自动化": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } - }, - "course_name": "模拟电子技术基础" + } }, "EE1008": { - "course_name": "模拟电子技术实验", "default": { - "default": { - "grade": { - "items": [], - "note": "MOOC预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", - "raw": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" - } + "grade": { + "items": [], + "note": "MOOC预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", + "raw": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" } } }, "EE1009": { - "course_name": "数字电子技术基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": "(上课会有小测,以考勤为主,到场即有60分)", - "raw": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" - } + "default": { + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": "(上课会有小测,以考勤为主,到场即有60分)", + "raw": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" } } }, "EE1010": { - "course_name": "数字电子技术实验", "default": { - "default": { - "grade": { - "items": [], - "note": "预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数", - "raw": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" - } + "grade": { + "items": [], + "note": "预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数", + "raw": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" } } }, "EE1011A": { - "WangCan": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "35%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 35% + 期末考试 65%" - } - } - }, - "WangYi": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "35%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ], + "note": "ALT: 作业 20% + 期末考试 80%", + "raw": "作业 35% + 期末考试 65%" } - }, - "course_name": "电路IA" + } }, "EE1011B": { - "course_name": "电路IB", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } } }, "EE1012A": { - "course_name": "电路实验IA", "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": null, - "raw": "实验报告 100%" - } + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": null, + "raw": "实验报告 100%" } } }, "EE1012B": { - "course_name": "电路实验IB", "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": "出勤", - "raw": "出勤 + 实验报告 100%" - } + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": "出勤", + "raw": "出勤 + 实验报告 100%" } } }, "EE1013": { - "course_name": "电路与电子学", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } } }, "EE1014": { - "course_name": "电路与电子技术实验", "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": null, - "raw": "实验报告 100%" - } + "grade": { + "items": [ + { + "name": "实验报告", + "percent": "100%" + } + ], + "note": null, + "raw": "实验报告 100%" } } }, "EE1018": { - "course_name": "电路与电子学I", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } } }, "EE2003": { - "course_name": "电磁场", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "14%" - }, - { - "name": "MOOC", - "percent": "12%" - }, - { - "name": "实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "66%" - } - ], - "note": null, - "raw": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "14%" + }, + { + "name": "MOOC", + "percent": "12%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "66%" + } + ], + "note": null, + "raw": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" } } }, "EE2004": { - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } - }, - "course_name": "高等电路与电子分析" + } }, "EE3002": { - "course_name": "电力电子技术", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "实验 20% + 期中考试 20% + 期末考试 60%" - } - } - } - }, - "EE3015": { - "course_name": "电力系统分析" + "default": { + "grade": { + "items": [ + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "实验 20% + 期中考试 20% + 期末考试 60%" + } + } }, "EE304X": { - "course_name": "专业综合实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "实物验收", - "percent": "30%" - }, - { - "name": "设计报告", - "percent": "70%" - } - ], - "note": null, - "raw": "实物验收 30% + 设计报告 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "实物验收", + "percent": "30%" + }, + { + "name": "设计报告", + "percent": "70%" + } + ], + "note": null, + "raw": "实物验收 30% + 设计报告 70%" } } }, "EMEC1002": { - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "平时考勤", - "percent": "10%" - }, - { - "name": "作业&小测", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "平时考勤", + "percent": "10%" + }, + { + "name": "作业&小测", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" } - }, - "course_name": "理论力学II" + } }, "ENGG1002": { - "course_name": "工程训练(金工实习)", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "工程认知(课堂作业)", - "percent": "15%" - }, - { - "name": "工程素养(出勤)", - "percent": "15%" - }, - { - "name": "工程技能(训练内容)", - "percent": "30%" - }, - { - "name": "工程综合(项目制作)", - "percent": "30%" - }, - { - "name": "工程创新(项目创新)", - "percent": "10%" - } - ], - "note": null, - "raw": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" - } + "default": { + "grade": { + "items": [ + { + "name": "工程认知(课堂作业)", + "percent": "15%" + }, + { + "name": "工程素养(出勤)", + "percent": "15%" + }, + { + "name": "工程技能(训练内容)", + "percent": "30%" + }, + { + "name": "工程综合(项目制作)", + "percent": "30%" + }, + { + "name": "工程创新(项目创新)", + "percent": "10%" + } + ], + "note": null, + "raw": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" } } }, "ENGG1003": { - "23级": { - "default": { - "grade": { - "items": [ - { - "name": "元器件识别", - "percent": "7%" - }, - { - "name": "电子封装", - "percent": "7%" - }, - { - "name": "电子可靠性", - "percent": "5%" - }, - { - "name": "硬件设计", - "percent": "11%" - }, - { - "name": "PCB设计", - "percent": "11%" - }, - { - "name": "软件设计", - "percent": "18%" - }, - { - "name": "焊接调试", - "percent": "11%" - }, - { - "name": "项目制作", - "percent": "30%" - } - ], - "note": null, - "raw": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "元器件识别", + "percent": "7%" + }, + { + "name": "电子封装", + "percent": "7%" + }, + { + "name": "电子可靠性", + "percent": "5%" + }, + { + "name": "硬件设计", + "percent": "11%" + }, + { + "name": "PCB设计", + "percent": "11%" + }, + { + "name": "软件设计", + "percent": "18%" + }, + { + "name": "焊接调试", + "percent": "11%" + }, + { + "name": "项目制作", + "percent": "30%" + } + ], + "note": null, + "raw": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" } }, - "course_name": "工程训练(电子工艺实习)", "default": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "100%" - } - ], - "note": "(具体细分参考年份配置)", - "raw": "实验 100% (具体细分参考年份配置)" - } + "grade": { + "items": [ + { + "name": "实验", + "percent": "100%" + } + ], + "note": "(具体细分参考年份配置)", + "raw": "实验 100% (具体细分参考年份配置)" } } }, "GEIP1011": { - "2022": { - "default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "10%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" - } + "2022_default": { + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" } }, - "2023": { - "default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "4%" - }, - { - "name": "小测", - "percent": "16%" - }, - { - "name": "讨论与展示", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "4%" + }, + { + "name": "小测", + "percent": "16%" + }, + { + "name": "讨论与展示", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" } - }, - "course_name": "马克思主义基本原理" + } }, "GEIP1015": { - "course_name": "思想道德与法治", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时 50% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时 50% + 期末考试 50%" } } }, "GEIP1016": { - "course_name": "中国近现代史纲要", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "10%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "论文", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" } } }, "GEIP1017": { - "2023": { - "default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "20%" - }, - { - "name": "期中论文", - "percent": "30%" - }, - { - "name": "期末论文", - "percent": "50%" - } - ], - "note": null, - "raw": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "30%" + }, + { + "name": "期末论文", + "percent": "50%" + } + ], + "note": null, + "raw": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" } }, - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "20%" - }, - { - "name": "期中论文", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" } }, - "2025": { - "default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "24%" - }, - { - "name": "期中论文", - "percent": "16%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" - } + "2025_default": { + "grade": { + "items": [ + { + "name": "平时和课堂展示", + "percent": "24%" + }, + { + "name": "期中论文", + "percent": "16%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" } }, - "course_name": "习近平新时代中国特色社会主义思想概论", "default": { - "default": { - "grade": { - "items": [], - "note": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", - "raw": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" - } + "grade": { + "items": [], + "note": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", + "raw": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" } } }, "GEIP1018": { - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "课程论文", - "percent": "10%" - }, - { - "name": "小组汇报", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "课程论文 10% + 小组汇报 20% + 期末考试 70%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "课程论文", + "percent": "10%" + }, + { + "name": "小组汇报", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "课程论文 10% + 小组汇报 20% + 期末考试 70%" } - }, - "course_name": "毛泽东思想和中国特色社会主义理论体系概论" + } }, "GEIP4004": { - "course_name": "新时代中国特色社会主义理论与实践", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "论文", - "percent": "20%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" } } }, "LANG100X": { - "course_name": "大学英语", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "大一": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "大二": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 50% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": "ALT: 作业 50% + 期末考试 50% | ALT: 作业 40% + 期末考试 60%", + "raw": "作业 40% + 期末考试 60%" } } }, "MATH1002": { - "course_name": "代数与几何", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" } } }, "MATH1004": { - "course_name": "概率论与数理统计", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "论文", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 20% + 论文 10% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "论文", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 20% + 论文 10% + 期末考试 70%" } } }, "MATH1005": { - "course_name": "复变函数与积分变换", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "note": null, + "raw": "作业 20% + 期末考试 80%" } } }, "MATH1015A": { - "course_name": "微积分A", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" } } }, "MATH1015B": { - "course_name": "微积分B", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 20% + 期中考试 30% + 期末考试 50%" } } }, "MATH4001": { - "course_name": "矩阵分析", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "MATH4002": { - "course_name": "优化算法", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } } }, "MATH4004": { - "course_name": "数值分析", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "课堂测验及作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "课堂测验及作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" } } }, "MECH2010": { - "course_name": "机械设计基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "30%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时成绩 30% + 作业 20% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时成绩 30% + 作业 20% + 期末考试 50%" } } }, "MECH2019": { - "course_name": "设计与制造 A", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时作业", - "percent": "20%" - }, - { - "name": "大作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时作业 20% + 大作业 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "大作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "平时作业 20% + 大作业 30% + 期末考试 50%" } } }, "MECH2020": { - "course_name": "设计与制造B", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "小作业", - "percent": "10%" - }, - { - "name": "大作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "小作业 10% + 大作业 20% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "小作业", + "percent": "10%" + }, + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "小作业 10% + 大作业 20% + 期末考试 70%" } } }, "MECH2022": { - "course_name": "固体力学", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "15%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 15% + 实验 15% + 期末考试 70%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 15% + 实验 15% + 期末考试 70%" } } }, "MECH3005": { - "course_name": "机电系统控制基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时作业 20% + 实验 20% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "平时作业 20% + 实验 20% + 期末考试 60%" } } }, "MECH3041": { - "course_name": "设计与制造 C", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "大作业 20% + 实验 30% + 期末考试 50%" - } + "default": { + "grade": { + "items": [ + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "大作业 20% + 实验 30% + 期末考试 50%" } } }, "MECH3060": { - "course_name": "机器人学基础", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "25%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 25% + 实验 15% + 期末考试 60%" - } + "default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "25%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "note": null, + "raw": "作业 25% + 实验 15% + 期末考试 60%" } } }, "PHYS1001": { - "2023": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } + "2023_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "note": null, + "raw": "作业 30% + 期末考试 70%" } }, - "2024": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 30% + 期中考试 20% + 期末考试 50%" - } + "2024_default": { + "grade": { + "items": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "note": null, + "raw": "作业 30% + 期中考试 20% + 期末考试 50%" } - }, - "course_name": "大学物理" + } }, "PHYS1002": { - "course_name": "大学物理实验", "default": { - "default": { - "grade": { - "items": [ - { - "name": "每次实验得分的加权和", - "percent": "100%" - } - ], - "note": null, - "raw": "每次实验得分的加权和 100%" - } + "grade": { + "items": [ + { + "name": "每次实验得分的加权和", + "percent": "100%" + } + ], + "note": null, + "raw": "每次实验得分的加权和 100%" } } }, "SEIN1040": { - "course_name": "中国科技史话", - "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "课堂展示", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 20% + 实验 40% + 课堂展示 40%" - } + "default": { + "grade": { + "items": [ + { + "name": "平时", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂展示", + "percent": "40%" + } + ], + "note": null, + "raw": "平时 20% + 实验 40% + 课堂展示 40%" } } }, "WOCD1008": { - "course_name": "日语I", "default": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "100%" - } - ], - "note": null, - "raw": "平时成绩 100%" - } + "grade": { + "items": [ + { + "name": "平时成绩", + "percent": "100%" + } + ], + "note": null, + "raw": "平时成绩 100%" } } }, "WRIT0001": { - "course_name": "写作与沟通", "default": { - "default": { - "grade": { - "items": [], - "note": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", - "raw": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" - } - } - }, - "寸熙": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "15%" - }, - { - "name": "短文", - "percent": "30%" - }, - { - "name": "长文", - "percent": "40%" - }, - { - "name": "口头报告", - "percent": "15%" - } - ], - "note": null, - "raw": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" - } + "grade": { + "items": [ + { + "name": "平时", + "percent": "15%" + }, + { + "name": "短文", + "percent": "30%" + }, + { + "name": "长文", + "percent": "40%" + }, + { + "name": "口头报告", + "percent": "15%" + } + ], + "note": "ALT: 各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", + "raw": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" } } } From 9021e67b349cbc30f96b59c87af765a54b45b74c Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:32:21 +0800 Subject: [PATCH 4/6] data: drop non-year variants but keep one representative --- scripts/update_grades_summary.py | 38 +++++++++++-------------- src/hoa_majors/data/grades_summary.json | 27 ++++-------------- 2 files changed, 22 insertions(+), 43 deletions(-) diff --git a/scripts/update_grades_summary.py b/scripts/update_grades_summary.py index cef2045..40b0c7c 100644 --- a/scripts/update_grades_summary.py +++ b/scripts/update_grades_summary.py @@ -61,7 +61,7 @@ def normalize_entry_key(course_variant: str) -> str: return f"{year}_{rest}" # Non-year variants in the upstream file. - return "default" + return "__DROP__" def parse_grade(raw: str) -> dict[str, Any]: @@ -139,37 +139,33 @@ def main() -> None: continue entries: dict[str, Any] = {} + dropped_grade_strings: list[str] = [] for variant_key, variant_obj in course_obj.items(): if variant_key == "course_name": continue # explicitly removed per repo convention - entry_key = normalize_entry_key(str(variant_key)) grade_strings = extract_grade_strings(variant_obj) if not grade_strings: continue - # If multiple grade strings appear for the same entry_key, keep the first and - # append the rest into its note to remain lossless enough. + entry_key = normalize_entry_key(str(variant_key)) + if entry_key == "__DROP__": + # Per request: drop non-year variants, but we may still use one of their values + # as a representative if nothing else exists for this course. + dropped_grade_strings.extend(grade_strings) + continue + + # If multiple grade strings appear for the same entry_key, pick the first. first = grade_strings[0] grade_struct = parse_grade(first) - if len(grade_strings) > 1: - extra = " | ".join(grade_strings[1:]) - grade_struct["note"] = ( - f"{grade_struct['note']} | {extra}" if grade_struct["note"] else extra - ) - - if entry_key in entries: - # Merge collision: keep existing and append this raw into note. - prev = entries[entry_key]["grade"] - prev_note = prev.get("note") - prev["note"] = ( - f"{prev_note} | ALT: {grade_struct['raw']}" - if prev_note - else f"ALT: {grade_struct['raw']}" - ) - else: - entries[entry_key] = {"grade": grade_struct} + + # If we see the same entry_key again, keep the first. + entries.setdefault(entry_key, {"grade": grade_struct}) + + # If the course had only non-year variants, keep ONE representative under "default". + if not entries and dropped_grade_strings: + entries["default"] = {"grade": parse_grade(dropped_grade_strings[0])} if entries: out_grades[course_code] = entries diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json index bdcb5db..dcca684 100644 --- a/src/hoa_majors/data/grades_summary.json +++ b/src/hoa_majors/data/grades_summary.json @@ -1653,7 +1653,7 @@ "percent": "65%" } ], - "note": "ALT: 作业 20% + 期末考试 80%", + "note": null, "raw": "作业 35% + 期末考试 65%" } } @@ -2172,7 +2172,7 @@ "percent": "60%" } ], - "note": "ALT: 作业 50% + 期末考试 50% | ALT: 作业 40% + 期末考试 60%", + "note": null, "raw": "作业 40% + 期末考试 60%" } } @@ -2586,26 +2586,9 @@ "WRIT0001": { "default": { "grade": { - "items": [ - { - "name": "平时", - "percent": "15%" - }, - { - "name": "短文", - "percent": "30%" - }, - { - "name": "长文", - "percent": "40%" - }, - { - "name": "口头报告", - "percent": "15%" - } - ], - "note": "ALT: 各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", - "raw": "平时 15% + 短文 30% + 长文 40% + 口头报告 15%" + "items": [], + "note": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", + "raw": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" } } } From 86e6cb0dca0560901333bb19e7c18123dee0e56e Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:36:05 +0800 Subject: [PATCH 5/6] data: flatten grades and drop raw/note wrapper --- scripts/update_grades_summary.py | 59 +- src/hoa_majors/data/grades_summary.json | 4460 ++++++++++------------- 2 files changed, 1892 insertions(+), 2627 deletions(-) diff --git a/scripts/update_grades_summary.py b/scripts/update_grades_summary.py index 40b0c7c..2241687 100644 --- a/scripts/update_grades_summary.py +++ b/scripts/update_grades_summary.py @@ -1,17 +1,17 @@ #!/usr/bin/env python3 """Update grades_summary.json from repos-management/grades_summary.toml. -Schema (per course/year/variant grade entry): - grade = { - "raw": , - "items": [ {"name": , "percent": } ... ], - "note": - } - -Rationale: -- Always preserves the original text in `raw`. -- Provides a structured list in `items` when parseable. -- Captures any leftover/annotation text in `note`. +Output schema: +- Top-level is a mapping: { : { : } } +- entry_key is one of: + - default + - 入学年份_default (e.g. 2024_default) + - 入学年份_专业 (e.g. 2021_自动化) +- grade_items is a flat ordered list: [ {"name": , "percent": } ... ] + +Notes: +- We intentionally do NOT output course_name / grades wrapper / raw / note. +- For unparseable segments, percent is null and name keeps the original text. """ from __future__ import annotations @@ -64,10 +64,13 @@ def normalize_entry_key(course_variant: str) -> str: return "__DROP__" -def parse_grade(raw: str) -> dict[str, Any]: - """Parse a grade string into a structured object. +def parse_grade(raw: str) -> list[dict[str, Any]]: + """Parse a grade string into a flat list of items. - We aim for best-effort parsing while keeping raw text intact. + Output item format: + {"name": , "percent": } + + For unparseable segments, percent is None and name preserves the text. """ raw_norm = raw.replace("+", "+") @@ -79,31 +82,19 @@ def parse_grade(raw: str) -> dict[str, Any]: split_re = r"(?<=%)\s*\+\s*|\s+\+\s+" parts = [p.strip() for p in re.split(split_re, raw_norm) if p.strip()] - items: list[dict[str, str]] = [] - notes: list[str] = [] + items: list[dict[str, Any]] = [] for part in parts or [raw_norm.strip()]: m = PERCENT_RE.search(part) if not m: - # Not parseable as a (name, percent) pair. - notes.append(part) + items.append({"name": part, "percent": None}) continue percent = m.group(1) - name = part[: m.start()].strip() - tail = part[m.end() :].strip() - - # If the "name" is empty, treat as note to avoid producing nonsense keys. - if not name: - notes.append(part) - continue - + name = part[: m.start()].strip() or part items.append({"name": name, "percent": percent}) - if tail: - notes.append(tail) - note = " ".join(n for n in notes if n).strip() or None - return {"raw": raw, "items": items, "note": note} + return items def extract_grade_strings(obj: Any) -> list[str]: @@ -158,19 +149,19 @@ def main() -> None: # If multiple grade strings appear for the same entry_key, pick the first. first = grade_strings[0] - grade_struct = parse_grade(first) + grade_items = parse_grade(first) # If we see the same entry_key again, keep the first. - entries.setdefault(entry_key, {"grade": grade_struct}) + entries.setdefault(entry_key, grade_items) # If the course had only non-year variants, keep ONE representative under "default". if not entries and dropped_grade_strings: - entries["default"] = {"grade": parse_grade(dropped_grade_strings[0])} + entries["default"] = parse_grade(dropped_grade_strings[0]) if entries: out_grades[course_code] = entries - out = {"grades": out_grades} + out = out_grades OUT_PATH.parent.mkdir(parents=True, exist_ok=True) OUT_PATH.write_text( diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json index dcca684..e83c7c0 100644 --- a/src/hoa_majors/data/grades_summary.json +++ b/src/hoa_majors/data/grades_summary.json @@ -1,2596 +1,1870 @@ { - "grades": { - "AUTO1001": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "课堂实验", - "percent": "30%" - }, - { - "name": "机器人考核", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "30%" - } - ], - "note": null, - "raw": "作业 10% + 课堂实验 30%+ 机器人考核 30% + 期末考试 30%" - } - } - }, - "AUTO2001": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "AUTO2003B": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "100%" - } - ], - "note": null, - "raw": "大作业 100%" - } - } - }, - "AUTO2005": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 10% + 实验 25% + 期末考试 65%" - } - } - }, - "AUTO2006": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "10%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "平时成绩 10% + 作业 20% + 期末考试 70%" - } - } - }, - "AUTO3001A": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "13%" - }, - { - "name": "课堂表现", - "percent": "5%" - }, - { - "name": "上机实验", - "percent": "4%" - }, - { - "name": "硬件实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 13% + 课堂表现 5% + 上机实验 4% + 硬件实验 8% + 期末考试 70%" - } - } - }, - "AUTO3001B": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "12%" - }, - { - "name": "出勤", - "percent": "5%" - }, - { - "name": "上机实验", - "percent": "5%" - }, - { - "name": "实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 12% + 出勤 5% + 上机实验 5% + 实验 8% + 期末考试 70% " - } - } - }, - "AUTO3002A": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 10% + 实验 25% + 期末考试 65%" - } - } - }, - "AUTO3002B": { - "2021_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 实验 40% + 期末考试 50%" - } - }, - "2023_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } - }, - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 实验 40% + 期末考试 50%" - } - } - }, - "AUTO3003": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "课程设计", - "percent": "25%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "45%" - } - ], - "note": null, - "raw": "作业 10% + 课程设计 25%+ 实验 20% + 期末考试 45%" - } - } - }, - "AUTO3004": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } - } - }, - "AUTO3005": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "15%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "课程设计", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 15% + 实验 15% + 课程设计 20% + 期末考试 50%" - } - } - }, - "AUTO3006": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "5%" - }, - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "课设", - "percent": "25%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "考勤 5% + 作业 10% + 实验 20% + 课设 25% + 期末考试 40%" - } - } - }, - "AUTO3007": { - "2020_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } - }, - "2021_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } - }, - "2022_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } - }, - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } - } - }, - "AUTO3011": { - "default": { - "grade": { - "items": [ - { - "name": "作业+实验", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业+实验 50% + 期末考试 50%" - } - } - }, - "AUTO3012": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "实验报告", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 实验报告 40%" - } - } - }, - "AUTO3016": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "90%" - }, - { - "name": "答辩", - "percent": "10%" - } - ], - "note": "(10% × 9)", - "raw": "实验报告 90% (10% × 9) + 答辩 10%" - } - } - }, - "AUTO3019": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "10%" - }, - { - "name": "作业", - "percent": "30%" - }, - { - "name": "报告", - "percent": "20%" - }, - { - "name": "期末大作业", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 10% + 作业 30% + 报告 20% + 期末大作业 40%" - } - } - }, - "AUTO3022": { - "default": { - "grade": { - "items": [ - { - "name": "报告", - "percent": "100%" - } - ], - "note": null, - "raw": "报告 100%" - } - } - }, - "AUTO3024": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + 实验 50% + 期末考试 40%" - } - } - }, - "AUTO3028": { - "2021_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - }, - "2023_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "AUTO3099": { - "2021_default": { - "grade": { - "items": [ - { - "name": "开题检查", - "percent": "2%" - }, - { - "name": "中期检查", - "percent": "3%" - }, - { - "name": "结题检查", - "percent": "5%" - }, - { - "name": "指导老师评分", - "percent": "27%" - }, - { - "name": "评阅老师评分", - "percent": "18%" - }, - { - "name": "答辩小组评分", - "percent": "45%" - } - ], - "note": null, - "raw": "开题检查 2% + 中期检查 3% + 结题检查 5% + 指导老师评分 27% + 评阅老师评分 18% + 答辩小组评分 45%" - } - } - }, - "AUTO5001": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "AUTO5002": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "AUTO5005": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "平时成绩 30% + 期末考试 70%" - } - } - }, - "AUTO5013": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "项目", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + 出勤 10% + 项目 40% + 期末考试 40%" - } - } - }, - "AUTO5023": { - "2024_default": { - "grade": { - "items": [ - { - "name": "作业(含凸优化习题以及最优控制大作业)", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业(含凸优化习题以及最优控制大作业) 30% + 期末考试 70%" - } - }, - "default": { - "grade": { - "items": [ - { - "name": "随堂测验", - "percent": "10%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "随堂测验 10% + 作业 20% + 期末考试 70%" - } - } - }, - "AUTO5024": { - "default": { - "grade": { - "items": [ - { - "name": "上机实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "上机实验 40% + 期末考试 60%" - } - } - }, - "CHEM1012": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "60%" - }, - { - "name": "实验", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 60% + 实验 40%" - } - } - }, - "COMP1011": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } - } - }, - "COMP2001": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "COMP2008": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } - } - }, - "COMP2010": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "COMP2012": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "100%" - } - ], - "note": null, - "raw": "实验 100%" - } - } - }, - "COMP2014": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } - } - }, - "COMP2029": { - "default": { - "grade": { - "items": [ - { - "name": "过程检查", - "percent": "30%" - }, - { - "name": "结题验收", - "percent": "70%" - } - ], - "note": null, - "raw": "过程检查 30% + 结题验收 70%" - } - } - }, - "COMP2030": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "COMP2050": { - "2021_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "作业", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 作业 70%" - } - } - }, - "COMP2051": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } - } - }, - "COMP2052": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } - } - }, - "COMP3001": { - "default": { - "grade": { - "items": [ - { - "name": "平时分", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时分 10% + 实验 30% + 期末考试 60%" - } - } - }, - "COMP3002": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "COMP3004": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "COMP3005": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 30% + 实验 30% + 期末考试 40%" - } - } - }, - "COMP3006": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "Project", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 10% + Project 50% + 期末考试 40%" - } - } - }, - "COMP3007": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "90%" - } - ], - "note": null, - "raw": "作业 10% + 期末考试 90%" - } - } - }, - "COMP3009": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "40%" - }, - { - "name": "小作业", - "percent": "30%" - }, - { - "name": "实验", - "percent": "30%" - } - ], - "note": null, - "raw": "大作业 40% + 小作业 30% + 实验 30%" - } - } - }, - "COMP3010": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } - } - }, - "COMP3011": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "作业 20% + 实验 40% + 期末考试 40%" - } - } - }, - "COMP3013": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 10% + 实验 20% + 期末考试 70%" - } - } - }, - "COMP3017": { - "default": { - "grade": { - "items": [ - { - "name": "Participation", - "percent": "5%" - }, - { - "name": "Hot topic study journal", - "percent": "15%" - }, - { - "name": "Exercises", - "percent": "20%" - }, - { - "name": "Final Examination", - "percent": "60%" - } - ], - "note": null, - "raw": "Participation 5% + Hot topic study journal 15% + Exercises 20% + Final Examination 60%" - } - } - }, - "COMP3018": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "COMP3019": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "COMP3021": { - "default": { - "grade": { - "items": [ - { - "name": "比赛", - "percent": "60%" - }, - { - "name": "期末考试", - "percent": "40%" - } - ], - "note": null, - "raw": "比赛 60% + 期末考试 40%" - } - } - }, - "COMP3028": { - "default": { - "grade": { - "items": [ - { - "name": "Participation", - "percent": "10%" - }, - { - "name": "Practical exercises", - "percent": "30%" - }, - { - "name": "Final examination", - "percent": "60%" - } - ], - "note": null, - "raw": "Participation 10% + Practical exercises 30% + Final examination 60%" - } - } - }, - "COMP3029": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "24%" - }, - { - "name": "作业", - "percent": "40%" - }, - { - "name": "Final Project", - "percent": "36%" - } - ], - "note": null, - "raw": "考勤 24% + 作业 40% + Final Project 36%" - } - } - }, - "COMP3030": { - "default": { - "grade": { - "items": [ - { - "name": "随堂练习", - "percent": "10%" - }, - { - "name": "作业", - "percent": "40%" - }, - { - "name": "大项目", - "percent": "50%" - } - ], - "note": null, - "raw": "随堂练习 10% + 作业 40% + 大项目 50%" - } - } - }, - "COMP3039": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "COMP3040": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 实验 30% + 期末考试 50%" - } - } - }, - "COMP3043": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "40%" - }, - { - "name": "课堂小测", - "percent": "40%" - }, - { - "name": "期末报告", - "percent": "20%" - } - ], - "note": null, - "raw": "实验 40% + 课堂小测 40% + 期末报告 20%" - } - } - }, - "COMP3044": { - "default": { - "grade": { - "items": [ - { - "name": "课堂参与", - "percent": "20%" - }, - { - "name": "课堂展示", - "percent": "40%" - }, - { - "name": "论文", - "percent": "40%" - } - ], - "note": null, - "raw": "课堂参与 20% + 课堂展示 40% + 论文 40%" - } - } - }, - "COMP3052": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } - } - }, - "COMP3053": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 20% + 实验 20% + 期末考试 60%" - } - } - }, - "COMP3054": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 10% + 实验 30% + 期末考试 60%" - } - } - }, - "COMP3059": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "10%" - }, - { - "name": "上机实验", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 10% + 上机实验 40% + 期末考试 50%" - } - } - }, - "COMP3060": { - "default": { - "grade": { - "items": [ - { - "name": "开题报告", - "percent": "10%" - }, - { - "name": "中期检查", - "percent": "20%" - }, - { - "name": "结题报告", - "percent": "20%" - }, - { - "name": "软件作品", - "percent": "50%" - } - ], - "note": null, - "raw": "开题报告 10% + 中期检查 20% + 结题报告 20% + 软件作品 50%" - } - } - }, - "ECON2005F": { - "default": { - "grade": { - "items": [ - { - "name": "考勤", - "percent": "20%" - }, - { - "name": "生活中的经济学", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "30%" - } - ], - "note": null, - "raw": "考勤 20% + 生活中的经济学 20% + 期中考试 30% + 期末考试 30%" - } - } - }, - "EE1007": { - "2021_电气/通信、22级自动化": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - }, - "2021_自动化": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "EE1008": { - "default": { - "grade": { - "items": [], - "note": "MOOC预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", - "raw": "MOOC预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" - } - } - }, - "EE1009": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": "(上课会有小测,以考勤为主,到场即有60分)", - "raw": "平时成绩 20% + 期末考试 80% (上课会有小测,以考勤为主,到场即有60分)" - } - } - }, - "EE1010": { - "default": { - "grade": { - "items": [], - "note": "预习题 按时完成实验(不按时完成,则适当扣分)+ 报告分数", - "raw": "预习题 + 按时完成实验(不按时完成,则适当扣分)+ 报告分数" - } - } - }, - "EE1011A": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "35%" - }, - { - "name": "期末考试", - "percent": "65%" - } - ], - "note": null, - "raw": "作业 35% + 期末考试 65%" - } - } - }, - "EE1011B": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - } - }, - "EE1012A": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": null, - "raw": "实验报告 100%" - } - } - }, - "EE1012B": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": "出勤", - "raw": "出勤 + 实验报告 100%" - } - } - }, - "EE1013": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - } - }, - "EE1014": { - "default": { - "grade": { - "items": [ - { - "name": "实验报告", - "percent": "100%" - } - ], - "note": null, - "raw": "实验报告 100%" - } - } - }, - "EE1018": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - } - }, - "EE2003": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "14%" - }, - { - "name": "MOOC", - "percent": "12%" - }, - { - "name": "实验", - "percent": "8%" - }, - { - "name": "期末考试", - "percent": "66%" - } - ], - "note": null, - "raw": "作业 14% + MOOC 12% + 实验 8% + 期末考试 66%" - } - } - }, - "EE2004": { - "2024_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - } - }, - "EE3002": { - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "实验 20% + 期中考试 20% + 期末考试 60%" - } - } - }, - "EE304X": { - "default": { - "grade": { - "items": [ - { - "name": "实物验收", - "percent": "30%" - }, - { - "name": "设计报告", - "percent": "70%" - } - ], - "note": null, - "raw": "实物验收 30% + 设计报告 70%" - } - } - }, - "EMEC1002": { - "2024_default": { - "grade": { - "items": [ - { - "name": "平时考勤", - "percent": "10%" - }, - { - "name": "作业&小测", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时考勤 10% + 作业&小测 20% + 期中考试 20% + 期末考试 50%" - } - } - }, - "ENGG1002": { - "default": { - "grade": { - "items": [ - { - "name": "工程认知(课堂作业)", - "percent": "15%" - }, - { - "name": "工程素养(出勤)", - "percent": "15%" - }, - { - "name": "工程技能(训练内容)", - "percent": "30%" - }, - { - "name": "工程综合(项目制作)", - "percent": "30%" - }, - { - "name": "工程创新(项目创新)", - "percent": "10%" - } - ], - "note": null, - "raw": "工程认知(课堂作业) 15% + 工程素养(出勤) 15% + 工程技能(训练内容) 30% + 工程综合(项目制作) 30% + 工程创新(项目创新) 10%" - } - } - }, - "ENGG1003": { - "2023_default": { - "grade": { - "items": [ - { - "name": "元器件识别", - "percent": "7%" - }, - { - "name": "电子封装", - "percent": "7%" - }, - { - "name": "电子可靠性", - "percent": "5%" - }, - { - "name": "硬件设计", - "percent": "11%" - }, - { - "name": "PCB设计", - "percent": "11%" - }, - { - "name": "软件设计", - "percent": "18%" - }, - { - "name": "焊接调试", - "percent": "11%" - }, - { - "name": "项目制作", - "percent": "30%" - } - ], - "note": null, - "raw": "元器件识别 7% + 电子封装 7% + 电子可靠性 5% + 硬件设计 11% + PCB设计 11% + 软件设计 18% + 焊接调试 11% + 项目制作 30%" - } - }, - "default": { - "grade": { - "items": [ - { - "name": "实验", - "percent": "100%" - } - ], - "note": "(具体细分参考年份配置)", - "raw": "实验 100% (具体细分参考年份配置)" - } - } - }, - "GEIP1011": { - "2022_default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "10%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "课堂表现 10% + 讨论与展示 20% + 作业 20% + 期末考试 50%" - } - }, - "2023_default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "4%" - }, - { - "name": "小测", - "percent": "16%" - }, - { - "name": "讨论与展示", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "课堂表现 4% + 小测 16% + 讨论与展示 10% + 期末考试 70%" - } - } - }, - "GEIP1015": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "50%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时 50% + 期末考试 50%" - } - } - }, - "GEIP1016": { - "default": { - "grade": { - "items": [ - { - "name": "课堂表现", - "percent": "10%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "论文", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "课堂表现 10% + 讨论与展示 20% + 论文 20% + 期末考试 50%" - } - } - }, - "GEIP1017": { - "2023_default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "20%" - }, - { - "name": "期中论文", - "percent": "30%" - }, - { - "name": "期末论文", - "percent": "50%" - } - ], - "note": null, - "raw": "平时和课堂展示 20% + 期中论文 30% + 期末论文 50%" - } - }, - "2024_default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "20%" - }, - { - "name": "期中论文", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时和课堂展示 20% + 期中论文 20% + 期末考试 60%" - } - }, - "2025_default": { - "grade": { - "items": [ - { - "name": "平时和课堂展示", - "percent": "24%" - }, - { - "name": "期中论文", - "percent": "16%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时和课堂展示 24% + 期中论文 16% + 期末考试 60%" - } - }, - "default": { - "grade": { - "items": [], - "note": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", - "raw": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" - } - } - }, - "GEIP1018": { - "2024_default": { - "grade": { - "items": [ - { - "name": "课程论文", - "percent": "10%" - }, - { - "name": "小组汇报", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "课程论文 10% + 小组汇报 20% + 期末考试 70%" - } - } - }, - "GEIP4004": { - "default": { - "grade": { - "items": [ - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "论文", - "percent": "20%" - }, - { - "name": "讨论与展示", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "出勤 10% + 论文 20% + 讨论与展示 20% + 期末考试 50%" - } - } - }, - "LANG100X": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "40%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 40% + 期末考试 60%" - } - } - }, - "MATH1002": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } - } - }, - "MATH1004": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "论文", - "percent": "10%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 20% + 论文 10% + 期末考试 70%" - } - } - }, - "MATH1005": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "80%" - } - ], - "note": null, - "raw": "作业 20% + 期末考试 80%" - } - } - }, - "MATH1015A": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } - } - }, - "MATH1015B": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期中考试", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 20% + 期中考试 30% + 期末考试 50%" - } - } - }, - "MATH4001": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "MATH4002": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - } - }, - "MATH4004": { - "default": { - "grade": { - "items": [ - { - "name": "出勤", - "percent": "10%" - }, - { - "name": "课堂测验及作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "出勤 10% + 课堂测验及作业 20% + 期末考试 70%" - } - } - }, - "MECH2010": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "30%" - }, - { - "name": "作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时成绩 30% + 作业 20% + 期末考试 50%" - } - } - }, - "MECH2019": { - "default": { - "grade": { - "items": [ - { - "name": "平时作业", - "percent": "20%" - }, - { - "name": "大作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "平时作业 20% + 大作业 30% + 期末考试 50%" - } - } - }, - "MECH2020": { - "default": { - "grade": { - "items": [ - { - "name": "小作业", - "percent": "10%" - }, - { - "name": "大作业", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "小作业 10% + 大作业 20% + 期末考试 70%" - } - } - }, - "MECH2022": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "15%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 15% + 实验 15% + 期末考试 70%" - } - } - }, - "MECH3005": { - "default": { - "grade": { - "items": [ - { - "name": "平时作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "平时作业 20% + 实验 20% + 期末考试 60%" - } - } - }, - "MECH3041": { - "default": { - "grade": { - "items": [ - { - "name": "大作业", - "percent": "20%" - }, - { - "name": "实验", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "大作业 20% + 实验 30% + 期末考试 50%" - } - } - }, - "MECH3060": { - "default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "25%" - }, - { - "name": "实验", - "percent": "15%" - }, - { - "name": "期末考试", - "percent": "60%" - } - ], - "note": null, - "raw": "作业 25% + 实验 15% + 期末考试 60%" - } - } - }, - "PHYS1001": { - "2023_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期末考试", - "percent": "70%" - } - ], - "note": null, - "raw": "作业 30% + 期末考试 70%" - } - }, - "2024_default": { - "grade": { - "items": [ - { - "name": "作业", - "percent": "30%" - }, - { - "name": "期中考试", - "percent": "20%" - }, - { - "name": "期末考试", - "percent": "50%" - } - ], - "note": null, - "raw": "作业 30% + 期中考试 20% + 期末考试 50%" - } - } - }, - "PHYS1002": { - "default": { - "grade": { - "items": [ - { - "name": "每次实验得分的加权和", - "percent": "100%" - } - ], - "note": null, - "raw": "每次实验得分的加权和 100%" - } - } - }, - "SEIN1040": { - "default": { - "grade": { - "items": [ - { - "name": "平时", - "percent": "20%" - }, - { - "name": "实验", - "percent": "40%" - }, - { - "name": "课堂展示", - "percent": "40%" - } - ], - "note": null, - "raw": "平时 20% + 实验 40% + 课堂展示 40%" - } - } - }, - "WOCD1008": { - "default": { - "grade": { - "items": [ - { - "name": "平时成绩", - "percent": "100%" - } - ], - "note": null, - "raw": "平时成绩 100%" - } - } - }, - "WRIT0001": { - "default": { - "grade": { - "items": [], - "note": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", - "raw": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" - } - } - } + "AUTO1001": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课堂实验", + "percent": "30%" + }, + { + "name": "机器人考核", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ] + }, + "AUTO2001": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "AUTO2003B": { + "default": [ + { + "name": "大作业", + "percent": "100%" + } + ] + }, + "AUTO2005": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ] + }, + "AUTO2006": { + "default": [ + { + "name": "平时成绩", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "AUTO3001A": { + "default": [ + { + "name": "作业", + "percent": "13%" + }, + { + "name": "课堂表现", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "4%" + }, + { + "name": "硬件实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "AUTO3001B": { + "default": [ + { + "name": "作业", + "percent": "12%" + }, + { + "name": "出勤", + "percent": "5%" + }, + { + "name": "上机实验", + "percent": "5%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "AUTO3002A": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ] + }, + "AUTO3002B": { + "2021_default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "2023_default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "AUTO3003": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "课程设计", + "percent": "25%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "45%" + } + ] + }, + "AUTO3004": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "AUTO3005": { + "default": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "课程设计", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "AUTO3006": { + "default": [ + { + "name": "考勤", + "percent": "5%" + }, + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "课设", + "percent": "25%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "AUTO3007": { + "2020_default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ], + "2021_default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "2022_default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "AUTO3011": { + "default": [ + { + "name": "作业+实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "AUTO3012": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "实验报告", + "percent": "40%" + } + ] + }, + "AUTO3016": { + "default": [ + { + "name": "实验报告", + "percent": "90%" + }, + { + "name": "答辩", + "percent": "10%" + } + ] + }, + "AUTO3019": { + "default": [ + { + "name": "平时", + "percent": "10%" + }, + { + "name": "作业", + "percent": "30%" + }, + { + "name": "报告", + "percent": "20%" + }, + { + "name": "期末大作业", + "percent": "40%" + } + ] + }, + "AUTO3022": { + "default": [ + { + "name": "报告", + "percent": "100%" + } + ] + }, + "AUTO3024": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "AUTO3028": { + "2021_default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "2023_default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "AUTO3099": { + "2021_default": [ + { + "name": "开题检查", + "percent": "2%" + }, + { + "name": "中期检查", + "percent": "3%" + }, + { + "name": "结题检查", + "percent": "5%" + }, + { + "name": "指导老师评分", + "percent": "27%" + }, + { + "name": "评阅老师评分", + "percent": "18%" + }, + { + "name": "答辩小组评分", + "percent": "45%" + } + ] + }, + "AUTO5001": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "AUTO5002": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "AUTO5005": { + "default": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "AUTO5013": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "项目", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "AUTO5023": { + "2024_default": [ + { + "name": "作业(含凸优化习题以及最优控制大作业)", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "default": [ + { + "name": "随堂测验", + "percent": "10%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "AUTO5024": { + "default": [ + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "CHEM1012": { + "default": [ + { + "name": "平时", + "percent": "60%" + }, + { + "name": "实验", + "percent": "40%" + } + ] + }, + "COMP1011": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP2001": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP2008": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP2010": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP2012": { + "default": [ + { + "name": "实验", + "percent": "100%" + } + ] + }, + "COMP2014": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "COMP2029": { + "default": [ + { + "name": "过程检查", + "percent": "30%" + }, + { + "name": "结题验收", + "percent": "70%" + } + ] + }, + "COMP2030": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP2050": { + "2021_default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "作业", + "percent": "70%" + } + ] + }, + "COMP2051": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "COMP2052": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP3001": { + "default": [ + { + "name": "平时分", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3002": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP3004": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP3005": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "COMP3006": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "Project", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "COMP3007": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "90%" + } + ] + }, + "COMP3009": { + "default": [ + { + "name": "大作业", + "percent": "40%" + }, + { + "name": "小作业", + "percent": "30%" + }, + { + "name": "实验", + "percent": "30%" + } + ] + }, + "COMP3010": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3011": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "COMP3013": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP3017": { + "default": [ + { + "name": "Participation", + "percent": "5%" + }, + { + "name": "Hot topic study journal", + "percent": "15%" + }, + { + "name": "Exercises", + "percent": "20%" + }, + { + "name": "Final Examination", + "percent": "60%" + } + ] + }, + "COMP3018": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "COMP3019": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3021": { + "default": [ + { + "name": "比赛", + "percent": "60%" + }, + { + "name": "期末考试", + "percent": "40%" + } + ] + }, + "COMP3028": { + "default": [ + { + "name": "Participation", + "percent": "10%" + }, + { + "name": "Practical exercises", + "percent": "30%" + }, + { + "name": "Final examination", + "percent": "60%" + } + ] + }, + "COMP3029": { + "default": [ + { + "name": "考勤", + "percent": "24%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "Final Project", + "percent": "36%" + } + ] + }, + "COMP3030": { + "default": [ + { + "name": "随堂练习", + "percent": "10%" + }, + { + "name": "作业", + "percent": "40%" + }, + { + "name": "大项目", + "percent": "50%" + } + ] + }, + "COMP3039": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3040": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "COMP3043": { + "default": [ + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂小测", + "percent": "40%" + }, + { + "name": "期末报告", + "percent": "20%" + } + ] + }, + "COMP3044": { + "default": [ + { + "name": "课堂参与", + "percent": "20%" + }, + { + "name": "课堂展示", + "percent": "40%" + }, + { + "name": "论文", + "percent": "40%" + } + ] + }, + "COMP3052": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3053": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3054": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "COMP3059": { + "default": [ + { + "name": "作业", + "percent": "10%" + }, + { + "name": "上机实验", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "COMP3060": { + "default": [ + { + "name": "开题报告", + "percent": "10%" + }, + { + "name": "中期检查", + "percent": "20%" + }, + { + "name": "结题报告", + "percent": "20%" + }, + { + "name": "软件作品", + "percent": "50%" + } + ] + }, + "ECON2005F": { + "default": [ + { + "name": "考勤", + "percent": "20%" + }, + { + "name": "生活中的经济学", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "30%" + } + ] + }, + "EE1007": { + "2021_电气/通信、22级自动化": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ], + "2021_自动化": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "EE1008": { + "default": [ + { + "name": "MOOC预习题", + "percent": null + }, + { + "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", + "percent": null + } + ] + }, + "EE1009": { + "default": [ + { + "name": "平时成绩", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "EE1010": { + "default": [ + { + "name": "预习题", + "percent": null + }, + { + "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数", + "percent": null + } + ] + }, + "EE1011A": { + "default": [ + { + "name": "作业", + "percent": "35%" + }, + { + "name": "期末考试", + "percent": "65%" + } + ] + }, + "EE1011B": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "EE1012A": { + "default": [ + { + "name": "实验报告", + "percent": "100%" + } + ] + }, + "EE1012B": { + "default": [ + { + "name": "出勤", + "percent": null + }, + { + "name": "实验报告", + "percent": "100%" + } + ] + }, + "EE1013": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "EE1014": { + "default": [ + { + "name": "实验报告", + "percent": "100%" + } + ] + }, + "EE1018": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "EE2003": { + "default": [ + { + "name": "作业", + "percent": "14%" + }, + { + "name": "MOOC", + "percent": "12%" + }, + { + "name": "实验", + "percent": "8%" + }, + { + "name": "期末考试", + "percent": "66%" + } + ] + }, + "EE2004": { + "2024_default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "EE3002": { + "default": [ + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "EE304X": { + "default": [ + { + "name": "实物验收", + "percent": "30%" + }, + { + "name": "设计报告", + "percent": "70%" + } + ] + }, + "EMEC1002": { + "2024_default": [ + { + "name": "平时考勤", + "percent": "10%" + }, + { + "name": "作业&小测", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "ENGG1002": { + "default": [ + { + "name": "工程认知(课堂作业)", + "percent": "15%" + }, + { + "name": "工程素养(出勤)", + "percent": "15%" + }, + { + "name": "工程技能(训练内容)", + "percent": "30%" + }, + { + "name": "工程综合(项目制作)", + "percent": "30%" + }, + { + "name": "工程创新(项目创新)", + "percent": "10%" + } + ] + }, + "ENGG1003": { + "2023_default": [ + { + "name": "元器件识别", + "percent": "7%" + }, + { + "name": "电子封装", + "percent": "7%" + }, + { + "name": "电子可靠性", + "percent": "5%" + }, + { + "name": "硬件设计", + "percent": "11%" + }, + { + "name": "PCB设计", + "percent": "11%" + }, + { + "name": "软件设计", + "percent": "18%" + }, + { + "name": "焊接调试", + "percent": "11%" + }, + { + "name": "项目制作", + "percent": "30%" + } + ], + "default": [ + { + "name": "实验", + "percent": "100%" + } + ] + }, + "GEIP1011": { + "2022_default": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ], + "2023_default": [ + { + "name": "课堂表现", + "percent": "4%" + }, + { + "name": "小测", + "percent": "16%" + }, + { + "name": "讨论与展示", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "GEIP1015": { + "default": [ + { + "name": "平时", + "percent": "50%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "GEIP1016": { + "default": [ + { + "name": "课堂表现", + "percent": "10%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "GEIP1017": { + "2023_default": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "30%" + }, + { + "name": "期末论文", + "percent": "50%" + } + ], + "2024_default": [ + { + "name": "平时和课堂展示", + "percent": "20%" + }, + { + "name": "期中论文", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "2025_default": [ + { + "name": "平时和课堂展示", + "percent": "24%" + }, + { + "name": "期中论文", + "percent": "16%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ], + "default": [ + { + "name": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", + "percent": null + } + ] + }, + "GEIP1018": { + "2024_default": [ + { + "name": "课程论文", + "percent": "10%" + }, + { + "name": "小组汇报", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "GEIP4004": { + "default": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "论文", + "percent": "20%" + }, + { + "name": "讨论与展示", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "LANG100X": { + "default": [ + { + "name": "作业", + "percent": "40%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "MATH1002": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MATH1004": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "论文", + "percent": "10%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MATH1005": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "80%" + } + ] + }, + "MATH1015A": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MATH1015B": { + "default": [ + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期中考试", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MATH4001": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MATH4002": { + "default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MATH4004": { + "default": [ + { + "name": "出勤", + "percent": "10%" + }, + { + "name": "课堂测验及作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MECH2010": { + "default": [ + { + "name": "平时成绩", + "percent": "30%" + }, + { + "name": "作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MECH2019": { + "default": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "大作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MECH2020": { + "default": [ + { + "name": "小作业", + "percent": "10%" + }, + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MECH2022": { + "default": [ + { + "name": "作业", + "percent": "15%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ] + }, + "MECH3005": { + "default": [ + { + "name": "平时作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "MECH3041": { + "default": [ + { + "name": "大作业", + "percent": "20%" + }, + { + "name": "实验", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "MECH3060": { + "default": [ + { + "name": "作业", + "percent": "25%" + }, + { + "name": "实验", + "percent": "15%" + }, + { + "name": "期末考试", + "percent": "60%" + } + ] + }, + "PHYS1001": { + "2023_default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期末考试", + "percent": "70%" + } + ], + "2024_default": [ + { + "name": "作业", + "percent": "30%" + }, + { + "name": "期中考试", + "percent": "20%" + }, + { + "name": "期末考试", + "percent": "50%" + } + ] + }, + "PHYS1002": { + "default": [ + { + "name": "每次实验得分的加权和", + "percent": "100%" + } + ] + }, + "SEIN1040": { + "default": [ + { + "name": "平时", + "percent": "20%" + }, + { + "name": "实验", + "percent": "40%" + }, + { + "name": "课堂展示", + "percent": "40%" + } + ] + }, + "WOCD1008": { + "default": [ + { + "name": "平时成绩", + "percent": "100%" + } + ] + }, + "WRIT0001": { + "default": [ + { + "name": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", + "percent": null + } + ] } } From bb99465bc319fdff07f44355e8dd60dcdbbe09c7 Mon Sep 17 00:00:00 2001 From: Kowyo Bot Date: Sat, 31 Jan 2026 16:41:26 +0800 Subject: [PATCH 6/6] data: omit percent field when missing --- scripts/update_grades_summary.py | 2 +- src/hoa_majors/data/grades_summary.json | 21 +++++++-------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/scripts/update_grades_summary.py b/scripts/update_grades_summary.py index 2241687..ecbe129 100644 --- a/scripts/update_grades_summary.py +++ b/scripts/update_grades_summary.py @@ -87,7 +87,7 @@ def parse_grade(raw: str) -> list[dict[str, Any]]: for part in parts or [raw_norm.strip()]: m = PERCENT_RE.search(part) if not m: - items.append({"name": part, "percent": None}) + items.append({"name": part}) continue percent = m.group(1) diff --git a/src/hoa_majors/data/grades_summary.json b/src/hoa_majors/data/grades_summary.json index e83c7c0..6f98793 100644 --- a/src/hoa_majors/data/grades_summary.json +++ b/src/hoa_majors/data/grades_summary.json @@ -1150,12 +1150,10 @@ "EE1008": { "default": [ { - "name": "MOOC预习题", - "percent": null + "name": "MOOC预习题" }, { - "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)", - "percent": null + "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数(无考试)" } ] }, @@ -1174,12 +1172,10 @@ "EE1010": { "default": [ { - "name": "预习题", - "percent": null + "name": "预习题" }, { - "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数", - "percent": null + "name": "按时完成实验(不按时完成,则适当扣分)+ 报告分数" } ] }, @@ -1218,8 +1214,7 @@ "EE1012B": { "default": [ { - "name": "出勤", - "percent": null + "name": "出勤" }, { "name": "实验报告", @@ -1520,8 +1515,7 @@ ], "default": [ { - "name": "请参考具体年份设置(23级为考查课,24级及以后为考试课)", - "percent": null + "name": "请参考具体年份设置(23级为考查课,24级及以后为考试课)" } ] }, @@ -1862,8 +1856,7 @@ "WRIT0001": { "default": [ { - "name": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。", - "percent": null + "name": "各小班成绩构成可能不同,通常包含平时表现、短文、长文和口头汇报。" } ] }