With a bronze medal in hand from last weekend’s North America Championship of the International Collegiate Programming Contest (ICPC), UCF’s computer programming team will head to the world competition in Moscow in June.

The team, made up of UCF computer science majors — junior Ahmad Barhamje, junior Burnett Scholar Joshua Fair and senior Burnett Scholar David Harmeyer — finished higher than teams from Cal Tech, Stanford, Princeton, Yale and Cornell, to name a few. UCF’s programming team has consistently ranked among the best in the nation, winning the ICPC Southeast USA Regional Intercollegiate Programming Contest seven consecutive years, and in 2018 ranked No. 1 in North America and No. 10 in the world.

“It’s really rewarding to see so much of the time and effort that we put into training paying off,” says Harmeyer. “Many of the universities that we ended up placing above at the North America Championship are teams that we have trained with in the past. It’s encouraging to see that all of the hard work we put in was worth it when we ended up ahead of them on the final scoreboard.”

The UCF programming team joins 18 other teams that advanced to the ICPC World Finals after competing as one of 59 teams in the North America Championship hosted by the Georgia Tech College of Computing in Atlanta.

Training Problem-solving Athletes

“We tell the team members that programming competition is like any other sport — practice makes perfect and repetition is the key to perfection,” says faculty advisor Ali Orooji, adding that the team practices 35 to 40 Saturdays a year. Each practice session starts with a lecture, followed by a five-hour mock contest and a discussion. In addition, team members during the week solve problems on various sites and read about various programming problems.

The competitions are akin to large-scale athletic events and the students perform like athletes, says UCF Board of Trustees Chair Beverly Seay, who has long been involved with ICPC. “The hard work, the teamwork to solve a variety of problems under pressure, the dynamic leadership it takes — like our student-athletes, these are the qualities that give our programmers an advantage in the workforce.”

In the competitions, teams try to solve eight or more complex, real-world problems in a five-hour time limit. Teammates collaborate around a single computer using logic, strategy and endurance that requires precision, problem-solving and an understanding of advanced algorithms. They try to solve the most problems in the fewest attempts in the least cumulative time.

Advancing Programmers in North America

This is the first year a championship-level competition was held to determine which teams would qualify for the world event. Previously, regional competitions were held to determine which North American teams would move on, but Seay, who was a driving force to add the championship, says the United States and Canada need to be more competitive in computer science, both in student competitions and in the high-tech workforce.

The United States faces a global competitiveness crisis in computer science with nearly one million technical jobs left unfilled last year alone.

“With the need for more computing talent across the country, it is our responsibility to groom the leaders of tomorrow in computer science and related areas,” Seay says. “We need to be more competitive internationally and invest in events that give our students opportunities to showcase their best skills to industry and government.”

“Spending this much time working on challenging programming problems really helps with both implementation skills in the real world and with being able to solve tough theoretical interview questions,” says Harmeyer. “Most of the applicable theory that gets taught at school is stuff that we master pretty quickly working on our own, so then we move to some slightly more obscure data structures and algorithms, as well as some really interesting problem-solving techniques.”

This year’s North America regional competitions started with more than 3,000 competitors to determine which would advance to last weekend’s event.

“It was a very good idea to add the additional level [North America Championship] between the regional and finals,” Orooji says. “It was good to see how we compare against other universities in North America.”

Preparing the Next Generation of Programmers for the World Stage

To help prepare students from North America to become more competitive on the world stage, UCF will host a programming camp with top trainers from Georgia Tech, MIT and other universities for about 100 of the top computing students.

The camps will also provide companies and agencies opportunities to meet with the teams and recruit members for future job or internship opportunities. Plus, Seay says, the camp will help promote Orlando and UCF as destinations for high-tech talent.

The inaugural North America Programming Camp will be held at UCF March 30 through April 3, offering team members the opportunity to practice by working through simulated world-level competitions, and trainers the chance to provide analysis and feedback. To offset the costs for attendees, the camp will be sponsored by Universal Parks and Resorts, the National Security Agency, L3Harris Technologies, Northrop Grumman and others that have an interest in recruiting the nation’s brightest computer science students. One of the camps’ and competition’s sponsors, the NSA, gave North American competitors a challenge problem involving cybersecurity.

Arup Guha, an associate instructor of computer science and one of the team’s seven coaches this year, says UCF’s three students have a strong general knowledge base, but they also have specific strengths in different areas.

For example, he says, Harmeyer’s strength is geometry problems; Fair’s background is nontraditional dynamic programming problems, string problems and ad hoc problems; and Barhamje tackles data structures and graph algorithms.

“What we’ve really worked on with this team is collaboration,” Guha says. “They already work well together and in contest they confer with each other before committing to a particular solution path. We’ve found that this improves the team’s accuracy on harder problems, when two of the students think about a problem, to make sure they agree on the general approach.”

Companies or organizations interested in sponsoring the spring programming camps at UCF, should contact Sean Farrell, associate director for advancement in the College of Engineering and Computer Science.