Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps

Due to the everchanging and evergrowing nature of programming technologies, the gap between the programming industry’s needs and the educational capabilities of both formal and informal educational environments has never been wider. However, the need to learn computer programming has never been grea...

Full description

Bibliographic Details
Main Authors: Marko Jevtić, Saša Mladenović, Andrina Granić
Format: Article
Language:English
Published: MDPI AG 2023-05-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/13/9/5719
_version_ 1797602904869175296
author Marko Jevtić
Saša Mladenović
Andrina Granić
author_facet Marko Jevtić
Saša Mladenović
Andrina Granić
author_sort Marko Jevtić
collection DOAJ
description Due to the everchanging and evergrowing nature of programming technologies, the gap between the programming industry’s needs and the educational capabilities of both formal and informal educational environments has never been wider. However, the need to learn computer programming has never been greater, regardless of the motivation behind it. The number of programming concepts to be taught is increasing over time, while the amount of time available for education and training usually remains the same. The objective of this research was to analyze the source codes used in many educational systems to teach fundamental programming concepts to learners, regardless of their prior experience in programming. A total of 25 repositories containing 3882 Python modules were collected for the analysis. Through self-organization of the collected content, we obtained very compelling results about code structure, distribution, and differences. Based on those results, we concluded that Self-Organizing Maps are a powerful tool for both content and knowledge management, because they can highlight problems in the curriculum’s density as well as transparently indicate which programming concepts it has successfully observed and learned to recognize. Based on the level of transparency exhibited by Self-Organizing Maps, it is safe to say that they could be used in future research to enhance both human and machine learning of computer programming. By achieving this level of transparency, such an Artificial Intelligence system would be able to assist in overall computer programming education by communicating what should be taught, what needs to be learned, and what is known.
first_indexed 2024-03-11T04:23:05Z
format Article
id doaj.art-47b506ce88f64bb9b5c8e1de4c0073a1
institution Directory Open Access Journal
issn 2076-3417
language English
last_indexed 2024-03-11T04:23:05Z
publishDate 2023-05-01
publisher MDPI AG
record_format Article
series Applied Sciences
spelling doaj.art-47b506ce88f64bb9b5c8e1de4c0073a12023-11-17T22:37:52ZengMDPI AGApplied Sciences2076-34172023-05-01139571910.3390/app13095719Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing MapsMarko Jevtić0Saša Mladenović1Andrina Granić2Faculty of Science, University of Split, Ulica Ruđera Boškovića 33, 21000 Split, CroatiaFaculty of Science, University of Split, Ulica Ruđera Boškovića 33, 21000 Split, CroatiaFaculty of Science, University of Split, Ulica Ruđera Boškovića 33, 21000 Split, CroatiaDue to the everchanging and evergrowing nature of programming technologies, the gap between the programming industry’s needs and the educational capabilities of both formal and informal educational environments has never been wider. However, the need to learn computer programming has never been greater, regardless of the motivation behind it. The number of programming concepts to be taught is increasing over time, while the amount of time available for education and training usually remains the same. The objective of this research was to analyze the source codes used in many educational systems to teach fundamental programming concepts to learners, regardless of their prior experience in programming. A total of 25 repositories containing 3882 Python modules were collected for the analysis. Through self-organization of the collected content, we obtained very compelling results about code structure, distribution, and differences. Based on those results, we concluded that Self-Organizing Maps are a powerful tool for both content and knowledge management, because they can highlight problems in the curriculum’s density as well as transparently indicate which programming concepts it has successfully observed and learned to recognize. Based on the level of transparency exhibited by Self-Organizing Maps, it is safe to say that they could be used in future research to enhance both human and machine learning of computer programming. By achieving this level of transparency, such an Artificial Intelligence system would be able to assist in overall computer programming education by communicating what should be taught, what needs to be learned, and what is known.https://www.mdpi.com/2076-3417/13/9/5719content managementcomputer programming educationsource code analysisself organizing mapsartificial intelligenceneural networks
spellingShingle Marko Jevtić
Saša Mladenović
Andrina Granić
Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
Applied Sciences
content management
computer programming education
source code analysis
self organizing maps
artificial intelligence
neural networks
title Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
title_full Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
title_fullStr Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
title_full_unstemmed Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
title_short Source Code Analysis in Programming Education: Evaluating Learning Content with Self-Organizing Maps
title_sort source code analysis in programming education evaluating learning content with self organizing maps
topic content management
computer programming education
source code analysis
self organizing maps
artificial intelligence
neural networks
url https://www.mdpi.com/2076-3417/13/9/5719
work_keys_str_mv AT markojevtic sourcecodeanalysisinprogrammingeducationevaluatinglearningcontentwithselforganizingmaps
AT sasamladenovic sourcecodeanalysisinprogrammingeducationevaluatinglearningcontentwithselforganizingmaps
AT andrinagranic sourcecodeanalysisinprogrammingeducationevaluatinglearningcontentwithselforganizingmaps