Eye: Program Visualizer for CS2
- URL: http://arxiv.org/abs/2101.12089v1
- Date: Thu, 28 Jan 2021 16:16:59 GMT
- Title: Eye: Program Visualizer for CS2
- Authors: Aman Bansal, Preey Shah, and Sahil Shah
- Abstract summary: Eye is an interactive tool that visualizes a program's execution as it runs.
It demonstrates properties and usage of data structures in a general environment.
Eye opens up a gateway for CS2 students to more easily understand myriads of programs that are available on online programming websites.
- Score: 1.319058156672392
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: In recent years, programming has witnessed a shift towards using standard
libraries as a black box. However, there has not been a synchronous development
of tools that can help demonstrate the working of such libraries in general
programs, which poses an impediment to improved learning outcomes and makes
debugging exasperating. We introduce Eye, an interactive pedagogical tool that
visualizes a program's execution as it runs. It demonstrates properties and
usage of data structures in a general environment, thereby helping in learning,
logical debugging, and code comprehension. Eye provides a comprehensive
overview at each stage during run time including the execution stack and the
state of data structures. The modular implementation allows for extension to
other languages and modification of the graphics as desired.
Eye opens up a gateway for CS2 students to more easily understand myriads of
programs that are available on online programming websites, lowering the
barrier towards self-learning of coding. It expands the scope of visualizing
data structures from standard algorithms to general cases, benefiting both
teachers as well as programmers who face issues in debugging. Line by line
interpreting allows Eye to describe the execution and not only the current
state. We also conduct experiments to evaluate the efficacy of Eye for
debugging and comprehending a new piece of code. Our findings show that it
becomes faster and less frustrating to debug certain problems using this tool,
and also makes understanding new code a much more pleasant experience.
Related papers
- A Proposal for a Debugging Learning Support Environment for Undergraduate Students Majoring in Computer Science [0.0]
Students do not know how to use a debugger or have never used one.
We implemented a function in Scratch that allows for self-learning of correct breakpoint placement.
arXiv Detail & Related papers (2024-07-25T03:34:19Z) - VDebugger: Harnessing Execution Feedback for Debugging Visual Programs [103.61860743476933]
We introduce V Debugger, a critic-refiner framework trained to localize and debug visual programs by tracking execution step by step.
V Debugger identifies and corrects program errors leveraging detailed execution feedback, improving interpretability and accuracy.
Evaluations on six datasets demonstrate V Debugger's effectiveness, showing performance improvements of up to 3.2% in downstream task accuracy.
arXiv Detail & Related papers (2024-06-19T11:09:16Z) - Code Compass: A Study on the Challenges of Navigating Unfamiliar Codebases [2.808331566391181]
We propose a novel tool, Code, to address these issues.
Our study highlights a significant gap in current tools and methodologies.
Our formative study demonstrates how effectively the tool reduces the time developers spend navigating documentation.
arXiv Detail & Related papers (2024-05-10T06:58:31Z) - NExT: Teaching Large Language Models to Reason about Code Execution [50.93581376646064]
Large language models (LLMs) of code are typically trained on the surface textual form of programs.
We propose NExT, a method to teach LLMs to inspect the execution traces of programs and reason about their run-time behavior.
arXiv Detail & Related papers (2024-04-23T01:46:32Z) - The Visual Debugger Tool [1.0624606551524207]
Our tool visualizes program execution information graphically as an object diagram.
Our tool is fully integrated into the popular Java development environment IntelliJ IDEA.
arXiv Detail & Related papers (2024-04-19T15:02:29Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL) is a method for learning a library of reusable functions via codeization.
We find that the shared function libraries discovered by ReGAL make programs easier to predict across diverse domains.
For CodeLlama-13B, ReGAL results in absolute accuracy increases of 11.5% on LOGO, 26.1% on date understanding, and 8.1% on TextCraft, outperforming GPT-3.5 in two of three domains.
arXiv Detail & Related papers (2024-01-29T18:45:30Z) - ControlLLM: Augment Language Models with Tools by Searching on Graphs [97.62758830255002]
We present ControlLLM, a novel framework that enables large language models (LLMs) to utilize multi-modal tools for solving real-world tasks.
Our framework comprises three key components: (1) a textittask decomposer that breaks down a complex task into clear subtasks with well-defined inputs and outputs; (2) a textitThoughts-on-Graph (ToG) paradigm that searches the optimal solution path on a pre-built tool graph; and (3) an textitexecution engine with a rich toolbox that interprets the solution path and runs the
arXiv Detail & Related papers (2023-10-26T21:57:21Z) - Collaborative, Code-Proximal Dynamic Software Visualization within Code
Editors [55.57032418885258]
This paper introduces the design and proof-of-concept implementation for a software visualization approach that can be embedded into code editors.
Our contribution differs from related work in that we use dynamic analysis of a software system's runtime behavior.
Our visualization approach enhances common remote pair programming tools and is collaboratively usable by employing shared code cities.
arXiv Detail & Related papers (2023-08-30T06:35:40Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
Self-supervised pre-training has gained traction for learning generic code representations valuable for many downstream SE tasks.
We argue that it is also essential to factor in how developers code day-to-day for general-purpose representation learning.
In particular, we propose CONCORD, a self-supervised, contrastive learning strategy to place benign clones closer in the representation space while moving deviants further apart.
arXiv Detail & Related papers (2023-06-05T20:39:08Z) - Learning to Extend Program Graphs to Work-in-Progress Code [31.235862838381966]
We extend the notion of program graphs to work-in-progress code by learning to predict edge relations between tokens.
We consider the tasks of code completion and localizing and repairing variable misuse in a work-in-process scenario.
We demonstrate that training relation-aware models with fine-tuned edges consistently leads to improved performance on both tasks.
arXiv Detail & Related papers (2021-05-28T18:12:22Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.