Teaching How to Program using Automated Assessment and Functional Glossy Games (Experience Report)
Our department has long been an advocate of the functional-first school of programming and has been teaching Haskell as a first language in introductory programming course units for 20 years. Although the functional style is largely beneficial, it needs to be taught in an enthusiastic and captivating way to fight the unusually high computer science drop-out rates and appeal to a heterogeneous population of students.
This paper reports our experience of restructuring, over the last 5 years, an introductory laboratory course unit that trains hands-on functional programming concepts and good software development practices. We have been using game programming to keep students motivated, and following a methodology that hinges on test-driven development and continuous bidirectional feedback. We summarise successes and missteps, and how we have learned from our experience to arrive at a model for comprehensive and interactive functional game programming assignments and a general functionally-powered automated assessment platform, that together provide a more engaging learning experience for students. In our experience, we have been able to teach increasingly more advanced functional programming concepts while improving student engagement.
Mon 24 Sep Times are displayed in time zone: (GMT-05:00) Guadalajara, Mexico City, Monterrey change
|16:40 - 17:02|
Conal ElliottTarget, USADOI
|17:02 - 17:25|
Adam ŚcibiorUniversity of Cambridge and MPI Tuebingen, Ohad KammarUniversity of Oxford, Zoubin GhahramaniUniversity of CambridgeDOI
|17:25 - 17:47|
Mitchell WandNortheastern University, USA, Ryan CulpepperCzech Technical University, Theophilos GiannakopoulosBAE Systems, Inc., Andrew CobbNortheastern UniversityDOI
|17:47 - 18:10|
José Bacelar AlmeiraUniversity of Minho & INESC TEC, Alcino CunhaUniversity of Minho and INESC TEC, Portugal, Nuno MacedoUniversity of Minho & INESC TEC, Hugo PachecoUniversity of Minho, Portugal, José ProençaHASLab/INESC TEC & University of MinhoDOI