Teaching Programming by Revealing Thinking Process: Watching Experts' Live Coding Videos With Reflection Annotations
Contribution: Programming is a complex cognitive activity that involves both conceptual understanding and procedural skills, which is challenging for novices. To develop both program comprehension and implementation competency, this study proposed a live-coding-based instruction. Experts' live...
Saved in:
Published in | IEEE transactions on education Vol. 65; no. 4; pp. 617 - 627 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
New York
IEEE
01.11.2022
Institute of Electrical and Electronics Engineers, Inc The Institute of Electrical and Electronics Engineers, Inc. (IEEE) |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Contribution: Programming is a complex cognitive activity that involves both conceptual understanding and procedural skills, which is challenging for novices. To develop both program comprehension and implementation competency, this study proposed a live-coding-based instruction. Experts' live coding with think-aloud was recorded. Students then learn algorithmic planning and coding skills by observing experts' thinking and coding processes from the videos. To deploy this pedagogical strategy, a learning platform was developed to present the videos to students who could also annotate their reflection about the videos in the system to deepen their understanding of syntax and concepts of computer programming. Background: Traditional lecture-based programming instruction focuses more on the explanation of syntax and concepts but lacks revealing the dynamic and nonlinear thinking and coding process. Research Questions: This study is to explore the effects of live-coding-based instruction on students' programming knowledge, including declarative program knowledge (program comprehension) and procedural program knowledge (coding skills), and whether the instruction changes their attitude toward programming learning or not. Methodology: An empirical study was conducted with 33 high-school students who were novice programmers in one semester to explore the effectiveness of the live-coding-based instruction and the use of the learning platform. Findings: The experiment results show that watching flowcharting (<inline-formula> <tex-math notation="LaTeX">r=0.369, p \mathbf { < }0.05 </tex-math></inline-formula>) or coding processes (<inline-formula> <tex-math notation="LaTeX">r=0.409, p \mathbf { < }0.05 </tex-math></inline-formula>) of experts improves coding skills. This implies that explicit depiction of algorithmic planning and coding processes are essential for building procedural programming knowledge. In addition, reflection on syntactic content of experts' programming plays an important role in programming (<inline-formula> <tex-math notation="LaTeX">r=0.511,p \mathbf { < }0.01 </tex-math></inline-formula>). The research findings suggest that programming instruction could focus more on developing students' problem-solving abilities by demonstrating the dynamic and nonlinear programming processes and providing opportunities for students to reflect on how syntactic knowledge could be applied to programming. |
---|---|
Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
ISSN: | 0018-9359 1557-9638 |
DOI: | 10.1109/TE.2022.3155884 |