Teaching the Art of Functional Programming using Automated Grading (Experience Report)

被引:15
作者
Hameer, Aliya [1 ]
Pientka, Brigitte [1 ]
机构
[1] McGill Univ, Sch Comp Sci, Montreal, PQ, Canada
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2019年 / 3卷 / ICFP期
基金
加拿大自然科学与工程研究理事会;
关键词
OCaml; functional programming; programming education; automated grading; online programming platforms; programming style; test-driven development;
D O I
10.1145/3341719
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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-OCand 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.
引用
收藏
页数:15
相关论文
共 27 条
[1]   A Survey of Automated Assessment Approaches for Programming Assignments [J].
Ala-Mutka, Kirsti M. .
COMPUTER SCIENCE EDUCATION, 2005, 15 (02) :83-102
[2]  
[Anonymous], 2015, Proc. 46th ACM Tech. Symp. CSE
[3]  
Benford S. D., 1995, Proceedings of the 33rd Annual Southeast Conference, P176, DOI 10.1145/1122018.1122050
[4]   Scaling up functional programming education: Under the hood of the OCaml MOOC [J].
Canou, Benjamin ;
Di Cosmo, Roberto ;
Henry, Grégoire .
Proceedings of the ACM on Programming Languages, 2017, 1 (ICFP)
[5]  
Canou Benjamin, 2016, OCAML US DEV WORKSH
[6]   An automated feedback system for computer organization projects [J].
Chen, PM .
IEEE TRANSACTIONS ON EDUCATION, 2004, 47 (02) :232-240
[7]  
Cong Youyou, 2016, CONTRACT, V1, pR1
[8]   HINTS ON TEST DATA SELECTION - HELP FOR PRACTICING PROGRAMMER [J].
DEMILLO, RA ;
LIPTON, RJ .
COMPUTER, 1978, 11 (04) :34-41
[9]  
Di Cosmo Roberto, 2015, INTRO FUNCTIONAL PRO
[10]  
Edwards SH, 2003, INTERNATIONAL CONFERENCE ON EDUCATION AND INFORMATION SYSTEMS: TECHNOLOGIES AND APPLICATIONS, PROCEEDINGS, P421