一次搭建,长期复用——教Python的老师可以直接参考应用。
批改Python作业这件事,当过老师的都懂:一个班四五十份代码,逐个打开、运行、检查、打分,一份至少十几分钟,一轮下来常常耗掉好几个晚上。更麻烦的是反馈慢,学生看到评分结果时,当初卡在哪儿可能都忘了。
能不能让AI帮我搭一套自动批阅工具?我试了一下,基本功能跑通了:工具一次定义、反复使用,新作业扔进文件夹,成绩单自动出来。今天把完整过程整理出来,教Python的老师都能照着做,供大家参考。
第一步:分析代码批阅的要点
让AI自动批阅代码,要求做到以下几点:
能批量读取学生提交的.py文件;
检查语法能不能跑通;
用flake8扫一下代码规范;
看看有没有按要求写函数、写类;
关键函数有没有注释说明;
跑测试用例验证功能对不对;
最后按权重打分,生成JSON成绩单。
我每次写prompt的时候,会把作业背景、评分细则、文件夹结构一次性交代清楚。先让AI出个能跑的最小版本,再慢慢加功能,这样最稳。
第二步:多轮迭代,别指望一次到位
第一版代码通常能用,但细节肯定要调。我的经验是三步走:
先确保能正确读取所有学生文件;
再加异常处理,别让某一个学生的代码把整批批阅搞崩;
最后微调评分权重和输出格式。
AI写出来的代码有问题很正常。把报错信息贴回去,让AI自己定位修复,多来几轮,系统就越来越靠谱。
第三步:核心模块设计
我是使用kimi生成的批阅文件,生成代码有两个:一是评分代码;一是不同作业的评分标准,注意,是评分标准,不是参考答案。结合图里的架构,整个系统可以分成四层:
文件读取层:
自动遍历homeworks文件夹,把学生代码逐个读进来。
输出层:
生成JSON成绩单,方便后续统计。
评分工具auto_grader.py:
即自动批阅工具,让AI生成。如包括以下功能:
语法检查占5分:代码能运行吗?哪一行报错?
规范检查占10分:用flake8扫代码风格。
结构检查占10分:按要求写了几个函数?有没有用类?
注释检查占5分:关键函数写说明了吗?
功能测试层占60分:用pytest跑预设测试用例,验证代码逻辑是否正确。
评分标准test_homework.py:
告诉程序怎么批阅的规则文件,同样可以让AI生成。做法很简单:把教师代码(相当于参考答案)和评分要求一起交给AI,它就能生成这份评分标准文件。换一次作业,只需要重新生成这一个文件,批阅工具本身不用动。
上述两个代码文件放在学生上交代码的文件夹homework之外。
这个系统不需要复杂界面,命令行就能跑。执行auto_grader.py之后,屏幕上会逐条显示:
全部跑完后,会输出一份详细成绩单,每个文件的路径和分数都列得清清楚楚。
老师只需要把新作业放进homeworks文件夹,点一下运行,就能一键重新批阅。不同作业需要可以设计不同的评分标准test_homework,但自动评分工具auto_grader.py可以是一次定义,多次使用。
避坑提醒:这三点一定要注意
1. 评分规则写得越具体,AI越不容易跑偏:文件路径、打分权重、输出格式,一次性交代清楚;
2. AI生成的代码先拿几份样例作业试跑,确认打分合理,再用于正式批阅;
感兴趣的老师去试试吧,搭建过程中卡在哪一步,欢迎留言分享;也欢迎转给身边还在熬夜改作业的同事,欢迎参阅《财务大数据分析(基于python)》教材。