Daniel W. Barowy
Associate Professor
Department of Computer Science
Williams College
dbarowy@cs.williams.edu
Curriculum vitae (PDF 167K)
Room 303
Thompson Physics Lab
Williams College
Williamstown, MA 01267
USA
About Me
I am an Associate 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
Spring 2024 | CSCI 334: Principles of Programming Languages |
Fall 2023 | CSCI 331: Introduction to Computer Security |
Fall 2022 | CSCI 334: Principles of Programming Languages |
Spring 2023 | CSCI 136: Data Structures & Advanced Programming |
Fall 2022 | CSCI 136: Data Structures & Advanced Programming |
Fall 2022 | CSCI 334: Principles of Programming Languages |
Spring 2022 | CSCI 136: Data Structures & Advanced Programming | Spring 2022 | CSCI 334: Principles of Programming Languages |
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
Talks, Workshops, Posters, etc.
Year | Venue | Kind | Title |
---|---|---|---|
2022 | NEPLS | Talk | Riker: Always-Correct and Fast Incremental Builds from Simple Specifications |
2022 | USENIX ATC | Poster | Riker: Always-Correct and Fast Incremental Builds from Simple Specifications Poster. |
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 |