title: "DS.js: Turn Any Webpage into an Example-Centric Live Programming Environment for Learning Data Science" authors: Xiong Zhang and Philip J. Guo venue: ACM Symposium on User Interface Software and Technology (UIST) year: 2017 footer: "Honorable Mention Paper" links: - Blog post - Webpage tweet: DS.js transforms any existing webpage into a live programming environment for data science abstract: > Data science courses and tutorials have grown popular in recent years, yet they are still taught using production-grade programming tools (e.g., R, MATLAB, and Python IDEs) within desktop computing environments. Although powerful, these tools present high barriers to entry for novices, forcing them to grapple with the extrinsic complexities of software installation and configuration, data file management, data parsing, and Unix-like command-line interfaces. To lower the barrier for novices to get started with learning data science, we created DS.js, a bookmarklet that embeds a data science programming environment directly into any existing webpage. By transforming any webpage into an example-centric IDE, DS.js eliminates the aforementioned complexities of desktop-based environments and turns the entire web into a rich substrate for learning data science. DS.js automatically parses HTML tables and CSV/TSV data sets on the target webpage, attaches code editors to each data set, provides a data table manipulation and visualization API designed for novices, and gives instructional scaffolding in the form of bidirectional previews of how the user's code and data relate. bibtex: > @inproceedings{ZhangUIST2017, author = {Zhang, Xiong and Guo, Philip J.}, title = {DS.Js: Turn Any Webpage into an Example-Centric Live Programming Environment for Learning Data Science}, booktitle = {Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology}, series = {UIST '17}, year = {2017}, isbn = {978-1-4503-4981-9}, location = {Qu\&\#233;bec City, QC, Canada}, pages = {691--702}, numpages = {12}, url = {http://doi.acm.org/10.1145/3126594.3126663}, doi = {10.1145/3126594.3126663}, acmid = {3126663}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {data science, live programming, novice programmers}, }