[论文解读] Teaching Python programming with automatic assessment and feedback provision
本文提出了一种可扩展的、自动化的反馈系统,用于使用单元测试框架教授Python编程,学生提交代码后会立即根据预定义的测试用例进行评估,并通过电子邮件即时接收详细反馈。该系统显著减轻了教师的工作负担,支持迭代式学习,提高了大规模班级中学生的参与度和表现,如在425名学生的课程中所展示的,学生满意度高且评估效率高。
We describe a method of automatic feedback provision for students learning programming and computational methods in Python. We have implemented, used and refined this system since 2009 for growing student numbers, and summarise the design and experience of using it. The core idea is to use a unit testing framework: the teacher creates a set of unit tests, and the student code is tested by running these tests. With our implementation, students typically submit work for assessment, and receive feedback by email within a few minutes after submission. The choice of tests and the reporting back to the student is chosen to optimise the educational value for the students. The system very significantly reduces the staff time required to establish whether a student's solution is correct, and shifts the emphasis of computing laboratory student contact time from assessing correctness to providing guidance. The self-paced nature of the automatic feedback provision supports a student-centred learning approach. Students can re-submit their work repeatedly and iteratively improve their solution, and enjoy using the system. We include an evaluation of the system and data from using it in a class of 425 students.
研究动机与目标
- 为高效且一致地评估大规模本科和研究生班级的编程作业提供解决方案。
- 通过使用单元测试框架自动化正确性检查,减轻教师的批改负担。
- 通过支持快速、迭代的提交与反馈循环,促进以学生为中心的自主学习。
- 使教师能够从基础的正确性检查中解放出来,转而专注于代码质量、可读性和设计方面的指导。
- 评估该系统在真实大学课程中对学生学习、满意度和可扩展性的影响。
提出的方法
- 系统使用单元测试框架,教师为每个编程练习定义测试用例,系统会自动在学生提交的代码上执行这些测试。
- 学生通过网页界面提交代码,系统运行预定义的单元测试以检查正确性、性能和鲁棒性。
- 反馈由系统自动生成,并在提交后几分钟内通过电子邮件发送给学生,明确指出测试失败并提供诊断信息。
- 系统采用松耦合的进程和基于文件的任务队列设计,支持可扩展性,并可与Moodle等现有平台集成。
- 反馈内容经过优化,以最大化教育价值,重点在于正确性和早期错误检测,而更高层次的代码质量则由人工评估。
- 系统支持重复提交,使学生能够迭代改进其解决方案,直至通过所有测试。
实验结果
研究问题
- RQ1自动化单元测试系统在多大程度上能减少大规模班级中评估编程作业的教师工作量?
- RQ2即时、自动化的反馈在多大程度上能改善入门级编程课程中的学生学习成果和参与度?
- RQ3该系统如何支持编程教育中的自主学习和迭代式学习模式?
- RQ4自动化反馈对大规模编程课程中学生满意度和感知学习效果有何影响?
- RQ5该系统是否可扩展并适用于不同机构及Python以外的编程语言?
主要发现
- 系统将评估正确性的教师耗时从每份作业数小时减少至数分钟,使单门课程高效处理425名学生的作业成为可能。
- 学生平均每个练习提交4.5次,表明他们高度参与了由即时反馈支持的迭代改进模式。
- 在前两周后,学生参加计划内实验课的出席率显著下降,表明许多学生已独立且更早地完成了练习。
- 该系统使课程规模从85人扩展至425人,而教师批改时间未增加,证明了其高度可扩展性。
- 学生对系统的反馈普遍积极,学习者报告称学习过程更有趣,并对编程概念有了更深入的理解。
- 系统的架构表现出强健性和可扩展性,支持与Moodle等外部平台集成,并可在不同机构间复用。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。