Introductory programming courses can be taught in a variety of ways, including live coding, where instructors write code in real-time in front of students, or static code examples, where pre-prepared code is explained...
详细信息
ISBN:
(纸本)9798400706004
Introductory programming courses can be taught in a variety of ways, including live coding, where instructors write code in real-time in front of students, or static code examples, where pre-prepared code is explained to students. While previous studies have compared live coding and static coding and their impacts on student assessment and cognitive load in large lecture environments, we present our experiences in a single lab session, highlighting student engagement differences. After presenting the same material to groups of students through a live-coding presentation and a staticcode presentation, we reflect on the observable differences in student engagement through an established framework of cognitive engagement. Additionally, we compare pre-surveys, post-tests, and cognitive load surveys from both groups. While our findings did not result in significant differences in student assessments, our experience highlighted differences between live and staticcode presentations. Live coding presentations can often take up to twice as long as staticcode presentations. Students may tend to ask more questions in live coding presentations, suggesting live coding provides instructors and students with more opportunities for further discussion. Live coding may also provide the instructor with additional opportunities to discuss other concepts that may not have been included in a pre-prepared presentation.
One of the goals of computing education research is to understand and document the effectiveness of pedagogical strategies in computing. Among the many methods available to teach programming, two commonly used techniq...
详细信息
ISBN:
(纸本)9781450389761
One of the goals of computing education research is to understand and document the effectiveness of pedagogical strategies in computing. Among the many methods available to teach programming, two commonly used techniques to present code in Computer Science classes are static code examples (where pre-written code snippets are used during lectures) and live coding (where code is written before the students during the lecture). Even though prior research has tried comparing the effectiveness of these two teaching techniques on student learning and cognitive load, little is known about the structure of these code presentation techniques. In this study, we analyze the lecture recordings of a mid-level Computer Science course which uses both static code examples and live coding for teaching code snippets. We analyze these recordings with the intent to understand what these pedagogical techniques for teaching and learning programming consist of. We also analyze student feedback about both these pedagogical strategies to better understand these teaching methods from the students' perspective. We believe that our work will shed light on the usefulness of static code examples and live coding in Computer Science courses.
Teaching programming using static code examples is the process of displaying pre-written codeexamples and explaining the purpose of the code. Live-coding is the process of writing code in-class in front of the studen...
详细信息
ISBN:
(纸本)9781450376860
Teaching programming using static code examples is the process of displaying pre-written codeexamples and explaining the purpose of the code. Live-coding is the process of writing code in-class in front of the students and thinking aloud while doing so. static coding has more structure (similar to PowerPoint presentations) but lacks the authenticity and dynamic nature of writing code lively in front of an audience since the focus is more on the end product (i.e., program) rather than the process in which the program came to life. On the other hand, live-coding engages the students as the process is dynamic and makes the instructor's thought processes explicit to the students, but it lacks the structure and predictability of static code examples. We conducted an experiment in which we taught programming and data structures in C++ to two groups of undergraduate students. We used live-coding to teach one group (experimental) and static code examples to teach the other group (control). We conducted a pre-test and a post-test to measure students' understanding of programming before and after our intervention respectively. We collected a validated survey to measure the cognitive load experienced by the students in both the groups. Our experiments failed to show a difference between live-coding and static code examples with respect to student learning, but we found that live-coding reduced the extraneous cognitive load on students when compared to static code examples.
Background: Live coding, or the process of instructors writing code in real time in front of students, is an alternative teaching method to showing students static code examples. Variations of live coding tightly coup...
详细信息
ISBN:
(纸本)9798400705328
Background: Live coding, or the process of instructors writing code in real time in front of students, is an alternative teaching method to showing students static code examples. Variations of live coding tightly coupled with more active learning approaches are common, which can make it difficult to understand the contribution of live coding alone. Purpose: In this study, we aim to disentangle the benefits of live coding from live coding with explicit active learning approaches. We compare live coding with no added active learning components to presenting students with static code examples. Methods: We present a programming topic to over 100 students using either live coding or static code examples. To more closely parallel showing static code examples, our live coding process involves simply writing and discussing code. We compare student performance and engagement between the two session modes. Findings: Our results show no significant difference between the two presentation modes in terms of learning outcomes. This suggests that live coding in its most basic form may not be sufficiently different from showing static code examples to impact student performance. We also found that live coding students were much more likely to type code, but no more likely to display other engagement behaviors. However, of the engagement activities, only different levels of code typing corresponded with different learning outcomes. Contributions: This research highlights the need for more explicit differentiation and comparisons of live coding with and without active learning strategies.
暂无评论