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.

**Current Results:**

- A CFG drawing library (CFGConf), incorporating CFG drawing conventions and supporting filtering tasks through a JSON specification. This drawing is embeddable in multi-view web-based visualizations.
- Findings on transferrability in systems graph visualization discovered through a design study on binary code.
- Guidelines for pursuing and revealing data abstractions in data visualization projects
- An optimization-based graph layout approach (Stress-Plus-X) that balances multiple graph drawing criteria.
- An introductory data visualization workshop for hackathons and similar events

**Impact:**

- CFGConf library is available on Github.
- Survey data and coded analysis thereof to understand data abstractions beyond tables (e.g., graphs)
- Stress-Plus-X library is available on Github.
- Our introductory data visualization workshop has been attended by over 50 learners.

This material is based upon work supported by the National Science Foundation under Grant No. 1844573.

- 2021/07 - Our new CFG library, CFGConf, is available for download. Use it to filter and draw CFGs through a JSON spec and/or embed in multi-view web-based visualizations!
- 2021/05 - Come visit our Data Visualization Workshop at ResBaz! Monday May 17 @ 3 PM Pacific!
- 2021/04 - Interested in Strategies for Visualizing Networks? Come see our talk Wednesday April 21st at 1:20 PM Pacific at the Women in Data Science - Tucson conference!
- 2020/10 - Come hear about CcNav: Understanding the Compilation of Binary Code Wednesday October 28th @ 8:15 AM Pacific at IEEE VIS!
- 2020/10 - Check out our Guidelines for Pursuing and Revealing Data Abstractions Thursday October 29th @ 7:15 AM Pacific at IEEE VIS!
- 2020/05 - Come visit our Data Visualization Workshop at ResBaz! Wednesday May 20 @ 1 PM!
- 2020/01 - Come visit our Data Visualization Workshop at HackAZ! Saturday January 18 @ 1 PM!
- 2019/12 - We're assembling a Primer on using Graph Drawing Libraries.
- 2019/09 - We participated in the Graph Drawing 2019 Live Challenge Contest using Stress-Plus-X.
- 2019/08 - Check out Stress-Plus-X Graph Layout, supported in part by this project and accepted for presentation at Graph Drawing 2019.
- 2019/08 - Project start date

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
2021.

PDF (Arxiv)

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)

S. Devkota, A. R. Reyan, F. De Luca, K. Isaacs, and S. Kobourov.
*Stress-Plus-X (SPX) Graph Layout.* Proceedings of Graph Drawing 2019.

PDF (ArXiv) | Github

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.