SlideShare a Scribd company logo
Exploring Problem Solving Paths
in a Java Programming Course
Roya Hosseini1
Arto Vihavainen2
Peter Brusilovsky1,3
1 Intelligent Systems Program, University of Pittsburgh
2 Department of Computer Science, University of Helsinki
3 School of Information Sciences, University of Pittsburgh
Intelligent Systems Program University of Helsinki
Psychology of Programming Interest Group 25th Workshop
25-27 June 2014
Goal of this work
• Identifying most common programming paths
– Tracking and analyzing subsequent programming
steps within programming assignments
– Looking at the concepts that students use
Related Work
• Factors contributing to success in programming:
– aptitude: psychological tests, ... (Evans and Simkin
1989, ..)
– background: mathematics, ... (White and Sivitanides
2003, ..)
– psychological aspects: motivation, comfort-
level, ... (Bergin and Reilly 2005, ..)
– learning styles, ... (Thomas et al. 2002, ..)
Related Work
• Data-driven approaches for analyzing
submission and snapshot streams:
– compilation behaviour
– time usage
Jadud (2005) and Vee (2006), ..
Related Work
• Novice problem-solving behaviour
(Perkins et al. 1986, ..)
stoppers movers tinkerers
pic pic pic
This study
● Introductory programming course, fall 2012
● Programming in NetBeans:
– Unit tests designed to scaffold students
– Test My Code plugin Vihavainen et al. 2013
● Recording snapshots:
– correctness [0-1]
– difficulty [1-5] (post assignment)
– set of programming concepts Hosseini & Brusilovsky 2013
Example: Subsequent snapshots
import java.util.Scanner;
public class BiggerNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Type a number: ");
int first = Integer.parseInt(input.nextLine());
System.out.println("Type another number: ");
int second = Integer.parseInt(input.nextLine());
if (first > second)
System.out.println("nBigger number: " + first);
if (first < second)
System.out.println("nBigger number: " + second);
else
System.out.println(“nNumbers were equal: ");
}
}
import java.util.Scanner;
public class BiggerNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Type a number: ");
int first = Integer.parseInt(input.nextLine());
System.out.println("Type another number: ");
int second = Integer.parseInt(input.nextLine());
if (first > second)
System.out.println("nBigger number: " + first);
else if (first < second)
System.out.println("nBigger number: " + second);
else
System.out.println(“nNumbers were equal: ");
}
}
Snapshot A Snapshot B
Example: Subsequent snapshots
import java.util.Scanner;
public class BiggerNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Type a number: ");
int first = Integer.parseInt(input.nextLine());
System.out.println("Type another number: ");
int second = Integer.parseInt(input.nextLine());
if (first > second)
System.out.println("nBigger number: " + first);
if (first < second)
System.out.println("nBigger number: " + second);
else
System.out.println(“nNumbers were equal: ");
}
}
import java.util.Scanner;
public class BiggerNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Type a number: ");
int first = Integer.parseInt(input.nextLine());
System.out.println("Type another number: ");
int second = Integer.parseInt(input.nextLine());
if (first > second)
System.out.println("nBigger number: " + first);
else if (first < second)
System.out.println("nBigger number: " + second);
else
System.out.println(“nNumbers were equal: ");
}
}
Snapshot A Snapshot B
Example: Concepts from snapshots
ActualMethodParameter, MethodDefinition,
ObjectCreationStatement,
ObjectMethodInvocation, PublicClassSpecifier,
PublicMethodSpecifier, StaticMethodSpecifier,
StringAddition, StringDataType, StringLiteral,
LessExpression, java.lang.System.out.println,
java.lang.System.out.print, ClassDefinition,
ConstructorCall, FormalMethodParameter,
GreaterExpression, IfStatement,
IfElseStatement, ImportStatement,
IntDataType, java.lang.Integer.parseInt,
VoidDataType
ActualMethodParameter, MethodDefinition,
ObjectCreationStatement,
ObjectMethodInvocation, PublicClassSpecifier,
PublicMethodSpecifier, StaticMethodSpecifier,
StringAddition, StringDataType, StringLiteral,
LessExpression, java.lang.System.out.println,
java.lang.System.out.print, ClassDefinition,
ConstructorCall, FormalMethodParameter,
GreaterExpression, IfElseIfStatement,
IfElseStatement, ImportStatement,
IntDataType, java.lang.Integer.parseInt,
VoidDataType
Concepts in Snapshot A Concepts in Snapshot B
Dataset
● 101 participants (65 male, 36 female)
● 101 exercises
● 60+k snapshots
● Preprocessing excludes:
● users that have not given consent
● users not participating in first week
● subsequent identical snapshots
Approach
● (1) Extracting concepts from snapshots
● (2) Analyzing conceptual changes between
sequential snapshots
Assumption
Incremental building of
the program
Programming Behaviour
Global Level
Programming Behaviour
Individual Level
Global Level
● When, for each exercise, snapshots from all
students are put together, what do we see?
Assumption
Incremental building of
the program
Programming Behaviour
Global Level
Global Level: Easy Exercise
Global Level: Medium Exercise
Global Level: Hard Exercise
Global Level: Programming Speed
Individual Level
● Looking at each exercise for each student
individually, what sort of student-specific
patterns do we see?
Assumption
Incremental building of
the program
Programming Behaviour
Individual Level
Identifying Programming Patterns: 1
snapshots Classify Label
Concept
Correctness
Concepts
Correctness Same Increase Decrease
Zero Struggler Struggler Struggler
Decrease Struggler Struggler Struggler
Increase Builder Builder Reducer
Same Massager Builder Reducer
Identifying Programming Patterns: 2
Pattern
Mining
(SPAM)
Snapshots
Student s1: Exercise e1
…
Student sn: Exercise en
Common Patterns
~8k Student-Exercise
Individual Level: Builder
Individual Level: Massager
Individual Level: Reducer
Individual Level: Struggler
Common Programming Patterns
Pattern Support Pattern Support
BB 0.304 SSS 0.128
SB 0.281 BR 0.127
BS 0.215 BBB 0.123
SS 0.199 SSB 0.123
Common Student Patterns
Overall Result
• Incremental program building hypothesis not
always true!
• Still, it is dominant behaviour among plenty of
students (77.63%)
Discussion
• Building and reduction steps happen in:
– all stages of program development
– across levels of problem difficulty
– visible in both slow and fast students
• Most students build programs incrementally:
– starting with a small program
– incrementally adding concepts
– increasing its correctness (passing more tests)
Future Work
• Do the introduced programming patterns
generalize in other datasets?
• What about different data granularities?
• What is the influence of individual traits on
programming behaviours (age, gender,…)?
Future Work
• Automatic Student Modeling?
Yudelson et al.;
“Investigating Automatic Student Modeling in a Java, Educational Data
Mining, 2014
Thank you!
Q&A
Ad

More Related Content

Similar to Ppig2014 problem solvingpaths (20)

IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET Journal
 
Recommendation algorithm using reinforcement learning
Recommendation algorithm using reinforcement learningRecommendation algorithm using reinforcement learning
Recommendation algorithm using reinforcement learning
Arithmer Inc.
 
Introduction to system analysis and design
Introduction to system analysis and designIntroduction to system analysis and design
Introduction to system analysis and design
Twene Peter
 
AoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentationAoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentation
HamzaSadaat
 
Debugging
DebuggingDebugging
Debugging
Olivier Teytaud
 
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docxDETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
spub1985
 
Lesson how to create sad
Lesson how to create sadLesson how to create sad
Lesson how to create sad
Laguna State Polytechnic University
 
Online examination system
Online examination systemOnline examination system
Online examination system
Rahul Khanwani
 
Sentiment Analysis on Twitter
Sentiment Analysis on TwitterSentiment Analysis on Twitter
Sentiment Analysis on Twitter
Subarno Pal
 
Software Engineering Systems Designing end to end
Software Engineering Systems Designing end to endSoftware Engineering Systems Designing end to end
Software Engineering Systems Designing end to end
arvindthangamani1
 
Machine learning for beginners students.
Machine learning for beginners students.Machine learning for beginners students.
Machine learning for beginners students.
digitalindia1231
 
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareThe Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
Andrey Karpov
 
B.sc CSIT 2nd semester C++ unit-1
B.sc CSIT  2nd semester C++ unit-1B.sc CSIT  2nd semester C++ unit-1
B.sc CSIT 2nd semester C++ unit-1
Tekendra Nath Yogi
 
ppt for biometric blood group detection A Machine Learning Approach
ppt for biometric blood group detection A Machine Learning Approachppt for biometric blood group detection A Machine Learning Approach
ppt for biometric blood group detection A Machine Learning Approach
SuniTha23
 
Programing Slicing and Its applications
Programing Slicing and Its applicationsPrograming Slicing and Its applications
Programing Slicing and Its applications
Ankur Jain
 
Chap08
Chap08Chap08
Chap08
Terry Yoast
 
System development analysis life cycle
System development analysis life cycleSystem development analysis life cycle
System development analysis life cycle
Communication telecom
 
Ase02.ppt
Ase02.pptAse02.ppt
Ase02.ppt
Yann-Gaël Guéhéneuc
 
Java Programming Course for beginners -الدسوقي
Java Programming Course for beginners -الدسوقيJava Programming Course for beginners -الدسوقي
Java Programming Course for beginners -الدسوقي
kareemtarek40
 
Learning with Relative Attributes
Learning with Relative AttributesLearning with Relative Attributes
Learning with Relative Attributes
Vikas Jain
 
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET- Unabridged Review of Supervised Machine Learning Regression and Classi...
IRJET Journal
 
Recommendation algorithm using reinforcement learning
Recommendation algorithm using reinforcement learningRecommendation algorithm using reinforcement learning
Recommendation algorithm using reinforcement learning
Arithmer Inc.
 
Introduction to system analysis and design
Introduction to system analysis and designIntroduction to system analysis and design
Introduction to system analysis and design
Twene Peter
 
AoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentationAoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentation
HamzaSadaat
 
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docxDETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
DETECTION OF NETWORK INTRUSION USING DCGANSEMI-SUPERVISED APPROACH.docx
spub1985
 
Online examination system
Online examination systemOnline examination system
Online examination system
Rahul Khanwani
 
Sentiment Analysis on Twitter
Sentiment Analysis on TwitterSentiment Analysis on Twitter
Sentiment Analysis on Twitter
Subarno Pal
 
Software Engineering Systems Designing end to end
Software Engineering Systems Designing end to endSoftware Engineering Systems Designing end to end
Software Engineering Systems Designing end to end
arvindthangamani1
 
Machine learning for beginners students.
Machine learning for beginners students.Machine learning for beginners students.
Machine learning for beginners students.
digitalindia1231
 
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareThe Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
Andrey Karpov
 
B.sc CSIT 2nd semester C++ unit-1
B.sc CSIT  2nd semester C++ unit-1B.sc CSIT  2nd semester C++ unit-1
B.sc CSIT 2nd semester C++ unit-1
Tekendra Nath Yogi
 
ppt for biometric blood group detection A Machine Learning Approach
ppt for biometric blood group detection A Machine Learning Approachppt for biometric blood group detection A Machine Learning Approach
ppt for biometric blood group detection A Machine Learning Approach
SuniTha23
 
Programing Slicing and Its applications
Programing Slicing and Its applicationsPrograming Slicing and Its applications
Programing Slicing and Its applications
Ankur Jain
 
System development analysis life cycle
System development analysis life cycleSystem development analysis life cycle
System development analysis life cycle
Communication telecom
 
Java Programming Course for beginners -الدسوقي
Java Programming Course for beginners -الدسوقيJava Programming Course for beginners -الدسوقي
Java Programming Course for beginners -الدسوقي
kareemtarek40
 
Learning with Relative Attributes
Learning with Relative AttributesLearning with Relative Attributes
Learning with Relative Attributes
Vikas Jain
 

More from Roya Hosseini (8)

Hypertext 2016
Hypertext 2016Hypertext 2016
Hypertext 2016
Roya Hosseini
 
SIGCSE 2016
SIGCSE 2016SIGCSE 2016
SIGCSE 2016
Roya Hosseini
 
EC-TEL 2015
EC-TEL 2015EC-TEL 2015
EC-TEL 2015
Roya Hosseini
 
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
Roya Hosseini
 
Java parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its applicationJava parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its application
Roya Hosseini
 
Edm2014 investigating automated student modeling in a java mooc
Edm2014 investigating automated student modeling in a java moocEdm2014 investigating automated student modeling in a java mooc
Edm2014 investigating automated student modeling in a java mooc
Roya Hosseini
 
Kowledge zoom michelle
Kowledge zoom michelleKowledge zoom michelle
Kowledge zoom michelle
Roya Hosseini
 
Presentation
PresentationPresentation
Presentation
Roya Hosseini
 
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
AIED 2015 Poster- Off the Beaten Path: The Impact of Adaptive Content Sequenc...
Roya Hosseini
 
Java parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its applicationJava parser a fine grained indexing tool and its application
Java parser a fine grained indexing tool and its application
Roya Hosseini
 
Edm2014 investigating automated student modeling in a java mooc
Edm2014 investigating automated student modeling in a java moocEdm2014 investigating automated student modeling in a java mooc
Edm2014 investigating automated student modeling in a java mooc
Roya Hosseini
 
Kowledge zoom michelle
Kowledge zoom michelleKowledge zoom michelle
Kowledge zoom michelle
Roya Hosseini
 
Ad

Recently uploaded (20)

How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?
Process mining Evangelist
 
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
Taqyea
 
Introduction to systems thinking tools_Eng.pdf
Introduction to systems thinking tools_Eng.pdfIntroduction to systems thinking tools_Eng.pdf
Introduction to systems thinking tools_Eng.pdf
AbdurahmanAbd
 
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
RomiRomeo
 
Time series analysis & forecasting day 2.pptx
Time series analysis & forecasting day 2.pptxTime series analysis & forecasting day 2.pptx
Time series analysis & forecasting day 2.pptx
AsmaaMahmoud89
 
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Jayantilal Bhanushali
 
Important JavaScript Concepts Every Developer Must Know
Important JavaScript Concepts Every Developer Must KnowImportant JavaScript Concepts Every Developer Must Know
Important JavaScript Concepts Every Developer Must Know
yashikanigam1
 
Storage Devices and the Mechanism of Data Storage in Audio and Visual Form
Storage Devices and the Mechanism of Data Storage in Audio and Visual FormStorage Devices and the Mechanism of Data Storage in Audio and Visual Form
Storage Devices and the Mechanism of Data Storage in Audio and Visual Form
Professional Content Writing's
 
2024 Digital Equity Accelerator Report.pdf
2024 Digital Equity Accelerator Report.pdf2024 Digital Equity Accelerator Report.pdf
2024 Digital Equity Accelerator Report.pdf
dominikamizerska1
 
Digital Disruption Use Case_Music Industry_for students.pdf
Digital Disruption Use Case_Music Industry_for students.pdfDigital Disruption Use Case_Music Industry_for students.pdf
Digital Disruption Use Case_Music Industry_for students.pdf
ProsenjitMitra9
 
Unit 2 - Unified Modeling Language (UML).pdf
Unit 2 - Unified Modeling Language (UML).pdfUnit 2 - Unified Modeling Language (UML).pdf
Unit 2 - Unified Modeling Language (UML).pdf
sixokak391
 
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdfPublication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
StatsCommunications
 
What is ETL? Difference between ETL and ELT?.pdf
What is ETL? Difference between ETL and ELT?.pdfWhat is ETL? Difference between ETL and ELT?.pdf
What is ETL? Difference between ETL and ELT?.pdf
SaikatBasu37
 
HershAggregator (2).pdf musicretaildistribution
HershAggregator (2).pdf musicretaildistributionHershAggregator (2).pdf musicretaildistribution
HershAggregator (2).pdf musicretaildistribution
hershtara1
 
DATA ANALYST and Techniques in Kochi Explore cutting-edge analytical skills ...
DATA ANALYST  and Techniques in Kochi Explore cutting-edge analytical skills ...DATA ANALYST  and Techniques in Kochi Explore cutting-edge analytical skills ...
DATA ANALYST and Techniques in Kochi Explore cutting-edge analytical skills ...
aacj102006
 
Urban models for professional practice 03
Urban models for professional practice 03Urban models for professional practice 03
Urban models for professional practice 03
DanisseLoiDapdap
 
Get Started with FukreyGame Today!......
Get Started with FukreyGame Today!......Get Started with FukreyGame Today!......
Get Started with FukreyGame Today!......
liononline785
 
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptxConcrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
ssuserd1f4a3
 
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiqLesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
AngelPinedaTaguinod
 
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdfTOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
NhiV747372
 
How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?
Process mining Evangelist
 
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
最新版澳洲西澳大利亚大学毕业证(UWA毕业证书)原版定制
Taqyea
 
Introduction to systems thinking tools_Eng.pdf
Introduction to systems thinking tools_Eng.pdfIntroduction to systems thinking tools_Eng.pdf
Introduction to systems thinking tools_Eng.pdf
AbdurahmanAbd
 
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
2022.02.07_Bahan DJE Energy Transition Dialogue 2022 kirim.pdf
RomiRomeo
 
Time series analysis & forecasting day 2.pptx
Time series analysis & forecasting day 2.pptxTime series analysis & forecasting day 2.pptx
Time series analysis & forecasting day 2.pptx
AsmaaMahmoud89
 
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Day 1 MS Excel Basics #.pptxDay 1 MS Excel Basics #.pptxDay 1 MS Excel Basics...
Jayantilal Bhanushali
 
Important JavaScript Concepts Every Developer Must Know
Important JavaScript Concepts Every Developer Must KnowImportant JavaScript Concepts Every Developer Must Know
Important JavaScript Concepts Every Developer Must Know
yashikanigam1
 
Storage Devices and the Mechanism of Data Storage in Audio and Visual Form
Storage Devices and the Mechanism of Data Storage in Audio and Visual FormStorage Devices and the Mechanism of Data Storage in Audio and Visual Form
Storage Devices and the Mechanism of Data Storage in Audio and Visual Form
Professional Content Writing's
 
2024 Digital Equity Accelerator Report.pdf
2024 Digital Equity Accelerator Report.pdf2024 Digital Equity Accelerator Report.pdf
2024 Digital Equity Accelerator Report.pdf
dominikamizerska1
 
Digital Disruption Use Case_Music Industry_for students.pdf
Digital Disruption Use Case_Music Industry_for students.pdfDigital Disruption Use Case_Music Industry_for students.pdf
Digital Disruption Use Case_Music Industry_for students.pdf
ProsenjitMitra9
 
Unit 2 - Unified Modeling Language (UML).pdf
Unit 2 - Unified Modeling Language (UML).pdfUnit 2 - Unified Modeling Language (UML).pdf
Unit 2 - Unified Modeling Language (UML).pdf
sixokak391
 
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdfPublication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
Publication-launch-How-is-Life-for-Children-in-the-Digital-Age-15-May-2025.pdf
StatsCommunications
 
What is ETL? Difference between ETL and ELT?.pdf
What is ETL? Difference between ETL and ELT?.pdfWhat is ETL? Difference between ETL and ELT?.pdf
What is ETL? Difference between ETL and ELT?.pdf
SaikatBasu37
 
HershAggregator (2).pdf musicretaildistribution
HershAggregator (2).pdf musicretaildistributionHershAggregator (2).pdf musicretaildistribution
HershAggregator (2).pdf musicretaildistribution
hershtara1
 
DATA ANALYST and Techniques in Kochi Explore cutting-edge analytical skills ...
DATA ANALYST  and Techniques in Kochi Explore cutting-edge analytical skills ...DATA ANALYST  and Techniques in Kochi Explore cutting-edge analytical skills ...
DATA ANALYST and Techniques in Kochi Explore cutting-edge analytical skills ...
aacj102006
 
Urban models for professional practice 03
Urban models for professional practice 03Urban models for professional practice 03
Urban models for professional practice 03
DanisseLoiDapdap
 
Get Started with FukreyGame Today!......
Get Started with FukreyGame Today!......Get Started with FukreyGame Today!......
Get Started with FukreyGame Today!......
liononline785
 
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptxConcrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
Concrete_Presenbmlkvvbvvvfvbbbfcfftation.pptx
ssuserd1f4a3
 
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiqLesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
Lesson-2.pptxjsjahajauahahagqiqhwjwjahaiq
AngelPinedaTaguinod
 
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdfTOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
NhiV747372
 
Ad

Ppig2014 problem solvingpaths

  • 1. Exploring Problem Solving Paths in a Java Programming Course Roya Hosseini1 Arto Vihavainen2 Peter Brusilovsky1,3 1 Intelligent Systems Program, University of Pittsburgh 2 Department of Computer Science, University of Helsinki 3 School of Information Sciences, University of Pittsburgh Intelligent Systems Program University of Helsinki Psychology of Programming Interest Group 25th Workshop 25-27 June 2014
  • 2. Goal of this work • Identifying most common programming paths – Tracking and analyzing subsequent programming steps within programming assignments – Looking at the concepts that students use
  • 3. Related Work • Factors contributing to success in programming: – aptitude: psychological tests, ... (Evans and Simkin 1989, ..) – background: mathematics, ... (White and Sivitanides 2003, ..) – psychological aspects: motivation, comfort- level, ... (Bergin and Reilly 2005, ..) – learning styles, ... (Thomas et al. 2002, ..)
  • 4. Related Work • Data-driven approaches for analyzing submission and snapshot streams: – compilation behaviour – time usage Jadud (2005) and Vee (2006), ..
  • 5. Related Work • Novice problem-solving behaviour (Perkins et al. 1986, ..) stoppers movers tinkerers pic pic pic
  • 6. This study ● Introductory programming course, fall 2012 ● Programming in NetBeans: – Unit tests designed to scaffold students – Test My Code plugin Vihavainen et al. 2013 ● Recording snapshots: – correctness [0-1] – difficulty [1-5] (post assignment) – set of programming concepts Hosseini & Brusilovsky 2013
  • 7. Example: Subsequent snapshots import java.util.Scanner; public class BiggerNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Type a number: "); int first = Integer.parseInt(input.nextLine()); System.out.println("Type another number: "); int second = Integer.parseInt(input.nextLine()); if (first > second) System.out.println("nBigger number: " + first); if (first < second) System.out.println("nBigger number: " + second); else System.out.println(“nNumbers were equal: "); } } import java.util.Scanner; public class BiggerNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Type a number: "); int first = Integer.parseInt(input.nextLine()); System.out.println("Type another number: "); int second = Integer.parseInt(input.nextLine()); if (first > second) System.out.println("nBigger number: " + first); else if (first < second) System.out.println("nBigger number: " + second); else System.out.println(“nNumbers were equal: "); } } Snapshot A Snapshot B
  • 8. Example: Subsequent snapshots import java.util.Scanner; public class BiggerNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Type a number: "); int first = Integer.parseInt(input.nextLine()); System.out.println("Type another number: "); int second = Integer.parseInt(input.nextLine()); if (first > second) System.out.println("nBigger number: " + first); if (first < second) System.out.println("nBigger number: " + second); else System.out.println(“nNumbers were equal: "); } } import java.util.Scanner; public class BiggerNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Type a number: "); int first = Integer.parseInt(input.nextLine()); System.out.println("Type another number: "); int second = Integer.parseInt(input.nextLine()); if (first > second) System.out.println("nBigger number: " + first); else if (first < second) System.out.println("nBigger number: " + second); else System.out.println(“nNumbers were equal: "); } } Snapshot A Snapshot B
  • 9. Example: Concepts from snapshots ActualMethodParameter, MethodDefinition, ObjectCreationStatement, ObjectMethodInvocation, PublicClassSpecifier, PublicMethodSpecifier, StaticMethodSpecifier, StringAddition, StringDataType, StringLiteral, LessExpression, java.lang.System.out.println, java.lang.System.out.print, ClassDefinition, ConstructorCall, FormalMethodParameter, GreaterExpression, IfStatement, IfElseStatement, ImportStatement, IntDataType, java.lang.Integer.parseInt, VoidDataType ActualMethodParameter, MethodDefinition, ObjectCreationStatement, ObjectMethodInvocation, PublicClassSpecifier, PublicMethodSpecifier, StaticMethodSpecifier, StringAddition, StringDataType, StringLiteral, LessExpression, java.lang.System.out.println, java.lang.System.out.print, ClassDefinition, ConstructorCall, FormalMethodParameter, GreaterExpression, IfElseIfStatement, IfElseStatement, ImportStatement, IntDataType, java.lang.Integer.parseInt, VoidDataType Concepts in Snapshot A Concepts in Snapshot B
  • 10. Dataset ● 101 participants (65 male, 36 female) ● 101 exercises ● 60+k snapshots ● Preprocessing excludes: ● users that have not given consent ● users not participating in first week ● subsequent identical snapshots
  • 11. Approach ● (1) Extracting concepts from snapshots ● (2) Analyzing conceptual changes between sequential snapshots Assumption Incremental building of the program Programming Behaviour Global Level Programming Behaviour Individual Level
  • 12. Global Level ● When, for each exercise, snapshots from all students are put together, what do we see? Assumption Incremental building of the program Programming Behaviour Global Level
  • 13. Global Level: Easy Exercise
  • 15. Global Level: Hard Exercise
  • 17. Individual Level ● Looking at each exercise for each student individually, what sort of student-specific patterns do we see? Assumption Incremental building of the program Programming Behaviour Individual Level
  • 18. Identifying Programming Patterns: 1 snapshots Classify Label Concept Correctness Concepts Correctness Same Increase Decrease Zero Struggler Struggler Struggler Decrease Struggler Struggler Struggler Increase Builder Builder Reducer Same Massager Builder Reducer
  • 19. Identifying Programming Patterns: 2 Pattern Mining (SPAM) Snapshots Student s1: Exercise e1 … Student sn: Exercise en Common Patterns ~8k Student-Exercise
  • 24. Common Programming Patterns Pattern Support Pattern Support BB 0.304 SSS 0.128 SB 0.281 BR 0.127 BS 0.215 BBB 0.123 SS 0.199 SSB 0.123
  • 26. Overall Result • Incremental program building hypothesis not always true! • Still, it is dominant behaviour among plenty of students (77.63%)
  • 27. Discussion • Building and reduction steps happen in: – all stages of program development – across levels of problem difficulty – visible in both slow and fast students • Most students build programs incrementally: – starting with a small program – incrementally adding concepts – increasing its correctness (passing more tests)
  • 28. Future Work • Do the introduced programming patterns generalize in other datasets? • What about different data granularities? • What is the influence of individual traits on programming behaviours (age, gender,…)?
  • 29. Future Work • Automatic Student Modeling? Yudelson et al.; “Investigating Automatic Student Modeling in a Java, Educational Data Mining, 2014

Editor's Notes

  • #3: The main goal of this paper is to study students’ programming behaviour. The approaches we use in this paper are based on two unique aspects. First, we use an enhanced trace of student program construction activity. While existing studies focus on the analysis of students’ final submissions, our dataset provides us with many intermediate steps which give us more data on student paths from the provided program skeleton to the correct solutions. Second, when analysing student progress and comparing the state of the code in consecutive steps, we use a deeper-level conceptual analysis of submitted solutions. Existing work has looked at each submitted program as a text and either examined student progress by observing how students add or remove lines of code (Rivers and Koedinger 2013) or attempted to find syntactic and functional similarity between students’ submissions (Huang et al. 2013). We, on the other hand, are interested in the conceptual structure of submitted programs.
  • #4: Work on identifying traits that indicate tendency toward being a successful programmer dates back to the 1950s (Rowan 1957), where psychological tests were administered to identify people with an ability to program. Since the 1950s, dozens of different factors have been investigated. This work included the creation of various psychological tests (Evans and Simkin 1989, Tukiainen and Mönkkönen 2002) and investigation of the effect of factors such as mathematical background (White and Sivitanides 2003), spatial and visual reasoning (Fincher et al. 2006), motivation and comfort-level (Bergin and Reilly 2005), learning styles (Thomas et al. 2002), as well as the consistency of students’ internal mental models (Bornat and Dehnadi 2008) and abstraction ability (Bennedssen and Caspersen, 2008) NOTE: it is good to some pictures to the slides. If people are famous, perhaps their public profile picture; otherwise a picture relevant to each of the success factors.
  • #5: Analysis of submission and snapshot streams in terms of student compilation behaviour and time usage has been investigated in, for instance, Jadud (2005) and Vee (2006). Note: this slide also needs relevant pictures for showing the compilation behaviour or time usage.
  • #6: Perhaps the most known work on exploring novice problem-solving behaviour is by Perkins et al., whose work classifies students as “stoppers,” “movers” or “tinkerers” based on the strategy they choose when facing a problem (Perkins et al. 1986). The stoppers freeze when faced with a problem for which they see no solution, movers gradually work towards a correct solution, and tinkerers “try to solve a programming problem by writing some code and then making small changes in the hopes of getting it to work.” Note: we need some pictures relavant to each category. After inserting the pictures, borders of the table should be removed.
  • #7: The difficulty level of exercise is determined by averaging students’ responses over the question “How difficult was this exercise on a scale from 1 to 5?” which was asked after each exercise. An easy exercise has the average difficulty level of [1.00,2.00); a medium exercise has the average difficulty level of [2.00,2.50); and a hard exercise has the average difficulty level of [2.50,5.00]. To determine which programming concepts have been used in a specific solution, we use a concept extraction tool called JavaParser (Hosseini and Brusilovsky 2013). The JavaParser tool extracts a list of ontological concepts from source code using a Java ontology developed by PAWS laboratory; concepts have been extracted for each snapshot. http://www.sis.pitt.edu/~paws/ont/java.owl
  • #12: Using parser tool we can examine conceptual differences between consecutive submissions – i.e., observe which concepts (rather than lines) were added or removed on each step. We can also examine how these changes were associated with improving or decreasing the correctness of program. Our original assumption about student behaviour is that students seek to develop their programs incrementally. We assume that a student develops a program in a sequence of steps adding components to its functionality on every step while gradually improving the correctness (i.e., passing more and more tests). For example, a student can start with a provided program skeleton which passes one test, then enhance the code so that it passes two tests, add more functionality to have it pass three tests, and so on. To check this assumption we start our problem solving analysis process with the global analysis that looks into common programming patterns and then followed with several other analysis approaches.
  • #13: Using parser tool we can examine conceptual differences between consecutive submissions – i.e., observe which concepts (rather than lines) were added or removed on each step. We can also examine how these changes were associated with improving or decreasing the correctness of program. Our original assumption about student behaviour is that students seek to develop their programs incrementally. We assume that a student develops a program in a sequence of steps adding components to its functionality on every step while gradually improving the correctness (i.e., passing more and more tests). For example, a student can start with a provided program skeleton which passes one test, then enhance the code so that it passes two tests, add more functionality to have it pass three tests, and so on. To check this assumption we start our problem solving analysis process with the global analysis that looks into common programming patterns and then followed with several other analysis approaches.
  • #14: To examine our incremental building hypothesis, we started by examining the change of concepts in each snapshot from its most recent successful snapshot. We defined a successful snapshot as a program state that has the correctness either greater than or equal to the greatest previous correctness. For simplicity the concept change was measured as numerical difference between the number of concepts in two snapshots. Since student-programming behaviour might depend on problem difficulty, we examined separately the change of concepts per three levels of exercise complexity: easy, medium, and hard. Change of Concepts in Medium Exercise The next 3 slides show the change of concepts for all easy, medium, and hard exercises, respectively. It should be mentioned that each figure only shows change of concepts from the most recent successful snapshots. Each data point represents one snapshot taken from one user in one exercise. The horizontal position of the point represents the number of this snapshot in the sequence of snapshots produced by this user for this exercise. The vertical position of the point indicates the change in the number of concepts from the previous successful snapshot. If a point is located above the 0 axe, the corresponding snapshot added concepts to the previous snapshot (this is what we expected). If it is located below the 0 axe, concepts were removed. The colour of each point indicates the correctness of the user’s program at that snapshot using red-green gradient to visualize [0-1] interval. Light green is showing the highest correctness (1) where all tests are passed and light red showing no correctness (0) where none of the tests are passed.
  • #16: The analysis of the data presented on Figure 2 and Table 2 leads to two important observations. First, we can see that the amount of conceptual changes from snapshot to snapshot is relatively high at the beginning of students’ work on each exercise and then drops rapidly, especially for hard problems. It shows that on average significant changes are introduced to the constructed program relatively early within the first quartile of its development. The second observation is about the nature of changes. As the data shows, all development changes include large changes in both directions – both adding and removing concepts. It shows that our original hypothesis about incremental program expansion is not correct – there are a lot of cases when concepts (frequently many of them) are removed between snapshots.
  • #17: Since we have no personal data about students, the only student-related factor we can further examine was the level of programming skills that could be approximated by analysing the individual speed in developing the code. The presence of green dots in the first quartile indicates that some good number of students are able to pass all tests relatively fast, while the presence of the long tail (very long for hard exercises) indicates that a considerable number of students struggle to achieve full correctness for a relatively long time. That is, slower students tend to develop the program in more snapshots while faster students write program in fewer snapshots. To further investigate whether students’ programming speed leads to different programming behaviours, we clustered students based on their number of snapshots on their path to success. For each exercise, we separated students into three different groups by comparing the number of their snapshots with the median of students’ snapshots in that exercise. We then classified students with snapshots less than the median to be in ‘cluster 1’ and greater than median to be in ‘cluster 2’. We ignored students with the number of snapshots exactly equal to median to improve the cluster separation. Figure 4 shows changes of concepts per all easy, medium, and hard exercises for all students in the two clusters. Overall, this figure exhibits a similar pattern to the one observed in Figure 2. It’s not the speed, it’s the behavior. We see larger-scale changes in the beginning of program development are replaced by small changes in the middle and end of the process. We also see that students on all skill levels working with all problem difficulty levels apply both concept addition and concept reduction when constructing a program. This hints that the patterns of program construction behaviour are not likely to be defined by skill levels and that we need to examine the behaviour of individual students to understand the nature of pattern differences.
  • #18: Using parser tool we can examine conceptual differences between consecutive submissions – i.e., observe which concepts (rather than lines) were added or removed on each step. We can also examine how these changes were associated with improving or decreasing the correctness of program. Our original assumption about student behaviour is that students seek to develop their programs incrementally. We assume that a student develops a program in a sequence of steps adding components to its functionality on every step while gradually improving the correctness (i.e., passing more and more tests). For example, a student can start with a provided program skeleton which passes one test, then enhance the code so that it passes two tests, add more functionality to have it pass three tests, and so on. To check this assumption we start our problem solving analysis process with the global analysis that looks into common programming patterns and then followed with several other analysis approaches.
  • #19: To recognize students with different kinds of behaviour we decided to perform micro-analysis of student behaviour. Starting with the main patterns of programming behaviours we observed, we decided to explore the frequency of such patterns inside programming steps of each user in each exercise. Instead of classifying the whole student path as Builder, Massager, Reducer, or Struggler, we started by classifying each problem solving step with these labels based on the change of concept and correctness in each snapshot. Table 3 lists the labels used for the labeling process. Next, we applied sequential pattern mining to identify the most common problem solving patterns among the 8458 students-exercise pairs that we had in the dataset. Specifically, we used software called PEX-SPAM which is an extension of SPAM algorithm (Ayres et al. 2002) that supports pattern mining with user-specified constraints such as minimum and maximum gap for output feature patterns. The tool was originally developed for biological applications but it can be easily employed to extract frequent patterns in other domains, too (Ho et al. 2005). Table 4 summarizes the common patterns obtained by PEX-SPAM with the support (the probability that the pattern occurs in the data) greater than 0.05. This classification is inspired by the work of Perkins et al. (1986), who categorized students as “stoppers”, “movers” and “tinkerers;” however, in our dataset, the students rarely “stop” or give up on the assignment, and even the tinkering seems to be goal-oriented. Among these patterns, Builders that roughly correspond to “movers” behave exactly as expected; they gradually add concepts to the solution while increasing of correctness of the solution in each step (Figure 5a). In many cases we observe that students who generally follow a building pattern have long streaks when they are trying to get to the next level of correctness by doing small code changes without adding or removing concepts in the hope of getting it to work (Figure 5b). We call these streaks as code massaging and students who have these streaks as Massagers.
  • #20: Next, we applied sequential pattern mining to identify the most common problem solving patterns among the 8458 students-exercise pairs that we had in the dataset. Specifically, we used software called PEX-SPAM which is an extension of SPAM algorithm (Ayres et al. 2002) that supports pattern mining with user-specified constraints such as minimum and maximum gap for output feature patterns. The tool was originally developed for biological applications but it can be easily employed to extract frequent patterns in other domains, too (Ho et al. 2005). Table 4 summarizes the common patterns obtained by PEX-SPAM with the support (the probability that the pattern occurs in the data) greater than 0.05.
  • #21: At the final analysis step, we examined programming behaviour on the finest available level exploring the behaviour of individual students on a set of selected assignments. The analysis confirmed that most interesting differences in problem solving patterns could be observed on the individual level where it likely reflects differences in personal problem solving styles. Next five slides show several interesting behaviour patterns we discovered during the analysis. We call the students exhibiting these specific patterns Builders, Massagers, Reducers and Strugglers. Figure description in this slide: A Builder who solves a hard problem incrementally by adding concepts and increasing the correctness;
  • #22: A Massager who has long streaks of small program changes without changing concepts or correctness levels;
  • #23: A Reducer who reduces concepts and gradually increases correctness in a hard exercise
  • #24: A Struggler who struggles with the program failing to pass any tests for a long time.
  • #25: The table shows interesting results related to the frequency of specific patterns. The first important observation is the dominance of the Builder pattern. In particular, the most common retrieved pair is ‘BB’ with support of 0.304 indicating that this pattern occurs in about ⅓ of the student-exercise pairs. This indicates that our original assumption of regular program building is not really that far from reality. While only a fraction of students could be classified as straightforward Builders, streaks of incremental building represent most typical behaviour. Another frequent kind of pattern is struggling sequences that may or may not end with the building step. It is also interesting to observe that reducing steps are rarely found inside frequent sequences.
  • #26: To further investigate the most dominant programming pattern inside each of the 8458 students-exercise pairs, we grouped each of these pairs based on their most frequent pattern(s). Table 5 shows the results of the grouping and lists the frequency and percentage of each group. According to this table, about 77.63% of the students are Builders who tend to add concepts and increase the correctness incrementally. Shows the most dominant pattern for each student; more than one = equal number of different behaviors Contrary to our original hypothesis of student behaviour as incremental program building, by adding more concepts and passing more tests, the macro view of student behaviour indicated a large fraction of concept reduction steps. Further analysis demonstrated that both building and reduction steps happen in all stages of program development and across levels of problem difficulty and student mastery. The analysis of program building patterns on the micro-level demonstrated that while the original building hypothesis is not strictly correct, it does describe the dominant behaviour of a large fraction of students. Our data indicate that for the majority of students (77.63%) the dominant pattern is building, i.e. incrementally enhancing the program while passing more and more tests. At the same time, both individual pattern analysis and micro-level pattern mining indicated that there are a number of students who do it in a very different way. Few students tend to reduce the concepts and increase the correctness (2.05%) or they might have long streaks of small program changes without changing concepts or correctness level (0.12%). There are also some students who show different programming behaviour, showing two or more patterns (20.2%), hinting that students' behaviour can change over time. Apparently, the original hypothesis does not work for everyone, but it does hold for a considerable number of students. Therefore, we have now enough evidence to conclude that there exists a meaningful expansion programming that implies starting with a small program, and then increasing its correctness by incrementally adding concepts and passing more and more tests in each of the programming steps.
  • #27: Contrary to our original hypothesis of student behaviour as incremental program building, by adding more concepts and passing more tests, the macro view of student behaviour indicated a large fraction of concept reduction steps. Further analysis demonstrated that both building and reduction steps happen in all stages of program development and across levels of problem difficulty and student mastery. The analysis of program building patterns on the micro-level demonstrated that while the original building hypothesis is not strictly correct, it does describe the dominant behaviour of a large fraction of students. Our data indicate that for the majority of students (77.63%) the dominant pattern is building, i.e. incrementally enhancing the program while passing more and more tests. At the same time, both individual pattern analysis and micro-level pattern mining indicated that there are a number of students who do it in a very different way. Few students tend to reduce the concepts and increase the correctness (2.05%) or they might have long streaks of small program changes without changing concepts or correctness level (0.12%). There are also some students who show different programming behaviour, showing two or more patterns (20.2%), hinting that students' behaviour can change over time. Apparently, the original hypothesis does not work for everyone, but it does hold for a considerable number of students. Therefore, we have now enough evidence to conclude that there exists a meaningful expansion programming that implies starting with a small program, and then increasing its correctness by incrementally adding concepts and passing more and more tests in each of the programming steps.
  • #28: Contrary to our original hypothesis of student behaviour as incremental program building, by adding more concepts and passing more tests, the macro view of student behaviour indicated a large fraction of concept reduction steps. Further analysis demonstrated that both building and reduction steps happen in all stages of program development and across levels of problem difficulty and student mastery. The analysis of program building patterns on the micro-level demonstrated that while the original building hypothesis is not strictly correct, it does describe the dominant behaviour of a large fraction of students. Our data indicate that for the majority of students (77.63%) the dominant pattern is building, i.e. incrementally enhancing the program while passing more and more tests. At the same time, both individual pattern analysis and micro-level pattern mining indicated that there are a number of students who do it in a very different way. Few students tend to reduce the concepts and increase the correctness (2.05%) or they might have long streaks of small program changes without changing concepts or correctness level (0.12%). There are also some students who show different programming behaviour, showing two or more patterns (20.2%), hinting that students' behaviour can change over time. Apparently, the original hypothesis does not work for everyone, but it does hold for a considerable number of students. Therefore, we have now enough evidence to conclude that there exists a meaningful expansion programming that implies starting with a small program, and then increasing its correctness by incrementally adding concepts and passing more and more tests in each of the programming steps.
  • #29: we would like to see to what extent the introduced programming behaviours are stable over different datasets and even in different programming domains. It would be also interesting to see how information such as age, gender and math performance, as well as many of the traits that have been previously used to predict programming aptitude influences programming behaviour Reviewer comment – analysis of time and change of concept
  • #30: we would like to see to what extent the introduced programming behaviours are stable over different datasets and even in different programming domains. It would be also interesting to see how information such as age, gender and math performance, as well as many of the traits that have been previously used to predict programming aptitude influences programming behaviour Reviewer comment – analysis of time and change of concept
  • #31: we would like to see to what extent the introduced programming behaviours are stable over different datasets and even in different programming domains. It would be also interesting to see how information such as age, gender and math performance, as well as many of the traits that have been previously used to predict programming aptitude influences programming behaviour Reviewer comment – analysis of time and change of concept
  翻译: