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

Keywords

CeliotM
Data structures Visualizations
MTL
Learning Programming

How to Cite

[1]
A. B. Mtaho, M. M. Masoud, and L. J. Mselle, “DEVELOPING A CELIOTM PROGRAMMING LEARNING TOOL TO FACILIATE TEACHING AND LEARNING DATA STRUCTURE CONCEPTS IN C++ FOR NOVICE PROGRAMMERS”, ITLT, vol. 101, no. 3, pp. 42–70, Jun. 2024, doi: 10.33407/itlt.v101i3.5567.

Abstract

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.

PDF

References

S. Dehnadi and R. Bornat, “The camel has two humps (working title),” Middlesex Univ. UK, pp. 1–21, 2006.

L. Layman, Y. Song, and C. Guinn, “Toward Predicting Success and Failure in CS2: A Mixed-Method Analysis,” ACMSE 2020 - Proc. 2020 ACM Southeast Conf., no. 1, pp. 218–225, 2020, doi: 10.1145/3374135.3385277.

E. Fouh, M. Akbar, C. A. Shaffer, and V. Tech, “The Role of Visualization in Computer Science Education,” 2012.

B. Park and D. T. Ahmed, “Abstracting Learning Methods for Stack and Queue Data Structures in Video Games,” 2017 Int. Conf. Comput. Sci. Comput. Intell., pp. 1051–1054, 2017, doi: 10.1109/CSCI.2017.183.

J. Danielsiek, Holger, Paul, Wolfgang, Vahrenhod, “Detecting and Understanding Students ’ Misconceptions,” pp. 21–26, 2012.

T. L. Naps et al., “Exploring the Role of Visualization and Engagement in Computer Science Education Report of the Working Group on " Improving the Educational Impact of Algorithm Visualization ",” Acm, vol. 35, no. 2, pp. 131–152, 2002.

M. Mladenovi and M. Agli, “The impact of using program visualization techniques on learning basic programming concepts at the K – 12 level,” no. July, 2020, doi: 10.1002/cae.22315.

C. D. Hundhausen, S. A. Douglas, and J. T. Stasko, “A meta-study of algorithm visualization effectiveness,” J. Vis. Lang. Comput., vol. 13, no. 3, pp. 259–290, 2002, doi: 10.1006/jvlc.2002.0237.

K. Romanowska, G. Singh, M. A. A. Dewan, and F. Lin, “Towards Developing an Effective Algorithm Visualization Tool for Online Learning,” 2018 IEEE SmartWorld, Ubiquitous Intell. Comput. Adv. Trust. Comput. Scalable Comput. Commun. Cloud Big Data Comput. Internet People Smart City Innov., no. March 2020, pp. 2011–2016, 2018, doi: 10.1109/SmartWorld.2018.00336.

E. Vagianou, “Program Working Storage : A Beginner ’ s Model,” pp. 69–76, 2006.

P. Bellstrom and C. Thoren, “Learning how to program through visualization: A pilot study on the bubble sort algorithm,” in 2009 Second International Conference on the Applications of Digital Information and Web Technologies, 2009, pp. 90–94.

E. Isohanni, Visualizations in Learning Programming Building a Theory of Student Engagement, no. November. 2013.

M. Masoud, “Combining Memory Transfer Language ( Mtl ) and Jeliot 3 To Evolve a Visual Language for Teaching and Learning Programming,” PhD, Thesis. The University of Dodoma, 2015.

P. Dewan, “Discovery-based Praxes : Channelling the User- Interface of an Industrial-Strength Programming Environment to Formally Teach Programming,” pp. 341–342, 2017.

A. Moreno and N. Myller, “Producing an educationally effective and usable tool for learning, the case of the jeliot family,” 2003.

W. I. Osman and M. M. Elmusharaf, “Effectiveness of Combining Algorithm and Program Animation : A Case Study with Data Structure Course,” vol. 11, pp. 155–168, 2014.

E. Elvina, O. Karnalim, M. Ayub, and M. C. Wijanto, “Combining program visualization with programming workspace to assist students for completing programming laboratory task,” J. Technol. Sci. Educ., vol. 8, no. 4, pp. 268–280, 2018, doi: 10.3926/jotse.420.

M. S. Joy, “Jeliot 3 in a Demanding Educational Setting,” vol. 178, pp. 51–59, 2007, doi: 10.1016/j.entcs.2007.01.033.

L. Mselle, “Formalization of memory transfer language with C, C++ and java on the mold of register transfer language,” ICISA 2014 - 2014 5th Int. Conf. Inf. Sci. Appl., pp. 0–3, 2014, doi: 10.1109/ICISA.2014.6847404.

J. Sorva, V. Karavirta, and L. Malmi, “A Review of Generic Program Visualization Systems for Introductory,” vol. 13, no. 4, 2013.

J. Sorva, V. Karavirta, and L. Malmi, “A review of generic program visualization systems for introductory programming education,” ACM Trans. Comput. Educ., vol. 13, no. 4, 2013, doi: 10.1145/2490822.

R. A. Nathasya, O. Karnalim, and M. Ayub, “Integrating program and algorithm visualisation for learning data structure implementation Integrating program and algorithm visualisation for learning data structure implementation,” Egypt. Informatics J., no. November, 2019, doi: 10.1016/j.eij.2019.05.001.

I. Sommerville, Ninth Edition. Pearson, 2011.

I. Sommerville, Ninth Edition, Ninth Edit. Boston: Addison-Wesley, 2011.

T. Naps et al., “Evaluating the Educational Impact of Visualization,” 2003.

N. Myller, “The Fundamental Design Issues of Jeliot 3,” 2004.

A. Moreno, N. Myller, and E. Sutinen, “Visualizing Programs with Jeliot 3,” 2004.

M. M. Mtaho Adam., Mselle Leornard., “Effectiveness of Using a Congruent Visualization Framework on Learning a Data Structures Course,” Educ. Pedagog. J., vol. 6, no. 2, pp. 60–72, 2023.

A. B. Mtaho, “Effects of using problem-solving guide and explanatory support in program visualization tool on reducing students’ misconceptions in learning data structure concepts,” Bull. Soc. Informatics Theory Appl., vol. 7, no. 2, pp. 125–140, 2023.

A. B. Mtaho, “The Impact of Combining Follow-Up Questions and Worked Examples In Program Visualization Tool on Improving Students ’ Held Mental Models of Pointers ’ Value and Address assignment,” 2022, doi: 10.23951/2782-2575-2022-2-53-64.

A. Moreno, Animation Re-designing Program Animation, no. 149. University of Eastern Finland, 2014.

N. J. Coull, “SNOOPIE : Development of a Learning Support Tool for Novice Programmers within a Conceptual Framework,” University of St Andrews, 2008.

J. H. C. Ii, D. Hendrix, and D. A. Umphress, “jGRASP : An Integrated Development Environment with Visualizations for Teaching Java in CS1 , CS2 , and Beyond,” pp. 3–4, 2004.

E. Isohanni, “Visualizations in Learning Programming Building a Theory of Student Engagement,” Tampere Univ. Technol., 2013.

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Copyright (c) 2024 Adam B. Mtaho, Masoud M. Masoud, Leonard J. Mselle

Downloads

Download data is not yet available.