ICER 2024
Mon 12 - Thu 15 August 2024 Melbourne, Victoria, Australia
Wed 14 Aug 2024 13:15 - 13:35 - Understanding Students Chair(s): Jan Vahrenhold

Background and Context: A major difference between expert and novice programmers is the ability to recognize and apply common and meaningful patterns in code. Previous works have attempted to identify these patterns in the form of programming plans, such as counting or filtering the items of a collection. However, these efforts primarily relied on expert opinions and yielded many varied sets of plans. No methods have been applied to evaluate these various programming plans as far as their alignment with novices’ cognitive development.

Objectives: In this work, we investigate which programming plans are learned as discrete skills. To this end, we evaluate how well students transfer their knowledge between problems that test a particular plan. Further, we explore how plan definitions can be improved to better represent student cognition using historical data on student performance in the course.

Method: We apply learning curve analysis, a method for modeling student improvement on problems that test a particular skill, using programming plans as a skill model. More specifically, we study student submissions on code-writing exercises in Python from a CS1 class for non-majors that includes many small programming problems as well as implicit and explicit instruction on patterns. We compare the learning curves for ten programming plans across seven semesters of the same course.

Findings: Students develop the skill of using some programming plans in their solutions, indicated by consistent declines in error rates on practice opportunities for a subset of plans in multiple semesters with various conditions. Most consistently learned plans have clear and concrete goals that can be explained in natural language, as opposed to having abstract definitions or being explained in terms of language structures.

Implications: We show that learning curve analysis can be used to empirically assess the cognitive validity of proposed programming plans, as well as compare various plan models. However, our work also indicates that instructors should be cautious when assuming that introductory programming students can apply more abstract programming plans to successfully solve new problems, as plans with increased specificity tend to better explain the learning process in our observations.

Wed 14 Aug

Displayed time zone: Brisbane change

13:15 - 14:15
Understanding StudentsResearch Papers
Chair(s): Jan Vahrenhold University of Münster
13:15
20m
Talk
Validating, Refining, and Identifying Programming Plans Using Learning Curve Analysis on Code Writing Data
Research Papers
Mehmet Arif Demirtas University of Illinois Urbana-Champaign, Max Fowler University of Illinois, Nicole Hu University of Illinois Urbana-Champaign, Kathryn Cunningham University of Illinois Urbana-Champaign
DOI Pre-print
13:35
20m
Talk
An Electroencephalography Study on Cognitive Load in Visual and Textual Programming
Research Papers
Sverrir Thorgeirsson ETH Zurich, Chengyu Zhang ETH Zurich, Theo B. Weidmann ETH Zurich, Karl-Heinz Weidmann University of Applied Sciences Vorarlberg, Zhendong Su ETH Zurich
13:55
20m
Talk
Profiling Conversational Programmers at University: Insights into their Motivations and Goals from a Broad Sample of Non-Majors
Research Papers
Jinyoung Hur University of Illinois Urbana-Champaign, Kathryn Cunningham University of Illinois Urbana-Champaign
DOI Pre-print