PITTSBURGH—In just a few weeks, hundreds of programmers from all over the world who "virtually" converged on Pittsburgh in late July to decipher the mysterious "Monroeville Codex" will learn who was most successful.
The codex is the key to a series of programming challenges created by Carnegie Mellon University computer scientists as part of the 11th annual ACM SIGPLAN International Conference on Functional Programming (ICFP), which sponsors the contest as part of their annual meeting. The peer-reviewed meeting, devoted to the latest theory and practice in functional programming, will take place Sept. 18-20 in Portland, Ore. The programmers most successful at deciphering the codex and solving the puzzles it unlocked will receive a monetary prize and bragging rights for the programming language that put them in the winner's circle.
Functional programming employs abstract mathematics to express programming concepts in a way that supports rigorous analysis better than conventional methods.
The theme of this year's competition was "computational archaeolinguistics," part of a fictional narrative created by contest developers to entice programmers. According to the narrative, an ancient society devoted to the study of programming and computation was active in the Pittsburgh region more than 2,000 years ago, long before the invention of digital computers. In this story, workers discover a Rosetta stone during excavations for Carnegie Mellon's new computer science building that enables researchers to decipher the society's artifacts. Contest participants were given a description of the society's computing device and asked to create a virtual replica of it. Once they simulated the workings of the ancient computer, they could unlock the codex to reveal eight puzzles based on computer science research, popular culture and computer game lore.
"The ICFP contest is always a great event, but this year's version really stood out," said Tom Duff, a pioneering developer at Pixar Animation Studios. "Most years the contest revolves around a really complex quirky optimization puzzle, but this year we got a double handful of moderately complex puzzles, which makes a better contest. The presentation was stunning and hilarious. It was like a scavenger hunt in a virtual 'Lost World' populated by antediluvian computer scientists."
The unique programming challenge for this year's contest was primarily developed by four Carnegie Mellon computer science students—doctoral candidates Tom Murphy VII, Daniel Spoonhower and Dan Licata, and rising senior Chris Casinghino. Computer Science Professor Robert Harper and Associate Professor of Computer Science Karl Crary oversaw their work. The team was also aided by many other students in the Principles of Programming (POP) Research Group, part of the Computer Science Department in Carnegie Mellon's School of Computer Science. The group was ranked as the premiere programming languages group in the nation in 2006 by U.S. News & World Report magazine.
According to Harper, this year's contest was unusually creative and generated a great deal of attention. "We had double the number of people submitting solutions as any previous year, and many people continue to register even though the competition is over, just to try it out," he said.
In all, some 900 teams registered for the contest. "More than 364 teams implemented the society's computer and at least 150 teams made substantial progress on one or more of the puzzles included in the codex," Crary said. "Another 60 brave teams registered in the last 24 hours of the contest! We were very impressed by the remarkable amount of work that teams put into this event."
"The ICFP programming contest is for fun, but we like to think it offers some measure of the programming ability out there as well," said Norman Ramsey, associate professor of computer science at Harvard University. "It also gives us some insight into what kind of languages the best programmers use. The Carnegie Mellon group put together a nice mix of problems from a variety of domains. The range of problems and the spread of difficulty were very impressive. Two of them could have stood alone as a challenge."
The contest organizers plan to release details of how the program was created at the ICFP meeting. After the conference, an updated codex will be released on a permanent site so programmers can continue to test their skills and experiment.
For more information on the contest and participants, see icfpcontest.org. For more on the conference, see www.cs.luc.edu/icfp.