Daniel W. Barowy
Department of Computer Science
Thompson Chemistry Labs
Williamstown, MA 01267
I am an Assistant Professor in the Williams College Department of Computer Science. My area of research is programming languages.
Curriculum vita (PDF 120K)
I am available on Wednesdays from 10am—noon and on Thursdays from 4pm—6pm in TCL 307. If you are unable to come during those hours, please email me to set up an appointment.
|Spring 2019||CSCI 136: Data Structures & Advanced Programming|
|Winter 2019||CSCI 11: Hour of Code|
|Fall 2018||CSCI 334: Principles of Programming Languages|
|Spring 2018||CSCI 334: Principles of Programming Languages|
|Fall 2017||CSCI 331: Introduction to Computer Security|
|Spring 2017||COMSC 201: Advanced Object-Oriented Programming (@ Mount Holyoke College)|
I am interested in the design and implementation of programming languages. In particular, two questions motivate most of my research: "Can this program be made simpler to use?" and "Can this program be made more robust?" Surprisingly, the answers to these questions often complement each other.
My work focuses on new language abstractions, end-user programming, and new debugging techniques. In particular, I am excited about improving the user experience when programming with spreadsheets and with crowdsourcing. I employ traditional programming language techniques like program analysis, but somewhat unusually, I often blend these with statistical approaches.
The exercise of building real software often reveals important flaws and shortcomings in one's research. I strongly support the practice of submitting software 'artifacts' to optional Artifact Evaluation Committees. Building these artifacts does indeed substantially increase the effort required to do research. But artifacts are worth the time because they enable reviewers (and others) to validate one's claims independently.
My work on CheckCell, ExceLint, and FlashRelate were all awarded "Artifact Verified" badges. FlashRelate was awarded PLDI '15's "best-of" prize, the Distinguished Artifact Award. I am in good company, as my colleagues in the PLASMA Lab won the PLDI Distinguished Artifact Award
|2018||OOPSLA||Conference||ExceLint: Automatically Finding Spreadsheet Formula Errors Verified artifact. , ExceLint slides. , OOPSLA 2018 talk.|
|2017||Dissertation||Spreadsheet Tools for Data Analysts|
|2017||CHI||Conference||VoxPL: Programming with the Wisdom of the Crowd|
|2016||CACM||Journal||AutoMan: A Platform for Integrating Human-Based and Digital Computation Research Highlight.|
|2015||PLDI||Conference||FlashRelate: Extracting Relational Data from Semi-Structured Spreadsheets Using Examples Verfied artifact. ,PLDI 2015 Distinguished Artifact Award. ,FlashRelate slides.|
|2014||OOPSLA||Conference||CheckCell: Data Debugging for SpreadsheetsVerfied artifact., CheckCell slides. , OOPSLA 2014 talk.|
|2012||OOPSLA||Conference||AutoMan: A Platform for Integrating Human-Based and Digital Computation AutoMan slides.|
Workshops, Posters, etc.
|2017||IBM PL Day||Workshop||VoxPL: Programming with the Wisdom of the Crowd|
|2017||IBM PL Day||Workshop||ExceLint: Automatically Finding Formula Errors in Spreadsheets (presented by Emery Berger)|
|2016||NEPLS||Workshop||WoCMan: Programming with the Wisdom of the Crowd|
|2016||ASPLOS WAX||Workshop||WoCMan: Harnessing the Wisdom of the Crowd for High-Quality Estimates|
|2016||POPL SRC||Poster||WoCMan: Harnessing the Wisdom of the Crowd for High-Quality Estimates|
|2014||POPL OBT||Workshop||Data Debugging|
|2013||Follow the Crowd||Blog Post||AutoMan: Programming with People Invited article.|
|2011||NIPS CSS||Workshop||AutoMan: Integrating Human and Silicon Computation AutoMan NIPS poster.|
|ExceLint||An Excel plugin for finding formula errors.||F# / C#|
|AutoMan/VoxPL||A DSL for writing crowdsourcing programs using simple Scala functions.||Scala|
|FlashRelate||A tool for extracting semi-structured spreadsheet data as relational tables.||F#/C# Not available :( Proprietary Microsoft software. See Cole Erickson's Flare compiler for a reimplementation of the DSL.|
|CheckCell||A tool for finding input errors in spreadsheets.||C#|
|Depends||Generate data dependence graphs from spreadsheet computations.||C#|
|Parcel||An Excel formula parser.||F#/FParsec|
|Bingerator||Query the Bing search engine using sequence comprehensions.||Scala|
|Schedulous||Schedule events using CSVs.||Scala/Z3|
|June 14, 2016||AutoMan appears as CACM research highlight||UMass College of Computer and Information Sciences|
|June 18, 2015||Data stuck in Excel?||UMass College of Computer and Information Sciences|
|Jan 21, 2015||10 cool network and computing research projects||NetworkWorld|
|Oct 27, 2014||CheckCell promises to finger all-too-common Excel spreadsheet errors||NetworkWorld|
|Oct 24, 2014||Powerful new software plug-in detects bugs in spreadsheets||Phys.org|
|Dec 5, 2012||Your next boss could be a computer||New Scientist|