Skip to main content
Log in

An analysis of learners’ programming skills through data mining

  • Published:
Education and Information Technologies Aims and scope Submit manuscript

Abstract

Programming skills (PS) are indispensable abilities in the information age, but the current research on PS cultivation mainly focuses on the teaching methods and lacks the analysis of program features to explore the differences in learners’ PS and guide programming learning. Therefore, the purpose of this study aims to explore horizontal differences and vertical changes in PS of learners aged 18 to 25 and facilitate the discovery of programming features and behaviors to guide the acquisition of PS through an experiment of statistical analysis and cluster analysis of 2,400 Python programs in four programming tasks. The research found the characteristics and main differences of PS reflected in the function call, interactive loop and several structures nesting. Simple programming task to medium-difficulty programming task is the most important link in programming learning. Furthermore, the research also showed that the difference in program structure is the core and foundation. The difference in type and quantity in simple structure, nested structure and mixed-use of structures is regular, which is an important factor to determine whether the program runs efficiently and whether the programming task can be solved. Finally, some heuristic ideas were put forward to help learners optimize programs and solve programming difficulties, which was of great guiding significance to PS learning.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. https://www.nowcoder.com/.

References

  • Aung, S. T., Funabiki, N., Syaifudin, Y. W., Kyaw, H. H. S., Aung, S. L., Dim, N. K., & Kao, W. C. (2021). A proposal of grammar-concept understanding problem in Java programming learning assistant system. J. Adv. Inform. Tech.(JAIT)

  • Bierre, K. J., & Phelps, A. M. (2004). October). The use of MUPPETS in an introductory java programming course. In Proceedings of the 5th conference on Information technology education (pp. 122–127)

  • Borges, R. P., Oliveira, P. R. F., Lima, R. D. R., & De Lima, R. W. (2018). A systematic review of literature on methodologies, practices, and tools for programming teaching. IEEE Latin America Transactions, 16(5), 1468–1475

  • Dann, W., Cooper, S., & Pausch, R. (2000). Making the connection: programming with animated small world. ACM SIGCSE Bulletin, 32(3), 41–44

  • Erümit, A. K. (2020). Effects of different teaching approaches on programming skills. Education and Information Technologies, 25(2), 1013–1037

    Article  Google Scholar 

  • Hosenfeld, C. (1976). Learning about learning: Discovering our students’ strategies. Foreign Language Annals, 9(2), 117–130

    Article  Google Scholar 

  • Jenkins, T. (2002, August). On the difficulty of learning to program. In Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences (Vol. 4, No. 2002, pp. 53–58)

  • Kesselbacher, M. (2019, May). Supporting the acquisition of programming skills with program construction patterns. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (pp. 188–189). IEEE

  • Kesselbacher, M., & Bollin, A. (2019, October). Discriminating programming strategies in scratch: Making the difference between novice and experienced programmers. In Proceedings of the 14th Workshop in Primary and Secondary Computing Education (pp. 1188–10)

  • Kesselbacher, M., & Bollin, A. (2021). Towards the Use of Slice-based Cohesion Metrics with Learning Analytics to Assess Programming Skills. arXiv preprint arXiv:2105.04974

  • Kyaw, H. H. S., Funabiki, N., Aung, S. L., Dim, N. K., & Kao, W. C. (2021). A study of element fill-in-blank problems for C programming learning assistant system. International Journal of Information and Education Technology, 11(6), 255–261

    Article  Google Scholar 

  • Louridas, P. (2006). Static code analysis. Ieee Software, 23(4), 58–61. doi:https://doi.org/10.1109/ms.2006.114.

    Article  Google Scholar 

  • López-Pernas, S., & Saqr, M. (2021). Bringing Synchrony and Clarity to Complex Multi-Channel Data: A Learning Analytics Study in Programming Education. IEEE Access, 9, 166531–166541

    Article  Google Scholar 

  • Moreno-León, J., Robles, G., & Román-González, M. (2016, April). Comparing computational thinking development assessment scores with software complexity metrics. In 2016 IEEE global engineering education conference (EDUCON) (pp. 1040–1045). IEEE

  • Malhotra, R. (2017, February). Software quality predictive modeling: An effective assessment of experimental data. In Proceedings of the 10th Innovations in Software Engineering Conference (pp. 215–216)

  • Molnar, A. J., Motogna, S., & Vlad, C. (2020, November). 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)

  • Mesihović, M., Ljubović, V., & Muharemović, I. (2020). Using WebIDE as a distance learning tool for high school programming. In 2020 43rd International Convention on Information, Communication and Electronic Technology (MIPRO) (pp. 893–898). IEEE

  • Prasad, A., Chaudhary, K., & Sharma, B. (2021). Programming skills: Visualization, interaction, home language and problem solving. Education and Information Technologies, 1–27

  • Robins, A. V. (2019). Novice Programmers and Introductory Programming. The Cambridge handbook of computing education research, 327

  • Pereira, F. D., Oliveira, E. H., Oliveira, D. B., Cristea, A. I., Carvalho, L. S., Fonseca, S. C., ...… Isotani, S. (2020). Using learning analytics in the Amazonas: understanding students’ behaviour in introductory programming. British journal of educational technology, 51(4), 955–972

    Article  Google Scholar 

  • Sun, Q., Wu, J., & Liu, K. (2020). Toward Understanding Students’ Learning Performance in an Object-Oriented Programming Course: The Perspective of Program Quality. IEEE Access, 8, 37505–37517. doi:https://doi.org/10.1109/access.2020.2973470.

    Article  Google Scholar 

  • Song, D., Hong, H., & Oh, E. Y. (2021). Applying computational analysis of novice learners’ computer programming patterns to reveal self-regulated learning, computational thinking, and learning performance. Computers in Human Behavior, 120. doi:https://doi.org/10.1016/j.chb.2021.106746.

  • Watson, C., & Li, F. W. (2014, June). Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education (pp. 39–44).

  • Wang, W., Kwatra, A., Skripchuk, J., Gomes, N., Milliken, A., Martens, C., et al. (2021). Novices’ Learning Barriers When Using Code Examples in Open-Ended Programming. arXiv preprint arXiv:2104.11806

  • Younis, A. A., Sunderraman, R., Metzler, M., & Bourgeois, A. G. (2021). Developing parallel programming and soft skills: A project based learning approach. Journal of Parallel and Distributed Computing, 158, 151–163

    Article  Google Scholar 

Download references

Funding

This study was funded by the National Natural Science Foundation of China (Grant Number 61977031).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Xinyao Zeng.

Ethics declarations

Conflict of interest

None.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zhang, W., Zeng, X., Wang, J. et al. An analysis of learners’ programming skills through data mining. Educ Inf Technol 27, 11615–11633 (2022). https://doi.org/10.1007/s10639-022-11079-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10639-022-11079-4

Keywords

Navigation