-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
program visualization first draft #12
base: trunk
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
@inproceedings{brown1991zeus, | ||
title={Zeus: A system for algorithm animation and multi-view editing}, | ||
author={Brown, Marc H}, | ||
booktitle={Proceedings 1991 IEEE Workshop on Visual Languages}, | ||
pages={4--9}, | ||
year={1991}, | ||
organization={IEEE} | ||
} | ||
|
||
@article{stasko1993methodology, | ||
title={A methodology for building application-specific visualizations of parallel programs}, | ||
author={Stasko, John T and Kraemer, Eileen}, | ||
journal={Journal of parallel and distributed computing}, | ||
volume={18}, | ||
number={2}, | ||
pages={258--264}, | ||
year={1993}, | ||
publisher={Elsevier} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,5 +19,29 @@ API Usability | |
Program Comprehension | ||
===================== | ||
|
||
Algorithm Animation | ||
------------------- | ||
|
||
**Algorithm animation** is a powerful approach for exploring a program's behavior. Equipped with different techniques, it has been used with success in teaching computer science courses, designing and analyzing algorithms, producing technical drawings, tuning performance, and documenting programs. | ||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: language-usability.bib | ||
:filter: key == "brown1991zeus" | ||
|
||
This paper presents a system for algorithm animation, *Zeus*. To a programmer, *Zeus* can be viewed as a domain-independent framework for associating multiple clien-defined views with a set of client-defined events, generated by a client program called the algorithm. According to the author, constructing animations in *Zeus* appears to be easy and straightforward. The concept of Objects make it easy to reuse views, and to build sophisticated views by composing and subclassing other views. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: language-usability.bib | ||
:filter: key == "stasko1993methodology" | ||
|
||
An **application-specific** view illustrates the semantics of a program, its fundamental methodologies, and its inherent application domain. The paper discusses why **application-specific** views are necessary for parallel program debugging and several requirements and challenges for such a system. Also, an animation methodology called POLKA is developed to show **application-specific** views help programmers rapidly assess the programs' correctness. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
Domain-Specific Languages | ||
========================= | ||
|
||
.. container:: hidden | ||
|
||
:cite:`brown1991zeus` | ||
:cite:`stasko1993methodology` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
@article{price1993principled, | ||
title={A principled taxonomy of software visualization}, | ||
author={Price, Blaine A and Baecker, Ronald M and Small, Ian S}, | ||
journal={Journal of Visual Languages \& Computing}, | ||
volume={4}, | ||
number={3}, | ||
pages={211--266}, | ||
year={1993}, | ||
publisher={Elsevier} | ||
} | ||
|
||
@article{sorva2013review, | ||
title={A review of generic program visualization systems for introductory programming education}, | ||
author={Sorva, Juha and Karavirta, Ville and Malmi, Lauri}, | ||
journal={ACM Transactions on Computing Education (TOCE)}, | ||
volume={13}, | ||
number={4}, | ||
pages={15}, | ||
year={2013}, | ||
publisher={ACM} | ||
} | ||
|
||
@inproceedings{maletic2002task, | ||
title={A task oriented view of software visualization}, | ||
author={Maletic, Jonathan I and Marcus, Andrian and Collard, Michael L}, | ||
booktitle={Proceedings First International Workshop on Visualizing Software for Understanding and Analysis}, | ||
pages={32--40}, | ||
year={2002}, | ||
organization={IEEE} | ||
} | ||
|
||
@inproceedings{murphy2010interactive, | ||
title={An interactive ambient visualization for code smells}, | ||
author={Murphy-Hill, Emerson and Black, Andrew P}, | ||
booktitle={Proceedings of the 5th international symposium on Software visualization}, | ||
pages={5--14}, | ||
year={2010}, | ||
organization={ACM} | ||
} | ||
|
||
@inproceedings{reiss2005paradox, | ||
title={The paradox of software visualization}, | ||
author={Reiss, Steven P}, | ||
booktitle={3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis}, | ||
pages={1--5}, | ||
year={2005}, | ||
organization={IEEE} | ||
} | ||
|
||
@incollection{de2002visualizing, | ||
title={Visualizing the execution of Java programs}, | ||
author={De Pauw, Wim and Jensen, Erik and Mitchell, Nick and Sevitsky, Gary and Vlissides, John and Yang, Jeaha}, | ||
booktitle={Software Visualization}, | ||
pages={151--162}, | ||
year={2002}, | ||
publisher={Springer} | ||
} | ||
|
||
@inproceedings{goodall2010visual, | ||
title={Visual analysis of code security}, | ||
author={Goodall, John R and Radwan, Hassan and Halseth, Lenny}, | ||
booktitle={Proceedings of the seventh international symposium on visualization for cyber security}, | ||
pages={46--51}, | ||
year={2010}, | ||
organization={ACM} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,6 +26,64 @@ Interactive Debuggers | |
Program Visualization | ||
--------------------- | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's move all of the Program Visualization stuff here into the Program Comprehension chapter, instead of splitting it like this. If there is a "live" program visualization system, i.e. one that keeps visualizations updated during the editing process, then you can include a section here called "Live Program Visualization" to specifically mention that. However, the examples below seem to all be standard program visualization tools that are not deeply integrated into editing. |
||
|
||
**Program visualization** is the use of various techniques to enhance the human understanding of computer programs from distinct aspects including the structure of the source code and run-time behavior. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
There are **program visualization** systems designed to aid significantly the practice of professional programming and software engineering as well as the learning of computer science by novice programmers. And it turns out that **program visualization** doesn't have to deal with toy programs, e.g., `Frappe - Visualizing Code Dependency Graphs <https://softvis.wordpress.com/2018/08/31/frappe-visualizing-code-dependency-graphs/>`_. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "price1993principled" | ||
|
||
Note that **program visualization** is different from **software visualization** in that the latter includes the visualization of a high-level description of algorithm or a piece of software which is in contrast to **program visualization** where actual implemented code is visualized. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This note should be in the introduction of this section, rather than as the summary of this paper. What was this paper specifically about? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is really a long paper going over dozens of software visualization systems and try to categorize them along the dimension described in the paper. And it also mentions some historical stuff and limitation of software visualization as well. I think most part of this paper is actually overlapping some other papers in some way(e.g. this paper spends a lot of time describing dimensions, but in a more detailed way than There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Rename the top level section to "Software Visualization", cite this paper first, then have a sub-section for Program VIsualization |
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "maletic2002task" | ||
|
||
This paper defines five dimensions, Tasks, Audience, Target, Representation and Medium to describe several software visualization systems that have very different features along those defined dimensions. By realigning taxonomies with the perspective of current software engineering problems, open research issues are identified. Additionally, the paper identifies the strengths of individual tools and the techniques they apply. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "sorva2013review" | ||
|
||
This paper serves as a survey of program visualization systems whose **task** is to aid the learning and teaching of introductory programming, with an intended **audience** of novice programmers and *CS1* teachers. Even a visualization that has been painstakingly crafted to be as lucid as possible may fail to aid learning in practice. Therefore, the paper introduces a new taxonomy to describe how program visualization systems engage learners. | ||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "murphy2010interactive" | ||
|
||
**Code smells** are characteristics of software that indicate that code may have a design problem. The paper propose a novel smell detector, Stench Blossom, that provides an iteractive ambient visualization designed to first give programmers a quick, high-level overview of the smells, and then to help in understanding the smells if users wish. As a result, the experiment confirmed that programmers identify more smells and make more confident and informed refactoring jedgements using the tool than not using the tool. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. good! |
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "reiss2005paradox" | ||
|
||
This paper argues that most past and current work in the field is out of touch with the reality of software development and that new approaches and new ideas are needed. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, is there some more specific insight that this paper has? This is very vague. |
||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "de2002visualizing" | ||
|
||
Jinsight is a tool for exploring a Java program's runtime behavior visually, featuring a collection of linked views. | ||
|
||
- a basic visualization of resource consumption in terms of classes, instances, and methods | ||
- a reference pattern view with extraneous detail eliminated that could detect memory leak | ||
- a performance analysis by visualizing event sequences | ||
|
||
With Jinsight, users have successfully diagnosed numerous problems on large commercial applications. However, the visualization is specialized for particular tasks and the visualized application could only run on a single *JVM*. | ||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: live-programming.bib | ||
:filter: key == "goodall2010visual" | ||
|
||
This paper describes a system that brings together the results of disparate software analysis tools into a visual environment to support the triage and exploration of code vulnerabilities. The system could give more confidence that the detected vulnerabilities are not false positive by correlates and normalizes the output of multiple software analysis tools. And the user may also wish to associate the vulnerability with the programmer who regularly checks in the code with vulnerabilities or the main developer that modifiers more code than anyone else. This workflow allows the system to scale to large code bases with tens of thousands of vulnerabilities. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
Programming by Demonstration | ||
============================ | ||
|
@@ -47,3 +105,12 @@ TODO: in music | |
Programmable Physical Environments | ||
================================== | ||
|
||
.. container:: hidden | ||
|
||
:cite:`price1993principled` | ||
:cite:`maletic2002task` | ||
:cite:`sorva2013review` | ||
:cite:`murphy2010interactive` | ||
:cite:`reiss2005paradox` | ||
:cite:`de2002visualizing` | ||
:cite:`goodall2010visual` |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -190,6 +190,12 @@ Customizable Notation | |
|
||
Cite Schwerdfeger and Van Wyk | ||
|
||
.. container:: bib-item | ||
|
||
.. bibliography:: notation2.bib | ||
:filter: key == "brown1992color" | ||
|
||
This paper focuses on the use of color and sound in **algorithm animation** systems. Color has been used in *Zeus*, a system for algorithm animation and multi-view editing, for the purpose of encoding the state of data structures, typing views together, highlighting activity, emphasizing patterns, and making history visible. Besides, the postive preliminary experiences using sound in *Zeus* show that sound will be a powerful technique for communicating information. See :ref:`language-usability:Algorithm Animation` for more details. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
.. container:: hidden | ||
|
||
|
@@ -203,4 +209,5 @@ Customizable Notation | |
:cite:`petre2006cognitive` | ||
:cite:`hughes95` | ||
:cite:`wadler2003prettier` | ||
:cite:`bernardy17` | ||
:cite:`bernardy17` | ||
:cite:`brown1992color` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.