-
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?
Conversation
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.
Looks good overall, see my comments for the second draft.
Also, saw this paper recently and it may be worth including: https://dl.acm.org/citation.cfm?id=2674688
src/language-usability.rst
Outdated
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. |
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.
- Change first sentence to "Algorithm animation techniques aim to communicate the behavior of algorithms through animated visual notation, sometimes together with natural language commentary."
- Remove "Equiped with different techniques, "
src/language-usability.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
- Change "domain-independent" to "general-purpose"
- Typo: "clien-defined" -> "client-defined"
- Change ", generated by a client program called the algorithm" to "emitted while an algorithm executes"
- If there was no rigorous evaluation, it's worth stating that after the "According to the author" bit, e.g. ", but this claim was not rigorously evaluated"
src/language-usability.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
- What does "its fundamental methodologies" mean? What is an "inherent" application domain? Are these phrases from the paper? Consider rephrasing to be more clear about what an "application-specific view" is in the context of this paper.
- How does this relate to Zeus?
- Was this system empirically evaluated? If not, state so explicitly as above.
src/live-programming.rst
Outdated
@@ -26,6 +26,64 @@ Interactive Debuggers | |||
Program Visualization | |||
--------------------- |
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.
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.
src/live-programming.rst
Outdated
@@ -26,6 +26,64 @@ Interactive Debuggers | |||
Program Visualization | |||
--------------------- | |||
|
|||
**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 comment
The reason will be displayed to describe this comment to others. Learn more.
- change "enhance the human understanding of" to "help programmers comprehend"
- change "computer programs from distinct aspects" to "computer programs. Program visualization techniques take into account various sources of information, "
src/notation.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
- This should be in the section about "Secondary Notation"
- What does "typing views together" mean?
- Don't use "Besides" as a transition in technical writing
- Change the sentence to explain how sound was used in the paper (what information did it communicate?)
src/live-programming.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
- Might be worthwhile to bullet point the five dimensions and briefly describe what they mean here.
- What does "realigning taxonomies" mean? Consider rephrasing more clearly / not using jargon
src/live-programming.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
good!
src/live-programming.rst
Outdated
.. 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 comment
The 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.
src/live-programming.rst
Outdated
.. 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 comment
The reason will be displayed to describe this comment to others. Learn more.
- This may not exactly fall under "program visualization", since what is being visualized is the result of a program analysis. However, you can leave it here for now.
- "by correlates and normalizes" -> "by correlating and normalizing"
- "And the user may also wish to " -> "The user can also "
- Not sure I understand "the programmer who regularly checks in the code with vulnerabilities or the main developer that modifiers more code than anyone else"? is it trying to assign "blame" for each vulnerability in some heuristic way? think about a way to describe this more clearly
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.
looks good -- see comments for final draft. grade will be sent by email.
src/language-usability.rst
Outdated
.. bibliography:: language-usability.bib | ||
:filter: key == "price1993principled" | ||
|
||
The paper define **software visualization** as the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction technology to facilitate both the human understanding and effective use of computer software. **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. This paper also gives a detailed "road map" of the work accomplished so far in **software visualization**, by identifying six broad categories of characteristics and by filling in the observed characteristics in each category. |
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.
- "The paper define" -> "This paper defines"
- The sentence on program visualization can be moved to the section on that topic.
- What are the six broad categories of characteristics?
src/language-usability.rst
Outdated
.. bibliography:: language-usability2.bib | ||
:filter: key == "isohanni2014visualization" | ||
|
||
This paper studies by whom, how, why, and why not visualization is used in programming education by conduct a worldwide survey for over 250 teachers of programming. There is a trend that more visualization tools are used by teachers teaching teenagers. The topics where visualizations are used most often are basic programming and data structures. On the other hand, there are other reasons more related to teachers' preference, e.g. "I prefer to create my own visualization" or "I do not believe that visualizations are educationally effective in high-level programming courses". Especially noteworthy is that most often the visualization tool is used by the teacher, not the students, which should be taken into account in the future tool and material design and instructions on their usage. |
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.
Paper summaries should be indented two spaces so that they appear in the right location in the final output.
src/language-usability.rst
Outdated
Algorithm Animation | ||
^^^^^^^^^^^^^^^^^^^ | ||
|
||
**Algorithm animation** techniques aim to communicate the behavior of algorithms through animated visual notation, sometimes together with natural language commentary. It has been used with success in teaching computer science courses, designing and analyzing algorithms, producing technical drawings, tuning performance, and documenting programs. |
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.
Is algorithm animation one form of program visualization? If so, move this section underneath the program visualization section. If not, explain the distinction more clearly.
src/language-usability.rst
Outdated
.. 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 general-purpose framework for associating multiple client-defined views with a set of client-defined events, emitted while an algorithm executes. According to the author, constructing animations in *Zeus* appears to be easy and straightforward. Particularly, the concept of Objects make it easy to reuse views, and to build sophisticated views by composing and subclassing other views. However, those claims were not rigorously evaluated in the paper. |
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.
"the concept of Objects" -> "object-oriented techniques"
src/language-usability.rst
Outdated
.. bibliography:: language-usability.bib | ||
:filter: key == "maletic2002task" | ||
|
||
This paper defines five dimensions to describe several software visualization systems that have very different features along those defined dimensions: |
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.
If this is about software visualization more generally, rather than program visualization, it should be listed in the introduction area.
src/language-usability.rst
Outdated
.. bibliography:: language-usability.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 correlating and normalizing the output of multiple software analysis tools. And also, as for some particular vulnerable code file, the system could figure out which programmer regularly checks in the file or who is the main developer that contribute the most. By choosing either heuristic approach, the user can associate the vulnerability with some programmer. This workflow allows the system to scale to large code bases with tens of thousands of vulnerabilities. However, the paper doesn't evaluate this prototype system at all. |
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.
can you explain more how this counts as a "program visualization" system?
src/language-usability.rst
Outdated
.. bibliography:: language-usability.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. To be successful today or in the future, software visualization needs to address three kinds of reality. |
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.
this is also a general software visualization paper right? if so, move up to intro section
src/language-usability.bib
Outdated
@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}, |
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.
Capitalize "International Symposium"
src/language-usability.bib
Outdated
@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}, |
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.
capitalization
src/language-usability.bib
Outdated
} | ||
|
||
@incollection{de2002visualizing, | ||
title={Visualizing the execution of Java programs}, |
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.
proper nouns in Bibtex titles need to be in curly braces, i.e. {Java}
, so that the capitalization works correctly
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.
great! final grades will be sent via email soon
@@ -27,111 +27,124 @@ Software Visualization | |||
.. bibliography:: language-usability.bib | |||
:filter: key == "price1993principled" | |||
|
|||
The paper define **software visualization** as the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction technology to facilitate both the human understanding and effective use of computer software. **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. This paper also gives a detailed "road map" of the work accomplished so far in **software visualization**, by identifying six broad categories of characteristics and by filling in the observed characteristics in each category. | |||
The paper defines **software visualization** as the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction technology to facilitate both the human understanding and effective use of computer software. This paper also gives a detailed "road map" of the work accomplished so far in **software visualization**, by identifying six broad categories of characteristics and by filling in the observed characteristics in each category. |
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.
One or two sentences introducing the topic in your own words before going into these papers would have been helpful.
* the reality of understanding: Understanding involves design with specific problems that represent task-specific solutions. | ||
|
||
* the reality of software: Today's software are multi-threaded and heterogeneous. | ||
And it turns out that program visualization doesn't have to deal with toy programs. This video introduces a tool called Frappé. Code dependency of the codebase would be represented by a property graph including information of the code and data from different spaces like file system. By specifying queries in terms of the graph, the programmer could locate the code more accurately than traditional text-based searching. |
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.
Don't start a paper summary with "And" -- it should be self-contained
No description provided.