![]() |
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:
| |
| 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 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
Ethernet Using Wireless Ethernet for Localization Efficient Inference Of Static Types For Java
Bytecode |
|
| 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 |
||