I work in the area of programming languages and software engineering in MSR’s Redmond Lab. My research interests are in how combinations of static/dynamic program analysis, model checking and theorem proving techniques can help improve the correctness and reliability of programs. See my papers for more details. I am an ACM Fellow.
I’ve been working for the past few years on Microsoft MakeCode, a new platform for bringing physical computing to CS education, based on our experience with the BBC micro:bit.
Recently, we started Project Alava, which expands the scope of programming to webs of microcontrollers. Our first application of this technology was in a fashion show in Brooklyn, NY – see Project Brookdale for more info!
CHI 2019 – MakerArcade: Using Gaming and Physical Computing for Playful Making, Learning, and Creativity. Teddy Seyed, Peli de Halleux, Michal Moskal, James Devine, Joe Finney, Steve Hodges, Thomas Ball. May 2019
LCTES 2018 – MakeCode and CODAL: Intuitive and Efficient Embedded Systems Programming for Education. James Devine, Joe Finney, Peli de Halleux, Michal Moskal, Thomas Ball, Steve Hodges. June 2018
CHI 2018 – ARcadia: A Rapid Prototyping Platform for Real-time Tangible Interfaces. Annie Kelly, R. Benjamin Shapiro, Jonathan de Halleux, Thomas Ball. April 2018
Mooly: Mensch, Marathon, Method, Magic, MoolyFest, April 2019.
Invited Talk: Formal Methods and Tools for Distributed Systems, NUS Computer Science Research Week 2019, January 2019 [Slides]
Keynote: Push, Pull, Partner A Few Models for Working with Industry, International Conference on Software Architecture, May 2018 [Slides]
Northwest C++ User’s Group – Microsoft MakeCode: from C++ to TypeScript and Blockly (and Back) [ Video | Slides ]
Invited talk “Physical Computing for Everyone” at UCSD Design Lab, October 11, 2017
Keynote: “Formal Methods at Scale in Microsoft” at Software-Centric Systems Conference, Eindhoven, October 4, 2017
ICSE 2017 Most Influential Paper Award: Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball: Feedback-Directed Random Test Generation, ICSE-29, 2007
Blog: Microsoft Research and the Industrial Research Cycle
Microsoft Touch Develop and the BBC micro:bit, Thomas Ball, Jonathan Protzenko, Judith Bishop, Michal Moskal, Jonathan de Halleux, Michael Braun, Steve Hodges, Clare Riley, ICSE 2016
CloudSDV Enabling Static Driver Verifier Using Microsoft Azure, Rahul Kumar, Thomas Ball, Jakob Lichtenberg, Nate Deisinger, Apoorv Upreti, Chetan Bansal: IFM 2016: 523-536
Teach foundational language principles. Thomas Ball, Benjamin Zorn. Commun. ACM 58(5): 30-31 (2015)
Beyond Open Source: The Touch Develop Cloud-Based Integrated Development Environment. MOBILESoft 2015: 83-93
Deconstructing Dynamic Symbolic Execution. Dependable Software Systems Engineering 2015: 26-41