A theory of instruction for introductory programming skills

Background and Context: Current introductory instruction fails to identify, structure, and sequence the many skills involved in programming. Objective: We proposed a theory which identifies four distinct skills that novices learn incrementally. These skills are tracing, writing syntax, comprehending...

Full description

Saved in:
Bibliographic Details
Published inComputer science education Vol. 29; no. 2-3; pp. 205 - 253
Main Authors Xie, Benjamin, Loksa, Dastyni, Nelson, Greg L., Davidson, Matthew J., Dong, Dongsheng, Kwik, Harrison, Tan, Alex Hui, Hwa, Leanne, Li, Min, Ko, Amy J.
Format Journal Article
LanguageEnglish
Published Norwood Routledge 03.07.2019
Taylor & Francis Ltd
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Background and Context: Current introductory instruction fails to identify, structure, and sequence the many skills involved in programming. Objective: We proposed a theory which identifies four distinct skills that novices learn incrementally. These skills are tracing, writing syntax, comprehending templates (reusable abstractions of programming knowledge), and writing code with templates. We theorized that explicit instruction of these skills decreases cognitive demand. Method: We conducted an exploratory mixed-methods study and compared students' exercise completion rates, error rates, ability to explain code, and engagement when learning to program. We compared material that reflects this theory to more traditional material that does not distinguish between skills. Findings: Teaching skills incrementally resulted in improved completion rate on practice exercises, and decreased error rate and improved understanding of the post-test. Implications: By structuring programming skills such that they can be taught explicitly and incrementally, we can inform instructional design and improve future research on understanding how novice programmers develop understanding.
ISSN:0899-3408
1744-5175
DOI:10.1080/08993408.2019.1565235