Computationally-assisted drug discovery, predictions of hurricane trajectories, and simulations of new energy sources are all made possible by underlying software (programs). To construct these programs, software developers must divide each problem into smaller operations and order those operations carefully to compute the correct answer. This ordering can be viewed as a network graph, where each operation points to its next possible operations in order. Furthermore, to make these programs run fast enough to be useful, developers, engineers, and researchers must find new ways to balance those operations with system resources such as storage, processing units, and memory. These resource constraints add more ordering requirements to the graph. Verifying this graph can help avoid bugs. Information inferred from this graph can be used to automatically decrease the time the program requires to run. Thus, people working in computing frequently examine these graphs to generate or validate new ideas about how to write their programs or use computational resources. For example, a programmer may discover a long sequence of operations performed one after another that could be parallelized, thus making the program faster. General approaches for drawing networks have not met the demand of graphs in the computing space, resulting in difficult to interpret, if not unusable, diagrams. The purpose of this project is to develop new graph visualization approaches to better support developers, engineers, and researchers in their work and learners in their understanding of computing and their integration of tools such as graph visualization into their skill sets.
Graphs arising from computing contexts frequently take the form of directed acyclic or near-acyclic graphs (DAG-like graphs). The aim of this project is to develop layout algorithms and design guidelines specifically for this class of computing graphs. Research tasks include surveying graphs generated across computing disciplines to derive a characterization of their structure, their domain-specific sub-structures, and their common drawing conventions. The characterization will guide the development of constraints and objectives for layout of node-link diagrams as well as design guidelines for interactivity and visual encoding in support of domain-specific tasks. The results will be implemented in an open-source library and evaluated for both expressivity of computing structures and computational performance.
This material is based upon work supported by the National Science Foundation under Grant No. 1844573.
S. Devkota, P. Aschwanden, A. Kunen, M. Legendre, and K. E. Isaacs.
CcNav: Understanding the Compilation of Binary Code. IEEE Transactions
on Visualization and Computer Graphics, Proceedings of VAST '20. January
A. Bigelow, K. Williams, and K. E. Isaacs. Guidelines for Pursuing
and Revealing Data Abstractions. IEEE Transactions on Visualization and
Computer Graphics, Proceedings of InfoVis '20. January 2021.
PDF (Arxiv) | Survey Data | Codes (OSF)
K. Isaacs. Strategies for Visualizing Networks. Invited Talk. Women in Data Science - Tucson, Tucson, Arizona, USA. April 21, 2021.
S. Devkota. CcNav: Understanding the Compilation of Binary Code. Paper Presentation. IEEE VIS 2020, Salt Lake City, Utah, USA. October 28, 2020. Youtube Link
A. Bigelow. Guidelines for Pursuing and Revealing Data Abstractions. Paper Presentation. IEEE VIS 2020, Salt Lake City, Utah, USA. October 29, 2020. Youtube Link
S. Devkota. Stress-Plux-X (SPX) Graph Layout. Paper Presentation. Graph Drawing '19, Prague, Czech Republic. September 18, 2019.