paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Teaching the art of functional programming using automated grading (experience report)

用自动评分教授函数式编程的艺术(经验报告)
ICFP 3(ICFP)2019匹配度 1/10 · 论文关注函数式编程教学中的自动评分与代码风格/测试质量反馈,属于编程教育工具,与用户画像中的静态分析、LLM/Agent、浮点程序分析、贝叶斯程序分析等核心方向几乎没有直接交集。引用 16 inbox
Aliya Hameer, Brigitte Pientka
crossref: 2026-09-10

AI 速览

一句话:扩展 Learn-OCaml 自动评分,使其评价测试质量与代码风格,并分享函数式编程教学经验。

在线编程平台无需安装即可编程,自动评分还能即时反馈,但其评分器往往只检查输入输出正确性,忽略代码的其他方面,使学生错失大量有价值的反馈。作者在二年级「编程语言与范式」课程中使用 Learn-OCaml 平台教授函数式编程,并利用其自动评分基础设施加以扩展,使教师能方便地编写更具表达力的评分器,除正确性外还评价学生的测试质量与代码风格,从而有效传授函数式编程风格要素。文中报告了课程教学经验,描述了平台扩展的设计与使用,并提供一套自编作业题及配套评分器,希望推动函数式编程教育、改善学习体验,让类型化函数式编程的教学对师生都更易上手。

问题
在线自动评分器通常只关注解答的功能正确性,忽视代码风格与测试质量,限制了学生获得的反馈;如何借助该平台有效教授类型化函数式编程风格是本文关注的问题。
方法
作者在二年级编程语言与范式课程中使用 Learn-OCaml 平台,并扩展其自动评分基础设施,编写能够评价学生测试质量与代码风格的更具表达力的评分器,同时配套自编作业题与评分器。
评估
以经验报告形式呈现课程教学实践,说明平台扩展的设计与使用方式,并公开作业题与评分器套件,讨论其对教学效果与可及性的影响。
原文摘要(Abstract)

Online programming platforms have immense potential to improve students' educational experience. They make programming more accessible, as no installation is required; and automatic grading facilities provide students with immediate feedback on their code, allowing them to to fix bugs and address errors in their understanding right away. However, these graders tend to focus heavily on the functional correctness of a solution, neglecting other aspects of students' code and thereby causing students to miss out on a significant amount of valuable feedback. In this paper, we recount our experience in using the Learn-OCaml online programming platform to teach functional programming in a second-year university course on programming languages and paradigms. Moreover, we explore how to leverage Learn-OCaml's automated grading infrastructure to make it easy to write more expressive graders that give students feedback on properties of their code beyond simple input/output correctness, in order to effectively teach elements of functional programming style. In particular, we describe our extensions to the Learn-OCaml platform that evaluate students on test quality and code style. By providing these tools and a suite of our own homework problems and associated graders, we aim to promote functional programming education, enhance students' educational experience, and make teaching and learning typed functional programming more accessible to instructors and students alike, in our community and beyond.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot602,
  title = {Teaching the art of functional programming using automated grading (experience report)},
  author = {Aliya Hameer and Brigitte Pientka},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {3},
  number = {ICFP},
  year = {2019},
  doi = {10.1145/3341719}
}