Programmers Off to North American Finals to Prep for Russia
By Dennis Walikainen | Published
They earned an invitation to Russia for the International Collegiate Programming Contest in June, and they get an important practice step between now and then.
The Michigan Technological University team of just-graduated math major Ryan McNamara and computer science majors Eric Rinkus and Thomas Holmes will take their programming skills first to Chicago on March 26, as one of only two Michigan teams qualifying. The other is from the University of Michigan.
The North American Invitational Programming Contest, hosted by the University of Chicago, is flying the team down, putting them up in a hotel and offering some nice prizes, all to prep the teams for the international competition in Russia.
“It will be fun, a good practice, and if they are lucky, they’ll win a few bucks, too,” says Dave Poplawski, computer science professor and former longtime programming coach.
First prize is $4,500 and, although the competition is stiff--MIT, Stanford, Carnegie Mellon, Virginia Tech--don’t count out the Huskies.
The team will practice by solving typical contest problems. “Old, archived problems from previous regional and world final competitions are easy to find online,” explains Jason Hiebel, a PhD student in computer science and the team’s coach. “As with any skill, practice makes perfect. The more problems they can solve in practice, the better prepared they will be for Chicago and Russia.”
Efficiency is just as important as correctness, he adds. The competitors must make efficient use of their tools, data structures and algorithms to solve each problem. Their code is given a time limit to produce the correct answer, and slow code is just as wrong as code that produces a wrong answer. This usually means starting over.
Eight to ten problems can run from 20 to 200 or more lines of code, “so they must work quickly and communicate effectively to make the best use of the single computer they have to share,” Hiebel points out. Total time for the contest is five hours.
Even the judges’ responses to their solutions are stress-laden. If incorrect, they are not told why; the response is simply “wrong answer,” or if it takes too long, “time limit exceeded.”
“Every incorrect solution is penalized as well, which can cause you to quickly drop in the standings," Hiebel says. “You can try as many times as you want, but it will cost you.”
Several teams will answer most, if not all, of the problems correctly, Poplawski adds. It’s a matter of turning them in the fastest with the fewest penalties for wrong attempts. Teams have 20 minutes added to their total time for each wrong attempt. “At the end, teams are just firing them in with a hope and a prayer, because you score better if you get a problem solved, even with the penalty minutes,” he says.
This year Hiebel will be accompanying the team.
“Jason competed in this contest several times in previous years and narrowly missed making the finals a couple of times,” Poplawski says. “He also co-taught a competitive programming class with me, assisted me with much of the administrative work of programming contests and has done most of the work with this year's team, so he should get to go to Chicago and Russia. He's earned it.”
Michigan Technological University is a public research university, home to more than 7,000 students from 60 countries. Founded in 1885, the University offers more than 120 undergraduate and graduate degree programs in science and technology, engineering, forestry, business and economics, health professions, humanities, mathematics, and social sciences. Our campus in Michigan’s Upper Peninsula overlooks the Keweenaw Waterway and is just a few miles from Lake Superior.