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

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 addre...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 3; no. ICFP; pp. 1 - 15
Main Authors: Hameer, Aliya, Pientka, Brigitte
Format: Journal Article
Language:English
Published: 01.08.2019
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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.
AbstractList 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.
Author Hameer, Aliya
Pientka, Brigitte
Author_xml – sequence: 1
  givenname: Aliya
  surname: Hameer
  fullname: Hameer, Aliya
  organization: McGill University, Canada
– sequence: 2
  givenname: Brigitte
  surname: Pientka
  fullname: Pientka, Brigitte
  organization: McGill University, Canada
BookMark eNplkE9LAzEQxYNUsGrxK-SmHlYzSbabHKX4DwpeqtdlnCTtSnezZFPQb28XexC9vHm8-TEM75RNuth5xi5A3ADo8lYpDRXYIzaVuioL0BImv_wJmw3DhxACrNJG2Sl7W3mkTdOted54jinzGHjYdZSb2OGW9ymuE7btSOyGUXGXY4vZO75fuDG58p-9T43vyPPk-5jy9Tk7Drgd_Owwz9jrw_1q8VQsXx6fF3fLgmRpciFBWfIajSBnAhpbuRIBcG4JhHQa5u8KUZRggyFXuormMoSKvCEZtNDqjBU_dynFYUg-1NRkHH_PCZttDaIee6kPvez5yz98n5oW09c_8huEgGQf
CitedBy_id crossref_primary_10_1002_cae_70026
crossref_primary_10_1145_3636515
crossref_primary_10_1145_3749996
crossref_primary_10_1017_S0956796824000182
Cites_doi 10.1145/3009837.3009900
10.1145/1122018.1122050
10.1109/C-M.1978.218136
10.1145/367415.367422
10.1109/TE.2004.825220
10.5555/786773.787159
10.1007/s40593-015-0080-x
10.1145/2843043.2843070
10.1145/2676723.2677279
10.1109/TSE.2010.62
10.1145/1163405.1163407
10.1145/1599410.1599414
10.1145/1597849.1384371
10.1007/978-3-642-31424-7_64
10.1145/268085.268210
10.1145/3110248
10.1080/08993400500150747
10.1145/2676723.2677226
10.1145/3009837.3009842
ContentType Journal Article
DBID AAYXX
CITATION
DOI 10.1145/3341719
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 15
ExternalDocumentID 10_1145_3341719
GroupedDBID AAKMM
AAYFX
AAYXX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
CITATION
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
ID FETCH-LOGICAL-c258t-2139ce4a80cd8fa897d5a11a69c102d416b3aa0519f8cd5d7c62ff7ce8c2f4043
ISICitedReferencesCount 12
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685201900038&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Sat Nov 29 07:50:23 EST 2025
Tue Nov 18 21:02:26 EST 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue ICFP
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c258t-2139ce4a80cd8fa897d5a11a69c102d416b3aa0519f8cd5d7c62ff7ce8c2f4043
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3341719
PageCount 15
ParticipantIDs crossref_citationtrail_10_1145_3341719
crossref_primary_10_1145_3341719
PublicationCentury 2000
PublicationDate 2019-08-01
PublicationDateYYYYMMDD 2019-08-01
PublicationDate_xml – month: 08
  year: 2019
  text: 2019-08-01
  day: 01
PublicationDecade 2010
PublicationTitle Proceedings of ACM on programming languages
PublicationYear 2019
References e_1_2_2_5_1
e_1_2_2_23_1
e_1_2_2_7_1
e_1_2_2_22_1
e_1_2_2_21_1
e_1_2_2_1_1
e_1_2_2_20_1
e_1_2_2_2_1
e_1_2_2_3_1
e_1_2_2_27_1
e_1_2_2_26_1
Cong Youyou (e_1_2_2_6_1) 2016
Schleimer Saul (e_1_2_2_24_1) 2003
e_1_2_2_14_1
e_1_2_2_13_1
e_1_2_2_12_1
e_1_2_2_11_1
e_1_2_2_10_1
Cosmo Roberto Di (e_1_2_2_8_1) 2015
e_1_2_2_19_1
e_1_2_2_18_1
e_1_2_2_17_1
e_1_2_2_16_1
Edwards Stephen H (e_1_2_2_9_1) 2003; 3
e_1_2_2_15_1
Sherman Mark (e_1_2_2_25_1) 2013; 28
Canou Benjamin (e_1_2_2_4_1) 2016
References_xml – ident: e_1_2_2_21_1
  doi: 10.1145/3009837.3009900
– ident: e_1_2_2_2_1
  doi: 10.1145/1122018.1122050
– ident: e_1_2_2_7_1
  doi: 10.1109/C-M.1978.218136
– volume-title: Implementing a stepper using delimited continuations. contract 1
  year: 2016
  ident: e_1_2_2_6_1
– volume-title: Winnowing. Proceedings of the 2003 ACM SIGMOD international conference on on Management of data - SIGMOD âĂŹ03
  year: 2003
  ident: e_1_2_2_24_1
– volume: 28
  start-page: 6
  year: 2013
  ident: e_1_2_2_25_1
  article-title: Impact of Auto-grading on an Introductory Computing Course
  publication-title: J. Comput. Sci. Coll.
– ident: e_1_2_2_16_1
  doi: 10.1145/367415.367422
– volume-title: An Online Learning Center for OCaml. In OCaml Users and Developers Workshop
  year: 2016
  ident: e_1_2_2_4_1
– ident: e_1_2_2_5_1
  doi: 10.1109/TE.2004.825220
– ident: e_1_2_2_20_1
  doi: 10.5555/786773.787159
– ident: e_1_2_2_11_1
  doi: 10.1007/s40593-015-0080-x
– ident: e_1_2_2_12_1
  doi: 10.1145/2843043.2843070
– ident: e_1_2_2_22_1
  doi: 10.1145/2676723.2677279
– ident: e_1_2_2_18_1
  doi: 10.1109/TSE.2010.62
– volume: 3
  volume-title: International Conference on Education and Information Systems: Technologies and Applications (EISTA’03)
  year: 2003
  ident: e_1_2_2_9_1
– ident: e_1_2_2_26_1
– ident: e_1_2_2_19_1
  doi: 10.1145/1163405.1163407
– ident: e_1_2_2_23_1
  doi: 10.1145/1599410.1599414
– ident: e_1_2_2_10_1
  doi: 10.1145/1597849.1384371
– ident: e_1_2_2_14_1
  doi: 10.1007/978-3-642-31424-7_64
– ident: e_1_2_2_17_1
  doi: 10.1145/268085.268210
– ident: e_1_2_2_13_1
– ident: e_1_2_2_3_1
  doi: 10.1145/3110248
– ident: e_1_2_2_1_1
  doi: 10.1080/08993400500150747
– volume-title: Introduction to Functional Programming in OCaml. (October
  year: 2015
  ident: e_1_2_2_8_1
– ident: e_1_2_2_27_1
  doi: 10.1145/2676723.2677226
– ident: e_1_2_2_15_1
  doi: 10.1145/3009837.3009842
SSID ssj0001934839
Score 2.1972632
Snippet Online programming platforms have immense potential to improve students' educational experience. They make programming more accessible, as no installation is...
SourceID crossref
SourceType Enrichment Source
Index Database
StartPage 1
Title Teaching the art of functional programming using automated grading (experience report)
Volume 3
WOSCitedRecordID wos000685201900038&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV07T8MwELZ4DSy8EeUlDwjBEEidpLZHVIFgAHUAxFa5fkgVJUV9IFj47ZyTSxoKEjCwRJFjR1Hu093n8z0IOZCJ7gAPbgQMdmpB7GQYdJjPAg6NkSqWPHRh1myC39yIhwfZwuOCYdZOgKepeH2Vz_8qahgDYfvU2T-Iu3wpDMA9CB2uIHa4_k7wRXykp5Tw3NNBb73Q6YcBWU9-xjhzFKjxqA-8FZgnPDDoOrBlCWQ8VihcBkhkW6Xhy2JBzprX_tih-vLCEzqcKLkni72ze9230hy0fEbmY94B2nfpKkKP0BXhs59E4YrINBaLeRLU4zzl-cR-M4YqN6og66p50apo0HrFFOeJnl-VfOzrYURgfzmq209ltKfMWxl0mKdgJ21cOEvmGYftlA_3fK_45WQUi6wBXfnlea61X3uKayskpsJGblfIEm4j6Fku_lUyY9M1sly06KCosdfJfYEGCmiggAbad3SCBloRGM3QQEs0UEQDPZpggeZYON4gdxfnt83LAFtpBJolYhQwIPraxkqE2ginhOQmUfW6akgNDNMAK-9ESnk674Q2ieG6wZzj2grNnC_AtEnm0n5qtwgNIy2UjFwSGzAAxggTsUgbGwqVyNDqGjks_k1bY5153-6k154SQI3QcuJzXlplesr2z1N2yOIEirtkbjQY2z2yoF9G3eFgP5PtB6blbZI
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Teaching+the+art+of+functional+programming+using+automated+grading+%28experience+report%29&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Hameer%2C+Aliya&rft.au=Pientka%2C+Brigitte&rft.date=2019-08-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=ICFP&rft.spage=1&rft.epage=15&rft_id=info:doi/10.1145%2F3341719&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3341719
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon