Visualizing API Usage Examples at Scale (CHI 2018)
abstract = {Using existing APIs properly is a key challenge in programming, given that libraries and APIs are increasing in number and complexity. Programmers often search for online code examples in Q&A forums and read tutorials and blog posts to learn how to use a given API. However, there are often a massive number of related code examples and it is difficult for a user to understand the commonalities and variances among them, while being able to drill down to concrete details. We introduce an interactive visualization for exploring a large collection of code examples mined from open-source repositories at scale. This visualization summarizes hundreds of code examples in one synthetic code skeleton with statistical distributions for canonicalized statements and structures enclosing an API call. We implemented this interactive visualization for a set of Java APIs and found that, in a lab study, it helped users (1) answer significantly more API usage questions correctly and comprehensively and (2) explore how other programmers have used an unfamiliar API.},
This project is developed jointly by Professor Miryung Kim's Software Engineering and Analysis Laboratory at UCLA and Professor Bjorn Haartman's Human Computer Interaction Group at UC Berkeley.
If you encounter any problems, please open an issue or feel free to contact us:
Elena Glassman: was a Postdoc at Berkeley; now an Assistant Professor at Harvard;
Tianyi Zhang: PhD student and now an assistant professor at Purdue; tianyi@purdue.edu
Bjorn Hartmann: Professor at UC Berkely; bjoern@eecs.berkeley.edu
Miryung Kim: Professor at UCLA; miryung@cs.ucla.edu
Please refer to our CHI'18 paper, Visualizing API Usage Examples at Scale for more details.
@inproceedings{10.1145/3173574.3174154, author = {Glassman, Elena L. and Zhang, Tianyi and Hartmann, Bj"{o}rn and Kim, Miryung}, title = {Visualizing API Usage Examples at Scale}, year = {2018}, isbn = {9781450356206}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3173574.3174154}, doi = {10.1145/3173574.3174154},
booktitle = {Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems}, pages = {1–12}, numpages = {12}, keywords = {programming support, api, interactive visualization, code examples}, location = {Montreal QC, Canada}, series = {CHI '18} }