Learning analytics to improve coding abilities: a fuzzy-based process mining approach

Comprehension of how students and developers head the development of software and what specific hurdles they face, have a strong potential to better support the coding workflow. In this paper, we present the CodingMiner environment to generate event logs from IDE usage enabling the adoption of fuzzy-based process mining techniques to model and to study the developers’ coding process. The logs from the development sessions have been analyzed using the fuzzy miner to highlight emergent and interesting developers’ and students’ behaviors during coding. The mined processes show different IDE usage patterns for students with different skills and performances. To validate our approach, we describe the results of a study in which the CodingMiner environment is used to investigate the coding activities of twenty students of a CS2 course performing a given programming task during four assignments. Results also demonstrate that fuzzy-based process mining techniques can be effectively exploited to understand students and developers behavior during programming tasks providing useful insights to improve the way they code.

[1]  Wil M. P. van der Aalst,et al.  Big Software on the Run In Vivo Software Analytics Based on Process Mining (Keynote) , 2015 .

[2]  Wil M. P. van der Aalst,et al.  Recursion aware modeling and discovery for hierarchical software event log analysis , 2017, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[3]  Ruven E. Brooks Towards a theory of the cognitive processes in computer programming , 1999, Int. J. Hum. Comput. Stud..

[4]  W.M.P. van der Aalst,et al.  Software architectural model discovery from execution data , 2018 .

[5]  Fabio Martinelli,et al.  Dynamic malware detection and phylogeny analysis using process mining , 2018, International Journal of Information Security.

[6]  Wil M. P. van der Aalst,et al.  Process Mining , 2016, Springer Berlin Heidelberg.

[7]  Boudewijn F. van Dongen,et al.  Process Mining Framework for Software Processes , 2007, ICSP.

[8]  Matthew Hertz,et al.  What do "CS1" and "CS2" mean?: investigating differences in the early courses , 2010, SIGCSE.

[9]  Tom DeMarco,et al.  Peopleware: Productive Projects and Teams , 1987 .

[10]  Fabrizio Maria Maggi,et al.  Using Discriminative Rule Mining to Discover Declarative Process Models with Non-atomic Activities , 2014, RuleML.

[11]  Fabio Martinelli,et al.  A fuzzy-based process mining approach for dynamic malware detection , 2017, 2017 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE).

[12]  Michele Lanza,et al.  Visualizing the workflow of developers , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[13]  Boudewijn F. van Dongen,et al.  Component behavior discovery from software execution data , 2016, 2016 IEEE Symposium Series on Computational Intelligence (SSCI).

[14]  Fabrizio Maria Maggi,et al.  Do activity lifecycles affect the validity of a business rule in a business process? , 2016, Inf. Syst..

[15]  R. Guindon,et al.  Control of cognitive processes during software design: what tools are needed? , 1988, CHI '88.

[16]  Wil M. P. van der Aalst,et al.  Fuzzy Mining - Adaptive Process Simplification Based on Multi-perspective Metrics , 2007, BPM.

[17]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[18]  Brad A. Myers,et al.  Capturing and analyzing low-level events from the code editor , 2011, PLATEAU '11.

[19]  Ekkart Kindler,et al.  Incremental Workflow Mining Based on Document Versioning Information , 2005, ISPW.

[20]  Bob Rehder,et al.  Cognitive Activities and Levels of Abstraction in Procedural and Object-Oriented Design , 1995, Hum. Comput. Interact..

[21]  Ricardo Seguel,et al.  Process Mining Manifesto , 2011, Business Process Management Workshops.

[22]  Wil M. P. van der Aalst,et al.  Process mining in software systems: Discovering real-life business transactions and process models from distributed systems , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[23]  Johannes Schneider,et al.  Mining Sequences of Developer Interactions in Visual Studio for Usage Smells , 2017, IEEE Transactions on Software Engineering.