I am a software architect at the innovative software company Sefaira. We are building true-to-physics simulations of the energy consumption of green building, delivered in a browser, running on clusters in the cloud, and uniquely easy to use.
Before that I was a Ph.D. student in computer science at WPI with Kathi Fisler. I worked with the PLT research group on how to best teach programming. Specifically, I ran experiments to inform the design of the curriculum and of its supporting crew, like DrRacket and WeScheme.
Before that I was teaching intro to programming at IIITM-K, in Thiruvananthapuram, Kerala, India. And from 2002 to 2006 I was a grad student at Brown University where I did research on programming languages design and theory with Shriram Krishnamurthi. One of my early award-winning paper was on widening the appeal of functional reactive programming.
Live in New York now. Grew up a Montreal. I have a somewhat thick French-Québécois accent with a non-trivial Gaspé inclination, from my mother's side.
I created DivaScheme, which is both a semi-structured editing mode for DrRacket and an editor for people who are worried about developing RSI (or already have it.) In DivaScheme, editing commands are unchorded (no ctrl/shift/alt contortions,) and they work on whole expressions by default.
As part of an earlier research project, I
built MzTake, a scripted debugger which
uses the programming language FrTime to process events. FrTime is the work of my
peer Greg Cooper. It is a programming language specialized in
the processing of events, including the kind of events generated by a process running under the supervision of
a debugger. Thanks to FrTime, within MzTake debugging scripts are concise and reusable.
I share some thoughts on a separate blog.
I post longer articles on their own page:
The pictures on this page were taken in Germany and Poland. I also have a flickr photostream with more photography on display, notably of Vietnam and India.
A full list of my publications, with links to citations, can also be found on my Google Scholar profile.
Measuring the Effectiveness of Error Messages Designed for Novice Programmers
Do Values Grow on Trees?: Expression Integrity in Functional Programming
Mind Your Language: On Novices' Interactions with Error Messages
The HAL Project -- Discovering local artists through Zeroconf
The Case for Analysis
Preserving Language Transformation
The Design and Implementation of a Dataflow
Language for Scriptable Debugging
A Dataflow Language for Scriptable Debugging
Robotics-Based Location Sensing For Wireless
Using Wireless Ethernet for Localization
Efficient Inference Of Static Types For Java
gmarceau @ gmail.com