Table of Contents
Fetching ...

On Fun for Teaching Large Programming Courses

Walid Maalej

TL;DR

The paper addresses engagement challenges in large introductory programming courses by introducing a catalog of ten physical, in-class activities designed to visualize core programming concepts. It documents three years of deployment in a 500+ student course and a qualitative evaluation via semi-structured interviews with 15 former students and 14 educators across regions. Activities span from the LA-OLA wave and binary calculators to object-oriented rainstorms, paper-plane message passing, and recursive and data-structure visualizations, illustrating concepts from control flow to software reuse. Findings indicate that these activities can boost activation, focus, and concept retention, but success depends on concise execution and explicit connections to course material. The work offers practical guidelines for adoption and calls for broader quantitative studies to measure impact across contexts.

Abstract

Teaching software development basics to hundreds of students in a frontal setting is cost-efficient and thus still common in universities. However, in a large lecture hall, students can easily get bored, distracted, and disengaged. The frontal setting can also frustrate lecturers since interaction opportunities are limited and hard to scale. Fun activities can activate students and, if well designed, can also help remember and reflect on abstract software development concepts. We present a novel catalogue of ten physical fun activities, developed over years to reflect on basic programming and software development concepts. The catalogue includes the execution of a LA-OLA algorithm as in stadiums, using paper planes to simulate object messages and pointers, and traversing a lecture hall as a tree or a recursive structure. We report our experience of using the activities in a large course with 500+ students three years in a row. We also conducted an interview study with 15 former students of the course and 14 experienced educators from around the globe. The results suggest that the fun activities can enable students to stay focused, remember key concepts, and reflect afterwards. However, keeping the activities concise and clearly linked to the concepts taught seems to be key to their acceptance and effectiveness.

On Fun for Teaching Large Programming Courses

TL;DR

The paper addresses engagement challenges in large introductory programming courses by introducing a catalog of ten physical, in-class activities designed to visualize core programming concepts. It documents three years of deployment in a 500+ student course and a qualitative evaluation via semi-structured interviews with 15 former students and 14 educators across regions. Activities span from the LA-OLA wave and binary calculators to object-oriented rainstorms, paper-plane message passing, and recursive and data-structure visualizations, illustrating concepts from control flow to software reuse. Findings indicate that these activities can boost activation, focus, and concept retention, but success depends on concise execution and explicit connections to course material. The work offers practical guidelines for adoption and calls for broader quantitative studies to measure impact across contexts.

Abstract

Teaching software development basics to hundreds of students in a frontal setting is cost-efficient and thus still common in universities. However, in a large lecture hall, students can easily get bored, distracted, and disengaged. The frontal setting can also frustrate lecturers since interaction opportunities are limited and hard to scale. Fun activities can activate students and, if well designed, can also help remember and reflect on abstract software development concepts. We present a novel catalogue of ten physical fun activities, developed over years to reflect on basic programming and software development concepts. The catalogue includes the execution of a LA-OLA algorithm as in stadiums, using paper planes to simulate object messages and pointers, and traversing a lecture hall as a tree or a recursive structure. We report our experience of using the activities in a large course with 500+ students three years in a row. We also conducted an interview study with 15 former students of the course and 14 experienced educators from around the globe. The results suggest that the fun activities can enable students to stay focused, remember key concepts, and reflect afterwards. However, keeping the activities concise and clearly linked to the concepts taught seems to be key to their acceptance and effectiveness.
Paper Structure (27 sections, 5 figures, 1 table)

This paper contains 27 sections, 5 figures, 1 table.

Figures (5)

  • Figure 1: Buggy LA-OLA algorithm to be executed and debugged with hundreds of students as physical activity, for reflecting on control structures, exceptions, and infinite loops.
  • Figure 2: Playing a binary calculator with students. Columns are the bits. A student standing-up represents 1, otherwise 0. The first two rows are the numbers to be added. The third row represents the carry; the fourth the result.
  • Figure 3: Source code example for collectively creating a sound like a rainstorm in the lecture hall.
  • Figure 4: [Left] Paper planes symbolising messages passed between objects (method calls and returns). [Right] Cord symbolising object pointers.
  • Figure 5: Students recursively counting empty seats in a row.