Teaching the teachers: Programming students grind out textbook in 36 hours© May 3, 2013, Norwich University Office of Communications
Less than five hours from the finish line, Norwich University freshman Allyson Lefebvre added up some crucial numbers that won't appear in the computer-programming textbook that she and a team of 25 students worked on for 36 straight hours over the first weekend of April.
“Twenty-three cans of Monster,” said Lefebvre after inspecting the bag of recyclables. “Twelve cans of Red Bull ... and a lot of soda.”
And that’s not counting all the coffee, pizza—a few slices of which remained in a pile of boxes that were fresh 12 or so hours earlier—bags of Cape Cod Kettle Chips, Lay's Chicken and Waffle Sticks, Subway sandwiches and Chinese food that 14 cadets and 11 civilian students demolished over the weekend while working in shifts.
Oh, and don't forget crepes that computer-science Prof. Jeremy Hansen ordered from the Skinny Pancake in nearby Montpelier, Vt., at the end of a long night’s journey into the second day of assembling, writing and fine-tuning The Rook's Guide to C++.
That’s what is nice about going to a small school. Our voices were heard.
Michele Kellerman ’16
As they worked and ate, programmers and students from around the world—from Norway to North Carolina—watched their labors and lunches on a live stream.
“So many people are interested in our food,” said Lefebvre.
Many were equally interested in this collaborative Amazing Race to create a textbook about the popular programming language that is more user-friendly than those students in Hansen’s programming classes have been scratching their heads over for years.
“The [existing] book doesn't really explain things for people with no computer experience whatsoever,” said freshman Michele Kellerman, holding up a copy of
C ++ for Dummies. “This is what I use to get the programming.”
Hence a Three Rules mantra, which Hansen printed out and posted around the room for his collaborators:
- Explain it like you would to a 10-year-old
- No assumptions
- Every new concept should be accompanied by an example and a tutorial
After hearing complaints from students—semester after semester—about the lack of clarity and examples and the glut of assumptions in the standard text, Hansen decided to recruit this team for a continuous writing marathon along the lines of a similar effort by a group of math teachers in Finland.
“That’s what is nice about going to a small school,” said Kellerman. “Our voices were heard.”
People were listening far beyond campus. Aiming to raise at least $900 to cover expenses—mostly food for the team—Hansen established a Kickstarter campaign. By April 3—three days before the team began writing—it had attracted 193 backers from as far away as the United Kingdom, Portugal, Russia and Australia who contributed more than $5,000; enough to donate about 80 softcover books to schools and libraries and to continue revising the product well beyond the weekend.
“We ‘finished’ insofar as the students and I produced material and exercises for about 25 chapters,” said Hansen after the session was over. “It will be available as a Creative-Commons-licensed PDF at rooksguide.org, and while it’s still too rough to use it as a textbook for [introductory programming classes] IS130 and IS131, I would eventually like it to be.”
Hansen added that 69 softcover editions and 22 hardcover copies will go to backers, and that “we hope to print about 20 more softcovers for the contributors, and at least 60 more to be given away to libraries and schools. The digital typesetting material will be available to the public and I will happily take corrections and additions to the material at any time. Future editions will definitely evolve out of collaboration with the public over the Internet.”
The weekend collaboration generated teachable moments for the team.
“Texts by professors—they sometimes can talk over the heads of students,” said Hansen. “This exercise gives these guys great practice at explaining these things.”
Things such as the role of arithmetic in programming.
“One of the most important things in C ++ is the ability to do math,” reads a segment in chapter 2. “Everything a computer sees is a number. To a computer, the ability to do math and manipulate numbers is as essential ... as breathing is to us.”
At least as essential as watching each others’ backs was to assembling the guts of the new textbook in the midst of a tug-of-war with sleep deprivation.
“Hey, Jones,” freshman cadet Matt Russo called to fellow rook Ben Jones. “Did you proof[read the chapter about] pre-processors?”
Jones had done so. Now, Lefebvre just needed to know whether any of her teammates had seen the slip of paper she’d pulled from a fortune cookie that came with the previous night’s feast of Chinese food.
“I opened it this morning,” Lefebvre recalled. “It said, ‘Working together works.’”