PVC.js

PVC.js visualizes C program execution to illustrate dynamic memory allocation, input/output operations, and variable and control-flow changes for program comprehension and instruction.


Key Features:

  • Dynamic Memory Allocation Support: Full support for dynamic memory allocation in C programs, enabling visualization of heap allocations and deallocations.
  • Comprehensive I/O Handling: Visualization of both standard input/output and file input/output operations to represent program I/O behavior.
  • Variable and Control-Flow Visualization: Tracking and depiction of complex variable changes and control-flow transitions during execution.
  • Revisualization of Modified Source Code: Support for revisualizing modified source code with a reduced number of steps to reflect code changes in subsequent visualizations.

Scientific Applications:

  • Teaching C Programming: Use in instructional settings to demonstrate dynamic memory, I/O, and execution flow to learners.
  • Program Comprehension for Novices: Aid novice programmers in understanding variable behavior and control-flow in C programs.
  • Comparative Evaluation of Visualization Methods: Serve as a subject for empirical comparisons of program-visualization effectiveness.

Methodology:

Two experiments compared PVC.js to alternative tools: Experiment 1 measured student task performance showing PVC.js users solved tasks 1.7 times faster and with 19% higher accuracy than SeeC; Experiment 2 found visualization performance comparable to Python Tutor (PT) and more effective than general debugging tools for helping novices understand complex variable changes and control flows.

Topics

Details

Programming Languages:
JavaScript, Python, C
Added:
1/18/2021
Last Updated:
1/30/2021

Operations

Publications

Ishizue R, Sakamoto K, Washizaki H, Fukazawa Y. PVC.js: visualizing C programs on web browsers for novices. Heliyon. 2020;6(4):e03806. doi:10.1016/j.heliyon.2020.e03806. PMID:32346639. PMCID:PMC7182681.

PMID: 32346639
PMCID: PMC7182681
Funding: - Japan Science and Technology Agency: JPMJPR14D4