My research group has had a paper accepted to the 2009 Scheme Workshop! This will be the first publication that's come out of our work this summer.
As it turns out, it will also be the first academic publication with my name on it. I didn't know until yesterday that I would be listed as an author, and since we already knew the paper had been accepted at that point, I never even had a chance to bite my nails about it. It's hard to imagine a more stress-free first publication experience.
Actually, the work that resulted in this paper started a long time ago. This spring, Will was working on his dissertation, which is about miniKanren, the logic programming system that's been the focus of our group's research (and of Will's research for the last several years). Will noticed that some of his miniKanren code was a lot more verbose than the equivalent code would have been in Prolog, the most well-known logic programming language, because miniKanren didn't have the pattern-matching capability of Prolog. Will told Dan about the problem, which at that point was chiefly an aesthetic consideration. It was a Friday, as I recall.
Dan, Will, and Ramana had a wouldn't-it-be-great-if-miniKanren-had-pattern-matching? conversation, and by Monday, Ramana had whipped up some clever pattern-matching macros. While playing with the macros on Tuesday morning, they realized that this pattern-matching stuff could be good for more than making the code listings in Will's dissertation look nice; we could also use it to more effectively teach miniKanren to our C311 students. So I scrambled to learn the new language features, Dan used them in his C311 lecture on Tuesday afternoon, and they made it into the homework assignment I posted on Tuesday night.
That might have been the end of it, but then Dan challenged our B621 class to make the macros more efficient and easier to use. Andy worked on this off and on through the rest of the course and on into the beginning of the summer, and we all helped by asking lots of questions and by using the macros a lot (and, in my case, watching the students using them). Andy ended up rewriting the pattern matcher completely. His version was more efficient and more robust than the original had been, and the implementation, which used CPS macros written using Scheme's
syntax-rules macro system, was interesting in its own right. It was potentially worth a paper, so Andy, Will and Dan began writing one.
My contribution to the paper mostly amounted to asking the right question at the right time. We were discussing the pattern matcher one day in B621 when I thought of a particular situation in which it would behave unhygienically. When I brought it up with the group, we realized that it was not only a bug in the pattern matcher, but an example of a limitation of CPS macros in general. At that point, the direction of the paper shifted from "our pattern matcher, let us show you it" to "CPS macros written with
syntax-rules considered harmful when used to generate bindings from a non-unique list of user-specified identifiers". Our colleague Michael joined in and helped Andy, Will, and Dan turn the paper in that direction. They submitted the completed paper, including a couple of alternate implementations that worked around the limitation we'd found, and we found out a few weeks ago that it had been accepted.
I couldn't help feeling a small amount of ownership in the paper, because it would be the first published research that had grown out of something that I helped teach. Moreover, I thought the story of how it had come to be was a nice illustration of the symbiotic relationship between teaching and research in our group. So, I was pleased, even before I knew I was going to be listed as an author. It wasn't until yesterday, after I'd helped them polish up the final version of the abstract, that the other authors told me that they were adding my name. They said that since I had been the one who had set them on the path they'd ended up taking with the paper, I should get an author credit, too. And so it came to pass. We've now submitted the final title, author list, and abstract; all that remains is to polish up the paper itself, and then Andy will be presenting it at the workshop in August. Huzzah!
If you think you've seen this post before, you're right; I apologize for the déjà vu. I had briefly posted a public version of it two days ago, but I'm not yet very good at being what danah boyd once referred to as a "punk-ass public grad student"; I lost my nerve and made that post non-public after I found out that I was on the author list for the paper, because I was embarrassed by how little I'd contributed compared to the other four authors. After all, all I had done was ask a question. But Peter pmb Boothe said something that emboldened me: "Asking the right question is the most valuable skill in research except for the ability to work hard. And it can't be taught. So they are doing the right thing." Thanks, Peter!