@brusilovsky

Comprehension First: Evaluating a Novel Pedagogy and Tutoring System for Program Tracing in CS1

, , and . Proceedings of the 2017 ACM Conference on International Computing Education Research, ACM, (August 2017)Understand code before write code - tracing and examples first.
DOI: 10.1145/3105726.3106178

Abstract

What knowledge does learning programming require? Prior work has focused on theorizing program writing and problem solving skills. We examine program comprehension and propose a formal theory of program tracing knowledge based on control flow paths through an interpreter program's source code. Because novices cannot understand the interpreter's programming language notation, we transform it into causal relationships from code tokens to instructions to machine state changes. To teach this knowledge, we propose a comprehension-first pedagogy based on causal inference, by showing, explaining, and assessing each path by stepping through concrete examples within many example programs. To assess this pedagogy, we built PLTutor, a tutorial system with a fixed curriculum of example programs. We evaluate learning gains among self-selected CS1 students using a block randomized lab study comparing PLTutor with Codecademy, a writing tutorial. In our small study, we find some evidence of improved learning gains on the SCS1, with average learning gains of PLTutor 60% higher than Codecademy (gain of 3.89 vs. 2.42 out of 27 questions). These gains strongly predicted midterms (R2=.64) only for PLTutor participants, whose grades showed less variation and no failures.

Description

Comprehension First | Proceedings of the 2017 ACM Conference on International Computing Education Research

Links and resources

Tags

community

  • @brusilovsky
  • @dblp
@brusilovsky's tags highlighted