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...

Full description

Bibliographic Details
Main Authors: Ryosuke Ishizue, Kazunori Sakamoto, Hironori Washizaki, Yoshiaki Fukazawa
Format: Article
Language:English
Published: Elsevier 2020-04-01
Series:Heliyon
Subjects:
Online Access:http://www.sciencedirect.com/science/article/pii/S2405844020306514
id doaj-a6171658f34248c788a999245c48254f
record_format Article
spelling doaj-a6171658f34248c788a999245c48254f2020-11-25T03:01:15ZengElsevierHeliyon2405-84402020-04-0164e03806PVC.js: visualizing C programs on web browsers for novicesRyosuke Ishizue0Kazunori Sakamoto1Hironori Washizaki2Yoshiaki Fukazawa3Department of Science and Engineering, Waseda University, Tokyo, Japan; Corresponding author.Department of Science and Engineering, Waseda University, Tokyo, Japan; National Institute of Informatics, Tokyo, Japan; WillBooster Inc., Tokyo, JapanDepartment of Science and Engineering, Waseda University, Tokyo, Japan; National Institute of Informatics, Tokyo, Japan; SYSTEM INFORMATION CO.,LTD., Tokyo, Japan; eXmotion Co., Ltd., Tokyo, JapanDepartment of Science and Engineering, Waseda University, Tokyo, JapanMany 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.http://www.sciencedirect.com/science/article/pii/S2405844020306514ScienceC languageBrowser applicationVisualization
collection DOAJ
language English
format Article
sources DOAJ
author Ryosuke Ishizue
Kazunori Sakamoto
Hironori Washizaki
Yoshiaki Fukazawa
spellingShingle Ryosuke Ishizue
Kazunori Sakamoto
Hironori Washizaki
Yoshiaki Fukazawa
PVC.js: visualizing C programs on web browsers for novices
Heliyon
Science
C language
Browser application
Visualization
author_facet Ryosuke Ishizue
Kazunori Sakamoto
Hironori Washizaki
Yoshiaki Fukazawa
author_sort Ryosuke Ishizue
title PVC.js: visualizing C programs on web browsers for novices
title_short 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_sort pvc.js: visualizing c programs on web browsers for novices
publisher Elsevier
series Heliyon
issn 2405-8440
publishDate 2020-04-01
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.
topic Science
C language
Browser application
Visualization
url http://www.sciencedirect.com/science/article/pii/S2405844020306514
work_keys_str_mv AT ryosukeishizue pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT kazunorisakamoto pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT hironoriwashizaki pvcjsvisualizingcprogramsonwebbrowsersfornovices
AT yoshiakifukazawa pvcjsvisualizingcprogramsonwebbrowsersfornovices
_version_ 1724694201521668096