In a programming competition that challenged 6279 students around the world to solve problems around the clock, a team from Peru made its school and country proud by taking first place.
The winners of the seventh annual IEEEXtreme Programming Competition were from Universidad Nacional de Ingeneriería in Lima. Jonathan Durand Espinoza, Gian Franco Zevallos Gutierrez, and Miguel Tasayco Martinez will each receive a paid trip to an IEEE conference of their choice. The competition, held on 26 October, brought together 2346 teams online—comprising 1 to 3 students each—from 60 countries. Their challenge: Solve 22 software-design problems in 24 hours.
“The name says it all,” says Sinan Alsheikh, the lead organizer of IEEEXtreme. “The competition takes students to the extreme limits of their capabilities.”
The fact that more than 250 000 attempted solutions to the programming problems were submitted by the students is an indication of how determined they were to be named the most “extreme programmer in the world,” he says.
Such determination was perhaps nowhere more true than for Martinez and his teammates, who entered the competition for the third straight year. They did well each time, landing in fourth, second, and finally, first place.
“Because of the previous contests, we already knew our strengths and weaknesses,” Martinez says. “We were determined to succeed. We stayed awake for 24 hours exchanging ideas and living on coffee and cookies.”
Behind them in second place was a team from Ss. Cyril and Methodius University, in Skopje, Macedonia. Coming in third was Sun Yat-Sen University, in Guangdong, China.
“Many join for the experience, but there are professional reasons, too,” says Alsheikh. “Winners can put their ranking on their résumé or present their participation certificates to employers to show they made it to the top of an international programming competition.”
READY, SET, CODE
To prepare, participants were able to log in a week before the contest to warm up with practice problems. A team of software experts reviewed all the problems beforehand to ensure they were challenging yet solvable. The scoring system adjusted the scoring of each problem based on its level of difficulty. The more difficult the problem, the more points it was worth. However, the more teams that solved a given problem correctly, the fewer points it was worth in the final scoring.
All students had to be logged in and ready to go once the clock struck 00:00 GMT the day of the competition. One new problem was submitted approximately every hour. While there were no time constraints to solve any one problem, each team had 24 hours to get through as many as it could. If students were stuck on a problem, they could skip it and go to the next. It was up to them how they played the game.
In the event of a scoring draw among teams, the time taken to solve the problems was the deciding factor. In other words, faster was better.
Each new problem was released through a computer program called HackerRank. The program also determined when a successful solution was submitted and notified the judges. The judges had a scoreboard that was refreshed every few minutes to show team rankings in terms of highest score.
Teams or individual students could submit as many answers to the same problems as they wished; they were not penalized for incorrect answers. “But to win, you have to solve the hardest problems,” Alsheikh says. “The top 10 teams were like machines. They solved almost every problem.” On the other hand, a handful of teams spent the 24 hours attempting one problem after the next without coming up with a single correct solution.
The first problem was solved in less than an hour, according to Alsheikh. Organizers estimated that some of the questions would take at least two hours to answer correctly.
The beauty of the competition, according to Alsheikh, who has been a judge for four years, is that the students were given real-life scenarios. One problem, for example, dealt with developing a program that provides accurate operating information for a rail system that takes into account all of the trains’ arrival and departure times.
Another problem asked students to write a program that minimizes the number of tiles wasted in completing a construction project. And another asked participants to build software to help run a farm. Students were given information such as how often and with how many offspring an animal reproduces, the number that must be shipped to market, and how many are needed to be financially viable. They then had to write a program that predicted the number of animals necessary to sustain the business in the long term.
“Don’t be surprised if next year there’s a problem in biology and our students never studied biology,” Alsheikh says. “The thinking process, regardless of the science, should lead to a solution.”
One problem that stood out in Alsheikh’s mind was program code that had to be translated from one computer language to another. Teams were given code written in assembly language and asked to translate it into any other programming language they chose.
In a previous year, Alsheikh included in the competition the problem he had solved in his master’s thesis. “Within 15 minutes, we received a correct solution,” he recalls. “I couldn’t believe it. I spent a year solving the problem. Instead of spending so much time on it, I should have sent it to one of the smart guys in the competition.
“I would love to see students come out of the competition, walk around their neighborhood, and think, ‘I can optimize this neighborhood’s electricity by doing X and Y,’” he continues. “What IEEEXtreme is offering are questions you won’t find in textbooks so that engineering students can think about how to solve problems all around them. In the end, this is what engineering is all about.”