Skip to main content

Table 1 Studies conducted using a process-oriented approach in the context of novice programming

From: A review on process-oriented approaches for analyzing novice solutions to programming problems

Study

What has been done

PL

Tools

Gran.

Jadud (2006a)

Quantified how much or how little student struggles with syntax errors in terms of EQ

Java

Instrumented BlueJ

C

Jadud (2006b)

Correlated EQ with exam marks

Java

Instrumented BlueJ

C

Spacco et al. (2006)

Provided controlled feedback and instructional monitoring on students’ progress for them to start working early

Java

Marmoset IDE Instr. w/ opt. CVS synch.

FS

Vee et al. (2006b)

Determined the typical errors made and guess the programming intentions

Eiffel

Eiffel Studio

C

Allevato et al. (2008)

Implemented a reporting mechanism and derived a correlation on the following: no. of submissions vs. final score, code complexity vs. final score, and early vs. late testing

Java

Web-CAT and BIRT

S

Norris et al. (2008)

Determined the practices that make students successful software developers and what practices do not

Java

ClockIt (BlueJ data logger/visualizer)

C

Tabanao et al. (2008)

Identified at-risk students by computing EQ

Java

Instrumented BlueJ

C

Fenwick et al. (2009)

Identified some higher-level patterns of novice student programming behaviors (e.g., potential cheating, impact of starting projects late)

Java

ClockIt

C

Kasurinen and Nikula (2009)

Measured which concepts were difficult to students, how well the different programming structures were understood, and traced student learning

Python

VLE

S

Rodrigo et al. (2009)

Used a combination of human observation, midterm score, and online protocol to study which observable affective states and behaviors can be used to predict student achievement

Java

Instrumented BlueJ and JCreator

C

Rodrigo and Baker (2009)

Attempted to automatically detect student frustration

Java

Instrumented BlueJ

C

Rodrigo et al. (2009)

Analyzed novice programmer behavior (mover, stopper, and extreme movers) using EQ scores

Java

BlueJ Browser

C

Allevato and Edwards (2010)

Used frequent episode mining to find common patterns of behavior (well-performing vs. poorly performing, early vs. late, etc.)

Java

Web-CAT

C

Blikstein (2011)

Explored and compared student coding strategies and identified coding profiles (copy-pasters, mixed-mode self-sufficients)

Java

NetLogo

KS, ME, C

Tabanao et al. (2011)

Determined error, compilation, and EQ profiles of students and attempted to accurately identify at-risk novice programmers

Java

Instrumented BlueJ

C

Piech et al. (2012)

Predicted student performance using machine learning on student development traces and trajectories

Java

Eclipse

C

Pettit et al. (2012)

Proposed a process to capture intermediate versions of students’ programs during development and analyzed the data using milestone markers

Python

Google documents editor

FS

Falkner and Falkner (2012)

Tracked a student’s overall assignment submission rate (e.g., timeliness) to identify students who are at-risk of performing poorly in class

-

Web Subm. System, SVN repository

S

Helminen et al. (2012)

Visualized the solution paths using an interactive graph to explore patterns and anomalies

Python

JS-Parsons tool

FM

Sirkiä and Sorva (2012)

Explored and analyzed mistakes in student-submitted solutions to study novice’s misconceptions of programming

Python

UUhistle Prog. Visualization System

S

Sudol et al. (2012)

Proposed a metric to measure the probabilistic distance between an observed student solution and a correct solution as applied to a transition graph

Online tutor

S

Spacco et al. (2013)

Revealed student work patterns (e.g., what hours of day students work, how much work is done before and the day of the deadline, total amount of time spent coding) and examined the use of release tests in detail that provides feedback to students

Java

Marmoset using an Eclipse Plugin

FS

Worsley and Blikstein (2013)

Attempted to detect the evolution of students’ programming strategies and knowledge focusing on “tinkering” and “planning” episodes

LLE KS

Matsuzawa et al. (2013)

Proposed a tool for observing and recording the programming process to apply Personal Software Process (PSP) in the classroom and to enable learners to conduct PSP analysis by themselves

Java

Developed Eclipse logger, Prog. Process Vis.

KS

Watson and Li (2014)

Predicted performance using a time as a predictor based upon how a student responds to different types of error compared to their peers

Java

Instrumented BlueJ

C

Helminen et al. (2013)

Presented and demonstrated tool for collecting, viewing detailed data about Python programming sessions and analyzing students’ activities

Python

Web-based Python prog. environment

S, FM, C, E