Cargando…

PVC.js: visualizing C programs on web browsers for novices

Many researchers have proposed program visualization tools for memory management. Examples include state-of-the-art tools for C languages such as SeeC and Python Tutor (PT). However, three problems hinder the use of these and other tools: capability (P1), installability (P2), and usability (P3). (P1...

Descripción completa

Detalles Bibliográficos
Autores principales: Ishizue, Ryosuke, Sakamoto, Kazunori, Washizaki, Hironori, Fukazawa, Yoshiaki
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Elsevier 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7182681/
https://www.ncbi.nlm.nih.gov/pubmed/32346639
http://dx.doi.org/10.1016/j.heliyon.2020.e03806
_version_ 1783526277057085440
author Ishizue, Ryosuke
Sakamoto, Kazunori
Washizaki, Hironori
Fukazawa, Yoshiaki
author_facet Ishizue, Ryosuke
Sakamoto, Kazunori
Washizaki, Hironori
Fukazawa, Yoshiaki
author_sort Ishizue, Ryosuke
collection PubMed
description Many researchers have proposed program visualization tools for memory management. Examples include state-of-the-art tools for C languages such as SeeC and Python Tutor (PT). However, three problems hinder the use of these and other tools: capability (P1), installability (P2), and usability (P3). (P1) Tools do not fully support dynamic memory allocation or File Input / Output (I/O) and Standard Input. (P2) Novice programmers often have difficulty installing SeeC due to its dependence on Clang and setting up an offline environment that uses PT. (P3) Revisualization of the modified source code in SeeC requires several steps. To alleviate these issues, we propose a new visualization tool called PlayVisualizerC.js (PVC.js). PVC.js, which is designed for novice C language programmers to provide solutions (S1–3) for P1–3. S1 offers complete support for dynamic memory allocation, standard I/O, and file I/O. S2 involves installation in a user web browser. This system is composed of JavaScript programs, including C language execution functions. S3 reduces the steps required for revisualization. To evaluate PVC.js, we conducted two experiments. The first experiment found that students using PVC solved a set of four programming tasks on average 1.7—times faster and with 19% more correct answers than those using SeeC. The second experiment found that PVC.js has a visualization performance equivalent to PT, and that PVC.js is more effective than existing general debugging tools for novices to understand programs in cases where the values of important variables change and the control flow is complicated.
format Online
Article
Text
id pubmed-7182681
institution National Center for Biotechnology Information
language English
publishDate 2020
publisher Elsevier
record_format MEDLINE/PubMed
spelling pubmed-71826812020-04-28 PVC.js: visualizing C programs on web browsers for novices Ishizue, Ryosuke Sakamoto, Kazunori Washizaki, Hironori Fukazawa, Yoshiaki Heliyon Article Many researchers have proposed program visualization tools for memory management. Examples include state-of-the-art tools for C languages such as SeeC and Python Tutor (PT). However, three problems hinder the use of these and other tools: capability (P1), installability (P2), and usability (P3). (P1) Tools do not fully support dynamic memory allocation or File Input / Output (I/O) and Standard Input. (P2) Novice programmers often have difficulty installing SeeC due to its dependence on Clang and setting up an offline environment that uses PT. (P3) Revisualization of the modified source code in SeeC requires several steps. To alleviate these issues, we propose a new visualization tool called PlayVisualizerC.js (PVC.js). PVC.js, which is designed for novice C language programmers to provide solutions (S1–3) for P1–3. S1 offers complete support for dynamic memory allocation, standard I/O, and file I/O. S2 involves installation in a user web browser. This system is composed of JavaScript programs, including C language execution functions. S3 reduces the steps required for revisualization. To evaluate PVC.js, we conducted two experiments. The first experiment found that students using PVC solved a set of four programming tasks on average 1.7—times faster and with 19% more correct answers than those using SeeC. The second experiment found that PVC.js has a visualization performance equivalent to PT, and that PVC.js is more effective than existing general debugging tools for novices to understand programs in cases where the values of important variables change and the control flow is complicated. Elsevier 2020-04-23 /pmc/articles/PMC7182681/ /pubmed/32346639 http://dx.doi.org/10.1016/j.heliyon.2020.e03806 Text en © 2020 The Authors http://creativecommons.org/licenses/by/4.0/ This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).
spellingShingle Article
Ishizue, Ryosuke
Sakamoto, Kazunori
Washizaki, Hironori
Fukazawa, Yoshiaki
PVC.js: visualizing C programs on web browsers for novices
title PVC.js: visualizing C programs on web browsers for novices
title_full PVC.js: visualizing C programs on web browsers for novices
title_fullStr PVC.js: visualizing C programs on web browsers for novices
title_full_unstemmed PVC.js: visualizing C programs on web browsers for novices
title_short PVC.js: visualizing C programs on web browsers for novices
title_sort pvc.js: visualizing c programs on web browsers for novices
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7182681/
https://www.ncbi.nlm.nih.gov/pubmed/32346639
http://dx.doi.org/10.1016/j.heliyon.2020.e03806
work_keys_str_mv AT ishizueryosuke pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT sakamotokazunori pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT washizakihironori pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT fukazawayoshiaki pvcjsvisualizingcprogramsonwebbrowsersfornovices