Table of Contents
Fetching ...

"I Feel Like I'm Teaching in a Gladiator Ring": Barriers and Benefits of Live Coding in Classroom Settings

Caroline Berger, David Weintrop, Niklas Elmqvist

TL;DR

This study investigates barriers and benefits of live coding in large CS classrooms by interviewing instructors, teaching assistants, and students and employing prototypes to explore design opportunities. It identifies barriers such as resource-constrained environments and stage fright, and benefits like modeling debugging strategies and enabling active learning. The authors derive design guidelines for live coding tools and classroom practices that emphasize risk-taking, attention directing, and teacher development. The findings hold practical implications for classroom design, professional development, and tooling to promote authentic programming practices in real-world educational settings.

Abstract

Live coding for teaching-synchronously writing software in front of students-can be an effective method for engaging students and instilling practical programming skills. However, not all settings are conducive to live coding and not all instructors are successful in this challenging task. We present results from a study involving university instructors, teaching assistants, and students identifying both barriers and benefits of live coding. Physical infrastructure, a positive classroom community with psychological safety, and opportunities for teacher development are practical considerations for live coding. In order for live coding to be an active learning experience, we recommend that tools support multiple mechanisms for engaging students, directing audience attention, and encouraging student-led live coding.

"I Feel Like I'm Teaching in a Gladiator Ring": Barriers and Benefits of Live Coding in Classroom Settings

TL;DR

This study investigates barriers and benefits of live coding in large CS classrooms by interviewing instructors, teaching assistants, and students and employing prototypes to explore design opportunities. It identifies barriers such as resource-constrained environments and stage fright, and benefits like modeling debugging strategies and enabling active learning. The authors derive design guidelines for live coding tools and classroom practices that emphasize risk-taking, attention directing, and teacher development. The findings hold practical implications for classroom design, professional development, and tooling to promote authentic programming practices in real-world educational settings.

Abstract

Live coding for teaching-synchronously writing software in front of students-can be an effective method for engaging students and instilling practical programming skills. However, not all settings are conducive to live coding and not all instructors are successful in this challenging task. We present results from a study involving university instructors, teaching assistants, and students identifying both barriers and benefits of live coding. Physical infrastructure, a positive classroom community with psychological safety, and opportunities for teacher development are practical considerations for live coding. In order for live coding to be an active learning experience, we recommend that tools support multiple mechanisms for engaging students, directing audience attention, and encouraging student-led live coding.

Paper Structure

This paper contains 27 sections, 3 figures, 3 tables.

Figures (3)

  • Figure 1: Live coding as a performance. Our study found that many instructors feel live coding to be a high-stakes and cognitively taxing activity more akin to a live performance. (Illustration by MidJourney version 6.1.)
  • Figure 2: Teacher live coding view. The teacher can code in their editor (A). The number of students coding along with the instructor is displayed in the meter (B) and information about students is in the active student pane (C). The teacher can start an independent activity by selecting code it yourself (D).
  • Figure 3: Student coding along with the instructor prototype view. Student view has the instructor's editor (A), their own editor (D), and notepads (B, E) where the student articulates the strategies they use and the instructor uses while coding. Refresh code updates the students code to match the instructors code. The student can ask questions (C).