Lukas is a doctoral candidate at the Chair for Logic and Verification of the Technical University of Munich. In his research he works on improving the theorem prover Isabelle that is implemented in Standard ML and Scala. For teaching, the chair employs Haskell to get over 1000 students excited about functional programming in the undergraduate lecture "Functional Programming and Verification".
Worldwide, computer science departments have experienced a dramatic increase in the number of student enrolments. Moreover, the ongoing COVID-19 pandemic requires institutions to radically replace the traditional way of on-site teaching, moving interaction from physical to virtual space. We report on our strategies and experience tackling these issues as part of a Haskell-based functional programming and verification course, accommodating over 2000 students in the course of two semesters. Among other things, we fostered engagement with weekly programming competitions and creative homework projects, workshops with industry partners, and collaborative pair-programming tutorials. To offer such an extensive programme to hundreds of students, we automated feedback for programming as well as inductive proof exercises. We explain and share our tools and exercises so that they can be reused by other educators.