krakow salt mine Guillaume Marceau
Bio

I am a Ph.D. student in computer science at WPI with Kathi Fisler. I work with the PLT Scheme research group on how to best teach programming. Specifically, I run experiments to inform the design of the curriculum and of its supporting crew, like the DrScheme IDE. I'm excited about the move to bring the material to middle schools. The argument is called Why Computer Science Doesn't Matter, and the project is called Bootstrap.

The short version of the argument is, since our curriculum is driven by the connection between programming and algebra, through programming algebra becomes the language of images, of animations, and of game design. It becomes a creative medium like Play-Doh.

For a brief moment I was teaching remedial math in a high school in Quebec, and 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 and type systems with Shriram Krishnamurthi.

I grew up a Montreal. I have a (rather thick) French-Québécois accent with a non-trivial Gaspé inclination, from my mother's side.

Programs

I created DivaScheme, which is both a semi-structured editing mode for DrScheme 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.

Writing

I share some thoughts on a separate blog.

I post longer articles on their own page:

I am also on Twitter and (if you know me) on Facebook.

Photography

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.

Publications

The HAL Project -- Discovering local artists through Zeroconf
Pascal Charest, Michael Lenczner and Guillaume Marceau
Linux Journal, January 2007
[html]

The Case for Analysis Preserving Language Transformation
X. Zhang, L. Koved, M. Pistoia, S. Weber, T. Jaeger, G. Marceau
International Symposium on Software Testing and Analysis, 2006
[pdf]

The Design and Implementation of a Dataflow Language for Scriptable Debugging
G. Marceau, G. H. Cooper, J. P. Spiro, S. Krishnamurthi, S. P. Reiss
Automated Software Engineering Journal, 2006 (by invitation)
[info+pdf]

A Dataflow Language for Scriptable Debugging
G. Marceau, G. H. Cooper, S. Krishnamurthi, S. P. Reiss
IEEE International Symposium on Automated Software Engineering, 2004 (award paper.)
[info+pdf]

Robotics-Based Location Sensing For Wireless Ethernet
A.M. Ladd, K.E. Bekris, G. Marceau, A. Rudys, D.S. Wallach, L.E. Kavraki
Mobicom, 2002
[pdf]

Using Wireless Ethernet for Localization
A. Ladd, K. E. Bekris, G. Marceau, A. Rudys, L. E. Kavraki, D. S. Wallach
IEEE/RJS International Conference on Intelligent Robots and Systems, 2002
[pdf]

Efficient Inference Of Static Types For Java Bytecode
Etienne M. Gagnon, Laurie J. Hendren, Guillaume Marceau
Static Analysis Symposium, 2000
[pdf]

Bits of code [bibgrep]
Bibgrep is an indexing search engine for large Bibtex bibliographies. Bibgrep is very fast.  Once the index is created, Bibgrep can search through hundreds of megabytes of bibtex entries within a second.  Bibgrep supports full Boolean queries, which may include regular expressions. Bibgrep will print all the Bibtex entries that matches the words given on the command line. Bibgrep also has an Emacs mode, in the style of the compilation mode. Bibgrep is written in Ocaml, which means it is compilable on Linux, Windows and Mac, but feels most at home on Linux.

[etags.ss]
Etags.ss generates Emacs tag files for PLT Scheme programs.

[spread.el]

Spread is a lightweight spreadsheet for Emacs.  Spread is flexible – the layout does not have to follow a strict grid arrangement – and it allows normal text and formulas to be mixed anywhere.  It is great for quickly balancing budgets and for throwing some calculations on a page.

[plugin.el]
Plugin is my attempt at creating a package manager for Emacs.  Plugin will automatically downloads Emacs extensions, unpacks them in a directory, adds that directory to the load-path, generates auto-load annotations, and modify your dot-emacs file. The auto-load annotations are a little-known feature of Emacs. Once they are generated, Emacs extensions load quickly and incrementally, which is really nice if you have as many extensions installed as I do.

The above two Emacs extensions depend on the following two libraries.

[loop-constructs.el]
Once I thought Emacs-Lisp lacked good looping constructs, so I wrote named-let and let/ec and called them spinner and while-break.

[record.el]
Emacs-Lisp also misses good structured records.  This fixes that.
Guillaume Marceau
gmarceau ⨁ gmail.com
774.312.0305