Acta Informatica Pragensia X:X | DOI: 10.18267/j.aip.283106

Personalized Learning Analytics Through Static Code Analysis in Computer Science Education

Marek Horváth ORCID..., Emília Pietriková ORCID..., Filip Gurbáµ ORCID...
Department of Computers and Informatics, Faculty of Electrical Engineering and Informatics, Technical University of Koąice, Slovak Republic

Background: Learning programming is often difficult for beginners, primarily because of the challenge of providing timely and personalized feedback in large educational environments. While automated assessment systems have improved efficiency in grading and feedback, they typically focus on correctness and often lack personalized guidance concerning code quality, readability, and maintainability.

Objective: This study aims to investigate whether integrating static code analysis into automated assessment systems to provide personalized feedback can effectively enhance students code quality, learning process, and engagement in programming courses.

Methods: We designed a personalized feedback system integrated with static analysis tools (Cppcheck and Clang-format), deployed within an existing automated assessment platform used by undergraduate programming students. The system was evaluated in a controlled experiment involving 60 students randomly divided into control and treatment groups. The effectiveness of personalized feedback was measured through quantitative metrics (style violations, potential bugs, and design issues), qualitative surveys, and submission behaviours over multiple assignments.

Results: Results demonstrated that students receiving personalized feedback improved their code quality, reducing the number of style violations by 76%, potential bugs by 52%, and structural issues by 32% compared to the control group. Students also expressed higher satisfaction, increased motivation, and greater willingness to iteratively refine their code based on personalized feedback.

Conclusion: The integration of static code analysis for personalized feedback not only enhances code quality but also helps a deeper understanding of good programming practices among students. Future research should focus on making feedback systems more adaptive, incorporating intelligent tutoring techniques, and exploring long-term impacts on programming habits and skill retention.

Keywords: Personalized feedback; Static code analysis; Student engagement; Code quality improvement; Learning analytics; Student-centered feedback; Clean code principles; Code quality metrics; Interactive feedback.

Received: April 24, 2025; Revised: July 22, 2025; Accepted: July 25, 2025; Prepublished online: August 27, 2025 

Download citation

References

  1. Babati, B., Horváth, G., Májer, V., & Pataki, N. (2017). Static analysis toolset with Clang. In Proceedings of the 10th International Conference on Applied Informatics, (pp. 23-29). Eszterházy Károly Catholic University. https://doi.org/10.14794/ICAI.10.2017.23 Go to original source...
  2. Biňas, M., & Pietriková, E. (2022). Impact of virtual assistant on programming novices' performance, behavior and motivation. Acta Electrotechnica Et Informatica, 22(1), 30-36. https://doi.org/10.2478/aei-2022-0005 Go to original source...
  3. Bubenkova, L., Pietrikova, E., & Horvath, M. (2025). Code Reuse and Good Clones in Programming Education. In 2025 IEEE 23rd World Symposium on Applied Machine Intelligence and Informatics, (pp. 401-406). IEEE. https://doi.org/10.1109/sami63904.2025.10883291 Go to original source...
  4. Chen, H., Nguyen, B., & Dow, C. (2022). Code-quality evaluation scheme for assessment of student contributions to programming projects. Journal of Systems and Software, 188, 111273. https://doi.org/10.1016/j.jss.2022.111273 Go to original source...
  5. Copeland, T. (2005). PMD Applied. Centennial Books.
  6. Cooper, K. D., & Torczon, L. (2023). Chapter 9: Data-Flow Analysis. In Engineering a Compiler, (3rd ed., pp. 449-516). Morgan Kaufmann. Go to original source...
  7. Delev, T., & Gjorgjevikj, D. (2017). Static analysis of source code written by novice programmers. In 2022 IEEE Global Engineering Education Conference, (pp. 825-830). IEEE. https://doi.org/10.1109/educon.2017.7942942 Go to original source...
  8. Fehnker, A., & Blok, T. (2017). Automated Program Analysis for Novice Programmers. In Third International Conference on Higher Education Advances, (pp. 1-8). Polytechnic University of Valencia. https://doi.org/10.4995/head17.2017.5533 Go to original source...
  9. Fosdick, L. D., & Osterweil, L. J. (1976). Data flow analysis in software reliability. ACM Computing Surveys, 8(3), 305-330. https://doi.org/10.1145/356674.356676 Go to original source...
  10. Gallien, T. & Oomen-Early, J. (2008). Personalized Versus Collective Instructor Feedback in the Online Courseroom: Does Type of Feedback Affect Student Satisfaction, Academic Performance and Perceived Connectedness With the Instructor?. International Journal on E Learning, 7(3), 463-476.
  11. Horváth, M., & Gurbál, F. (2024). Code Clones: A Novel Approach to Detecting Plagiarism in binary decomposition of C Programs. Acta Electrotechnica Et Informatica, 24(2), 13-18. https://doi.org/10.2478/aei-2024-0006 Go to original source...
  12. Horváth, M., Kormaník, T., & Porubän, J. (2024). Adaptation of Automated Assessment System for Large Programming Courses. In 5th International Computer Programming Education Conference, (pp. 4:1-4:11). Schloss Dagstuhl - Leibniz-Zentrum für Informatik. https://doi.org/10.4230/OASIcs.ICPEC.2024.4 Go to original source...
  13. Jurado, F. (2021). Teacher Assistance with Static Code Analysis in Programming Practicals and Project Assignments. In 2021 International Symposium on Computers in Education (SIIE). IEEE. https://doi.org/10.1109/siie53363.2021.9583635 Go to original source...
  14. Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.
  15. McConnell, S. (2004). Code Complete: A Practical Handbook of Software Construction. Microsoft Press.
  16. Messer, M., Brown, N. C. C., Kölling, M., & Shi, M. (2024). Automated Grading and Feedback Tools for Programming Education: A Systematic review. ACM Transactions on Computing Education, 24(1), 1-43. https://doi.org/10.1145/3636515 Go to original source...
  17. Molnar, A., Motogna, S., & Vlad, C. (2020). Using static analysis tools to assist student project evaluation. In Proceedings of the 2nd ACM SIGSOFT International Workshop on Education through Advanced Software Engineering and Artificial Intelligence, (pp. 7-12). ACM. https://doi.org/10.1145/3412453.3423195 Go to original source...
  18. Neamtiu, I., Foster, J. S., & Hicks, M. (2005). Understanding source code evolution using abstract syntax tree matching. ACM SIGSOFT Software Engineering Notes, 30(4), 1-5. https://doi.org/10.1145/1082983.1083143 Go to original source...
  19. Novak, M., & Binas, M. (2011). Automated testing of case studies in programming courses. In 2022 20th International Conference on Emerging eLearning Technologies and Applications (ICETA), (pp. 157-162). IEEE. https://doi.org/10.1109/iceta.2011.6112606 Go to original source...
  20. Nutbrown, S., & Higgins, C. (2016). Static analysis of programming exercises: Fairness, usefulness and a method for application. Computer Science Education, 26(2-3), 104-128. https://doi.org/10.1080/08993408.2016.1179865 Go to original source...
  21. Pereira, J. D., & Vieira, M. (2020). On the Use of Open-Source C/C++ Static Analysis Tools in Large Projects. In 2020 16th European Dependable Computing Conference, (pp. 97-102). IEEE. https://doi.org/10.1109/edcc51268.2020.00025 Go to original source...
  22. Rocha, H. J. B., De Azevedo Restelli Tedesco, P. C., & De Barros Costa, E. (2023). On the use of feedback in learning computer programming by novices: a systematic literature mapping. Informatics in Education. https://doi.org/10.15388/infedu.2023.09 Go to original source...
  23. Truong, N., Roe, P., & Bancroft, P. (2004). Static Analysis of Students' Java Programs, In ACE '04: Proceedings of the Sixth Australasian Conference on Computing Education, (pp. 317-325). ACM.

This is an open access article distributed under the terms of the Creative Commons Attribution 4.0 International License (CC BY 4.0), which permits use, distribution, and reproduction in any medium, provided the original publication is properly cited. No use, distribution or reproduction is permitted which does not comply with these terms.