EXPERIMENTAL STUDIES OF DEBUGGING PROCESSES OF COMPUTER PROGRAMS BY STUDENTS USING PROCESS MINING
Keywords:
Process Mining, отладка, Visual Studio, эксперимент, шаблон отладки, обучение программированиюAbstract
Understanding how students debug programs and what problems they encounter is important for improving the quality of programming instruction. The processes of debugging computer programs are analyzed in order to improve the quality of students' programming instruction. An example of assessing students' debugging behavior and skills is described. The process of debugging program text is considered as a sequence of actions when working with tools in the development environment. To identify the debugging skills, the method of error-sowing is applied. Programs with typical logical errors were developed. An experiment was conducted in which the actions of 41 developers performing debugging were evaluated. As part of the experiment, students had to solve typical logical errors using the Visual Studio integrated development environment. The actions of each developer in completing the tasks were tracked. Debugging process models were generated using Process Mining methods. Based on the obtained models of debugging processes and most frequent sessions it was possible to identify 4 patterns of behavior of the experiment's participants. The results demonstrate the effectiveness of Process Mining for a better understanding of how developers approach the debugging task. The Visual Studio debugger features were found to be used, unsatisfactorily. Participants who did not use the debugging tools instead used trial and error and used the display of values on the screen. These results call for more hands-on debugging experiences in the training programs. The instrumental and organizational tools for teaching students to debug in software engineering courses require further development.
References
LaToza, T. D., & Myers, B. A. (2010). Developers ask reachability questions. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering – ICSE'10 (Vol. 1, pp. 185–194). https://doi.org/10.1145/1806799.1806829
Shynkarenko, V., & Zhevaho, O. (2020). Development of a toolkit for analyzing software debugging processes using the constructive approach. Eastern-european Journal of Enterprise Technologies, 5(2 (107)), 29–38. https://doi.org/10.15587/1729-4061.2020.215090
van der Aalst, W. (2012). Process mining: Overview and opportunities. ACM Transactions on Management Information Systems, 3(2), 1–17. https://doi.org/10.1145/2229156.2229157
Rubin, V., Günther, C. W., van der Aalst, W. M. P., Kindler, E., van Dongen, B. F., & Schäfer, W. (2007). Process Mining Framework for Software Processes. In Software Process Dynamics and Agility (pp. 169–181). Springer Berlin Heidelberg. http://doi.org/10.1007/978-3-540-72426-1_15
Ardimento, P., Bernardi, M. L., Cimitile, M., & Maggi, F. M. (2019). Evaluating Coding Behavior in Software Development Processes: A Process Mining Approach. In 2019 IEEE/ACM International Conference on Software and System Processes (ICSSP). IEEE. http://doi.org/10.1109/icssp.2019.00020
Shynkarenko, V., & Zhevago, O. (2019). Visualization of program development process. In 2019 IEEE 14th International Conference on Computer Sciences and Information Technologies (CSIT). IEEE. http://doi.org/10.1109/stc-csit.2019.8929774
Shynkarenko, V., & Zhevaho, O. (2020). Constructive Modeling of the Software Development Process for Modern Code Review. In 2020 IEEE 15th International Conference on Computer Sciences and Information Technologies (CSIT). IEEE. http://doi.org/10.1109/csit49958.2020.9322002
Snipes, W., Murphy-Hill, E., Fritz, T., Vakilian, M., Damevski, K., Nair, A. R., & Shepherd, D. (2015). A Practical Guide to Analyzing IDE Usage Data. In The Art and Science of Analyzing Software Data (pp. 85–138). Elsevier. http://doi.org/10.1016/b978-0-12-411519-4.00005-7
Edwards, S. H., Snyder, J., Pérez-Quiñones, M. A., Allevato, A., Kim, D., & Tretola, B. (2009). Comparing effective and ineffective behaviors of student programmers. In Proceedings of the fifth international workshop on Computing education research workshop – ICER '09. ACM Press. http://doi.org/10.1145/1584322.1584325
Alqadi, B. S., & Maletic, J. I. (2017). An Empirical Study of Debugging Patterns Among Novices Programmers. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. ACM. http://doi.org/10.1145/3017680.3017761
Perscheid, M., Siegmund, B., Taeumel, M., & Hirschfeld, R. (2016). Studying the advancement in debugging practice of professional software developers. Software Quality Journal, 25(1), 83–110. http://doi.org/10.1007/s11219-015-9294-2
Andreas Zeller (2009). Why Programs Fail, Second Edition: A Guide to Systematic Debugging. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2nd edition.
Ko, A. J., & Myers, B. A. (2008). Debugging reinvented. In Proceedings of the 13th international conference on Software engineering – ICSE '08. ACM Press. http://doi.org/10.1145/1368088.1368130
Bryce, R. C., Cooley, A., Hansen, A., & Hayrapetyan, N. (2010). A one year empirical study of student programming bugs. In 2010 IEEE Frontiers in Education Conference (FIE). IEEE. http://doi.org/10.1109/fie.2010.5673143
Verbeek, H. M. W., Buijs, J. C. A. M., van Dongen, B. F., & van der Aalst, W. M. P. (2011). XES, XESame, and ProM 6. In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications (pp. 60–75). Springer International Publishing. http://doi.org/10.1007/978-3-642-17722-4_5