Daniel W. Barowy

Daniel W. Barowy
Assistant Professor
Department of Computer Science
Williams College
dbarowy@cs.williams.edu

Room 307
Thompson Chemistry Labs
Williams College
Williamstown, MA 01267
USA

"What's new?" is an interesting and broadening eternal question, but one which, if pursued exclusively, results only in an endless parade of trivia and fashion, the silt of tomorrow. I would like, instead, to be concerned with the question "What is best?," a question which cuts deeply rather than broadly, a question whose answers tend to move the silt downstream.

Robert M. Pirsig, "Zen and the Art of Motorcycle Maintenance"

About Me

I am an Assistant Professor in the Williams College Department of Computer Science. Prior to joining the department, I was a graduate student in the PLASMA Laboratory, advised by Professor Emery Berger.Curriculum vita (PDF 120K)

Office Hours

Current 331 students should make an appointment with me during office hours. Drop-ins are allowed, but if somebody else has scheduled time with me, you will have to wait (so it is better to schedule something). If you are not a 331 student but would like to meet with me, please send me email.

Teaching

Courses

Fall 2017 CSCI 331: Introduction to Computer Security
Spring 2017 COMSC 201: Advanced Object-Oriented Programming (@ Mount Holyoke College)

Research

Research Statement

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.

Reproducible Research

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 your claims independently.

My work on CheckCell was awarded an "Artifact Verified" badge at OOPSLA '14 and my work on 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 three years in a row! (2014, 2015, 2016) Since it appears that we know a thing or two about producing and releasing software artifacts, we wrote a guide that we hope you find helpful when submitting your research to an Artifact Evaluation Committee.

Publications

Year Venue Kind Title
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.
2012 OOPSLA Conference AutoMan: A Platform for Integrating Human-Based and Digital Computation AutoMan slides.

Workshops, Posters, etc.

Year Venue Kind Title
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.

Software

Project Purpose Language
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.
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

Press

Date Article
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