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.