DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS

Programming is the core skill in computer science (CS) education. It is also a useful course in engineering and science-based courses. However, teaching and learning computer programming has not been an easy task. This is evidenced by the fact that majority of the students face challenges and diffi...

Full description

Saved in:
Bibliographic Details
Main Authors: Adam B. Mtaho, Masoud M. Masoud, Leonard J. Mselle
Format: Article
Language:English
Published: Institute for Digitalisation of Education of the NAES of Ukraine 2024-06-01
Series:Інформаційні технології і засоби навчання
Subjects:
Online Access:https://journal.iitta.gov.ua/index.php/itlt/article/view/5567
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1823863908004265984
author Adam B. Mtaho
Masoud M. Masoud
Leonard J. Mselle
author_facet Adam B. Mtaho
Masoud M. Masoud
Leonard J. Mselle
author_sort Adam B. Mtaho
collection DOAJ
description Programming is the core skill in computer science (CS) education. It is also a useful course in engineering and science-based courses. However, teaching and learning computer programming has not been an easy task. This is evidenced by the fact that majority of the students face challenges and difficulties in understanding programming concepts and how to apply them in real-life scenarios. The situation is worse for the Data Structures and algorithms (DSA) course, an advanced-level programming course that is mandatory for any CS student. The subject is too hard for novices to grasp due to its abstract and dynamic nature.  To address such difficulties, several algorithm visualization (AV) tools have been introduced to help novices understand data structure. However, the pedagogical effectiveness of using such tools has not been successful because they are less engaging for learning DSA. This paper describes how the CeliotM programming learning tool was developed to facilitate learning data structure concepts in C++. The development of CeliotM was achieved by using reuse-oriented software engineering approach. CeliotM was developed by redesigning a Celiot program visualization (PV) tool-a programing learning tool that supporting learning programming in C++. Thus, by using Java as the language, the original version of Celiot was resigned to support compilation and visualization of various data structure elements in Memory Transfer Language (MTL) format; and incorporate several learner engagement features, including the inbuilt C++ compiler and animation explanations. The resulting tool is a CeliotM programming learning tool that visualizes and compiles data structure objects such as queues, stacks, and linked lists in C++ programming language. Empirical results on the evaluation of using CeliotM in teaching data structures and algorithmic concepts reveal that using such tool enhanced students’ programming comprehension and offered a more appealing learning experience for novice programmers. The greatest contribution of this work is to provide an education tool for teaching data structures in C++ that can work as a compiler, program and algorithm visualization tool in tandem. It also contributes a valuable resource to programming education, offering an effective and inspiring approach for novices to grasp fundamental programming and data structure concepts.
format Article
id doaj-art-442fdad9409944a0b098728bd8c2cdde
institution Kabale University
issn 2076-8184
language English
publishDate 2024-06-01
publisher Institute for Digitalisation of Education of the NAES of Ukraine
record_format Article
series Інформаційні технології і засоби навчання
spelling doaj-art-442fdad9409944a0b098728bd8c2cdde2025-02-09T08:37:14ZengInstitute for Digitalisation of Education of the NAES of UkraineІнформаційні технології і засоби навчання2076-81842024-06-01101310.33407/itlt.v101i3.5567DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERSAdam B. Mtaho0https://orcid.org/0000-0002-6997-3332Masoud M. Masoud1Leonard J. Mselle2Arusha Technical College, Arusha, TanzaniaTanzania Industrial Research and Development Organization, Dar es Salaam, TanzaniaUniversity of Dodoma, Dodoma, Tanzania Programming is the core skill in computer science (CS) education. It is also a useful course in engineering and science-based courses. However, teaching and learning computer programming has not been an easy task. This is evidenced by the fact that majority of the students face challenges and difficulties in understanding programming concepts and how to apply them in real-life scenarios. The situation is worse for the Data Structures and algorithms (DSA) course, an advanced-level programming course that is mandatory for any CS student. The subject is too hard for novices to grasp due to its abstract and dynamic nature.  To address such difficulties, several algorithm visualization (AV) tools have been introduced to help novices understand data structure. However, the pedagogical effectiveness of using such tools has not been successful because they are less engaging for learning DSA. This paper describes how the CeliotM programming learning tool was developed to facilitate learning data structure concepts in C++. The development of CeliotM was achieved by using reuse-oriented software engineering approach. CeliotM was developed by redesigning a Celiot program visualization (PV) tool-a programing learning tool that supporting learning programming in C++. Thus, by using Java as the language, the original version of Celiot was resigned to support compilation and visualization of various data structure elements in Memory Transfer Language (MTL) format; and incorporate several learner engagement features, including the inbuilt C++ compiler and animation explanations. The resulting tool is a CeliotM programming learning tool that visualizes and compiles data structure objects such as queues, stacks, and linked lists in C++ programming language. Empirical results on the evaluation of using CeliotM in teaching data structures and algorithmic concepts reveal that using such tool enhanced students’ programming comprehension and offered a more appealing learning experience for novice programmers. The greatest contribution of this work is to provide an education tool for teaching data structures in C++ that can work as a compiler, program and algorithm visualization tool in tandem. It also contributes a valuable resource to programming education, offering an effective and inspiring approach for novices to grasp fundamental programming and data structure concepts. https://journal.iitta.gov.ua/index.php/itlt/article/view/5567CeliotMData structures VisualizationsMTLLearning Programming
spellingShingle Adam B. Mtaho
Masoud M. Masoud
Leonard J. Mselle
DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
Інформаційні технології і засоби навчання
CeliotM
Data structures Visualizations
MTL
Learning Programming
title DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
title_full DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
title_fullStr DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
title_full_unstemmed DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
title_short DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS
title_sort developing a celiotm programming learning tool to faciliate teaching and learning data structure concepts in c for novice programmers
topic CeliotM
Data structures Visualizations
MTL
Learning Programming
url https://journal.iitta.gov.ua/index.php/itlt/article/view/5567
work_keys_str_mv AT adambmtaho developingaceliotmprogramminglearningtooltofaciliateteachingandlearningdatastructureconceptsincfornoviceprogrammers
AT masoudmmasoud developingaceliotmprogramminglearningtooltofaciliateteachingandlearningdatastructureconceptsincfornoviceprogrammers
AT leonardjmselle developingaceliotmprogramminglearningtooltofaciliateteachingandlearningdatastructureconceptsincfornoviceprogrammers