Computer science junior Spencer Florence recalls how the project started: Professor Matthias Felleisen entered his classroom and asked the students, “Who wants to publish a book with me?” Then the real work to publish Realm of Racket, a programming book for freshman and by freshman, began.
Soon Florence and several other students were immersed in every aspect of creating a book about the Racket programming language they’d learned about in their first Fundamentals of Computer Science course at the College of Computer and Information Science (CCIS). They were responsible not only for the book’s programming content, but also its writing, editing, art, design, and typography.
Incorporating cartoons and video games in addition to the written word, Realm of Racket would take a lighthearted but practical approach to teaching programming. Though inspired by Land of Lisp, a book by Conrad Barski with a similar format, Realm of Racket would focus on a different programming language and feature multiplayer, networked, interactive video games.
“We wanted to produce a book that would appeal to college students at other universities. They would be able to relate to the people publishing the book and see a creative and exciting way of programming,” says Research Assistant Professor David Van Horn, who developed and managed the project along with Felleisen.
Van Horn and Felleisen also had an educational goal for the students publishing the book: to take their ability to design programs to a higher level. But even they didn’t realize at the outset how much more the students would gain from the experience.
“We’d have weekly meetings and edit the book by applying the same process we use for code reviews in class. People would come in with edits and suggest changes. By the end of the project, they’d come in with perfectly articulated decisions about language in the text. They could already do this with a program, but seeing them do this for English prose was great,” Van Horn says.
“I learned about responsibility and deadlines and really owning a project,” says Ryan Plessner, a computer science junior who was involved in programming, writing, and editing. Following the pair-programming model used in the Fundamentals of Computer Science class, he partnered with Florence in performing these duties.
“I considered myself a good writer before, but I got a lot better. I think I learned more about programming, too,” says Florence.
For Mimi Lin, a junior with a combined major in computer science and digital art, the project provided an opportunity to use her talent for comic art. She says, “I wish I’d had those comics when I was learning to program. They definitely have a function in the book.”
Like Plessner and Florence, Lin sees lasting benefits from her participation in the publishing project. She says, “This is a very valuable experience for me to take into the work world. I learned how to work in a group, how to set up a meeting, how to write a good e-mail, and how to stay focused in a three- to four-hour meeting.”
That focus proved especially useful as the project lasted far longer than any of them had anticipated: beyond freshman year, through sophomore year, and into their third year at Northeastern. Florence estimates that the students devoted an average of 20 hours per week to the book. Some of them used the project to fulfill distribution requirements toward graduation, earning academic credit. Others received a stipend from the Brian Wenzinger Fund, created through a gift from Brian Wenzinger, a 1989 CCIS graduate and partner in the Philadelphia investment firm of Aronson+Johnson+Ortiz, to support computer science undergraduates pursuing an unusual opportunity or idea.
Finally, in June 2013, Realm of Racket: Learn to Program, One Game at a Time! became available from New Starch Press and Amazon.com in print and e-book formats. Van Horn says, “It ended up being a lot more work than expected, but there’s nothing better than opening up a box of books you wrote and having it in your hands.”
Yet the students, who now earn royalties from book sales, continue to critique their work. Florence regrets that he and Plessner decided not to rewrite one chapter. And Lin says, “Realm of Racket is good, but I still think it could be better. Publishing a book is such an iterative process.”
Readers, however, are taking a much more favorable view. Van Horn says, “We get frequent e-mails from parents who are going through the book with their 13-year-old and loving it and also hear from accomplished software engineers who are having fun reading it. The students accomplished something significant, and we’re proud of the work they did.”