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...

Full description

Saved in:
Bibliographic Details
Published inIEEE transactions on education Vol. 65; no. 4; pp. 617 - 627
Main Authors Lin, Yu-Tzu, Yeh, Martin K.-C., Tan, Sheng-Rong
Format Journal Article
LanguageEnglish
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 AccessGet full text

Cover

Loading…
More Information
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