TY - JOUR
T1 - Teaching Programming by Revealing Thinking Process
T2 - Watching Experts' Live Coding Videos With Reflection Annotations
AU - Lin, Yu Tzu
AU - Yeh, Martin K.C.
AU - Tan, Sheng Rong
N1 - Publisher Copyright:
© 1963-2012 IEEE.
PY - 2022/11/1
Y1 - 2022/11/1
N2 - 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 ( r=0.369, p < 0.05 ) or coding processes (r=0.409, p < 0.05) 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 (r=0.511,p < 0.01 ). 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.
AB - 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 ( r=0.369, p < 0.05 ) or coding processes (r=0.409, p < 0.05) 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 (r=0.511,p < 0.01 ). 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.
KW - Computer science
KW - computer-based instruction
KW - learning environment
KW - live coding
KW - observational learning
KW - programming instruction
KW - reflection
KW - video-based learning
UR - http://www.scopus.com/inward/record.url?scp=85126561206&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85126561206&partnerID=8YFLogxK
U2 - 10.1109/TE.2022.3155884
DO - 10.1109/TE.2022.3155884
M3 - Article
AN - SCOPUS:85126561206
SN - 0018-9359
VL - 65
SP - 617
EP - 627
JO - IEEE Transactions on Education
JF - IEEE Transactions on Education
IS - 4
ER -