Thu 10 Aug 2023 15:40 - 16:05 - Coding and Learning

\textbf{Background and Context.} Live coding is a teaching method in which an instructor dynamically writes code in front of students in an effort to impart skills such as incremental development and debugging. By contrast, traditional, static-code examples typically involve an instructor annotating or explaining components of pre-written code. Despite recommendations to use live coding and a wealth of qualitative analyses that identify perceived learning benefits of it, there are a lack of empirical evaluations to confirm those learning benefits, especially with respect to students’ programming processes.

\noindent \textbf{Objectives.} Our work aims to provide a holistic, empirical comparison of a live-coding pedagogy with a static-code one. We evaluated the impact of a live-coding pedagogy on three main areas: 1) students’ adherence to effective programming processes, 2) their performance on exams and assignments, and 3) their lecture experiences, such as engagement during lecture and perceptions of code examples.

\noindent \textbf{Method.} In our treatment-control quasi-experimental setup, one lecture group saw live-coding examples while the other saw only static-code ones. Both lecture groups were taught by the same instructor, were taught the exact same content, and completed the same assignments and exams. We collected compilation-level programming process data, student performance on exam and homework questions, and feedback via a survey and course evaluations.

\noindent \textbf{Findings.} Our findings did not show that live coding improved students’ programming processes or performance in the course. Though more students in the live-coding group reported that they \textit{observed} skills such as step-by-step program development and debugging, these perceived benefits did not materialize when programming. Student feedback suggests that more students in the live-coding group felt that lectures were too fast and failed to facilitate note-taking, potentially mitigating the perceived benefits.

\noindent \textbf{Implications.} This work presents implications for educators and researchers investigating best practices in teaching computing courses. Live coding alone may not lead to many of the perceived and intended benefits that prior work identifies, but future work may investigate how to realize these benefits while minimizing the drawbacks we identified.

Thu 10 Aug

Displayed time zone: Central Time (US & Canada) change

15:15 - 16:30
Coding and LearningResearch Papers

Session Chair: Neil Brown

15:15
25m
Talk
Investigating the Impact of On-Demand Code Examples on Novices' Open-Ended Programming Experience
Research Papers
Wengran Wang North Carolina State University, John Bacher North Carolina State University, Amy Isvik North Carolina State University, Ally Limke North Carolina State University, Sandeep Sthapit North Carolina State University, Yang Shi North Carolina State University, Benyamin T. Tabarsi North Carolina State University, Keith Tran North Carolina State University, Veronica Catete North Carolina State University, Tiffany Barnes North Carolina State University, Chris Martens North Carolina State University, Thomas Price North Carolina State University
15:40
25m
Talk
An Empirical Evaluation of Live Coding in CS1
Research Papers
Anshul Shah University of California, San Diego, Emma Hogan University of California, San Diego, Vardhan Agarwal University of California, San Diego, John Driscoll University of California, San Diego, Leo Porter University of California San Diego, William G. Griswold University of California San Diego, Adalbert Gerald Soosai Raj University of California, San Diego
16:05
25m
Talk
Evaluating Distance Metrics for Program Repairs
Research Papers
Charles Koutcheme Aalto University, Sami Sarsa Aalto University, Juho Leinonen The University of Auckland, Lassi Haaranen Aalto University, Arto Hellas Aalto University