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...
Main Authors: | , , |
---|---|
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 |