Daniel W. Barowy

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

Curriculum vita (PDF 150K)

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

About Me

I am an Assistant Professor in the Williams College Department of Computer Science. My area of research is programming languages.

If you are a student (or former student) interested in a letter of recommendation, here's how to request one.

Teaching

Courses

Fall 2021 CSCI 331: Introduction to Computer Security
Spring 2020 CSCI 136: Data Structures & Advanced Programming
Spring 2020 CSCI 334: Principles of Programming Languages
Fall 2019 CSCI 331: Introduction to Computer Security
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)

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?"

I focus 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. My work often blends traditional programming language techniques, like program analysis, with statistical techniques.

Publications

Year Venue Kind Title
2021 arXiv Preprint LaForge: Always-Correct and Fast Incremental Builds from Simple Specifications
2020 SIGCSE Conference Infrastructor: Flexible, No-Infrastructure Scaling Tools for CS
2019 SPLASH-E Conference Evaluating Prodirect Manipulation in Hour of Code Hour of Code press
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. , FlashRelate demo video.
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.

Talks, Workshops, Posters, etc.

Year Venue Kind Title
2020 SPLASH-E 2020 Lightning Talk Infrastructor: Flexible, No-Infrastructure Scaling Tools for CS Talk video.
2019 Microsoft Faculty Summit 2019 Invited Talk Defense Against the Dark Spreadsheet Arts Talk video (my bit starts at 16:45).
Part of the "Future of Spreadsheeting" session.
2019 Microsoft TechFest 2019 Workshop ExceLint: Automatically Finding Spreadsheet Formula Errors (presented by Ben Zorn and Emery Berger)
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.

Software

Project Purpose Language
Paraformula An Excel formula language parser and AST. TypeScript
smtliblib An SMTLIBv2 parser and AST. TypeScript
Parsecco A parser combinator library. TypeScript
SWELL An Hour of Code-style programming environment for 5th and 6th graders. TypeScript
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

Press

Date Article
January 15, 2019 Pownal students learn coding Bennington Banner
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