From: A review on process-oriented approaches for analyzing novice solutions to programming problems
Study | What has been done | PL | Tools | Gran. |
---|---|---|---|---|
Used a browser-side snapshot analysis tool capable of providing functionality for annotating and visualizing code snapshots to seek differences between novice programmer that passed or failed | – | CodeBrowser | FS, LLE | |
Examined programming behavior found along student problem paths that exhibit patterns as Builders, Massagers, Reducers, and Strugglers | Java | JavaParser | FM, FS, E, S | |
Characterized students based on their intention-based score patterns and “update characteristics” of their code compilations | Java | Instrumented BlueJ | C | |
Explored factors that may influence the difficulty of programming assignments by applying a recursive partitioning to construct a decision tree of assignment difficulty, and metrics for automatically assessing those factors | Java | – | KS | |
Used machine learning techniques to discover programming behavioral patterns, correlated them with students’ assignment and exam grades, and transformed code snapshots of map of states that show the progress of the students’ work | Java | Instrumented Eclipse | FS, FM | |
Investigated the things that programmers with no previous programming experience struggle with and how their behavior changes over a short period of time | Java | Test My code (NetBeans plugin) | KS | |
Explored correlation on students’ effort and success on exercises vs. final exam score, attempted to detect “flailing” students early enough, and tried to answer whether students improve during the semester | C, Python | CloudCoder | S, FM | |
Considered the incremental changes students make and correlating score between sequential submissions using the following metrics: source lines of code, cyclomatic (McCabe) complexity, state space, and the 6 Halstead measure of complexity of the program | C++ | Athene online automated system | S |