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.
翻译:在传统课堂环境中向数百名学生传授软件开发基础知识,因其成本效益高,至今仍在大学中普遍采用。然而,在大型讲座厅中,学生容易感到无聊、分心并失去参与感。这种单向授课模式也使讲师感到困扰,因为互动机会有限且难以扩展。趣味性活动能够调动学生的积极性,如果设计得当,还能帮助他们记忆和反思抽象的软件开发概念。我们提出了一份新颖的、包含十项实体趣味活动的目录,这些活动经过多年开发,旨在引导学生反思基础编程和软件开发概念。该目录包括:模拟体育场中的人浪(LA-OLA)算法执行、使用纸飞机模拟对象消息与指针、以及将讲座厅作为树或递归结构进行遍历等。我们报告了连续三年在一门拥有500多名学生的大型课程中使用这些活动的经验。我们还对15名该课程的往届学生和14位来自全球各地的资深教育工作者进行了访谈研究。结果表明,趣味活动能够帮助学生保持专注、记忆关键概念并在课后进行反思。然而,保持活动简洁明了,并与所教授的概念清晰关联,似乎是其获得认可和发挥效用的关键。