Competitive Programming at Georgia Tech

Competitive Programming at Georgia Tech Shines at Regional Competition

The Competitive Programming at Georgia Tech student organization made waves at last month's 2023 International Collegiate Programming Contest (ICPC) Southeast USA Regional Championship, with the top team taking second place overall.

Next, the top Georgia Tech team will represent the southeast region at the 2024 ICPC North America Championship in May. The College of Computing hosted the inaugural continental championship in 2020.

How the Competition Works

Georgia Tech team members held a contest a month in advance to determine who would compete. They formed four teams and have been training every weekend for several weeks.

Three of the four teams won medals for placing first, second, and third in their division at the Samford University competition site.

Image
Minh Trong Ho, Edward Chen, and Kevin Shan won second place in the regional competition. Photos by Edward Chen
Minh Trong Ho, Edward Chen, and Kevin Shan won first place in their division and second place in the overall southeast region. Photos by Edward Chen

In the competition, teams of three students are tasked with solving complex problems within a five-hour timeframe, using one computer per team. This challenge, distributed virtually across various time zones and locations, demands technical expertise, strategic thinking, and efficient collaboration. The contest typically features 11-13 problems requiring innovative algorithmic solutions. Teams must carefully allocate resources and time to maximize their problem-solving potential while minimizing penalty points. 

Image
Roman Yakunin, Abhinav Govindaraju, and Hardik Siloiya won second place at the competition. Photos by Edward Chen
Roman Yakunin, Abhinav Govindaraju, and Hardik Siloiya won second place in their division. Photos by Edward Chen

“There’s fierce competition at these events and our students meet the challenge every time,” College of Computing Director of Community and Student Enrichment Troy Peace said. “They only get official practice on weekends due to their academic schedules, so they must practice on their own outside of that. It speaks to their abilities having such limited practice together.”

Competitive Programming at Georgia Tech president and computer science (CS) major Max Zhang says that practicing on your own is essential for those interested in competing.

Image
Raymond Bian, Jon Wang, and Marianna Cao competed as a team at the ICPC Regional Competition. Photos by Edward Chen
Raymond Bian, Jon Wang, and Marianna Cao took third place in their division. Photos by Edward Chen

“Algorithms for graphs and dynamic programming are taught in CS 1332 and CS 3510, but learning from just those classes is not enough to get into these competitions,” Zhang said. “There’s a difference between learning in the course and doing problems in the competition. Five hours is a short amount of time relative to doing research for the whole day. It’s a different animal.”

Limited time is a key element of the competition. School of Computing Instruction Chair Olufisayo Omojokun says there’s a correlation between the competition’s time crunch and a real-world application’s time crunch.

Image
Competitive Programming at Georgia Tech competes in regional competition. Photos by Edward Chen
Competitive Programming at Georgia Tech competes in the regional competition. Photos by Edward Chen

“These teams are under pressure, so they have to think quickly,” Omojokun said. “It’s nudging them closer to industry in the sense they have to respond to a problem within a time frame versus working over the course of a semester with time to get it right.”

Getting Involved 

Competitive Programming at Georgia Tech is as a platform for students who are passionate about programming and problem-solving. The club provides a supportive community where members can hone their skills, participate in competitions, and engage in collaborative learning. Students sharpen their algorithmic thinking and coding abilities through mock competitions and practice sessions.

The organization holds regular meetings, welcoming both beginners and experienced programmers. Those interested can attend general meetings on Thursdays, which often feature lectures on algorithmic topics or mini competitions. 

For students looking to delve deeper into competitive programming, Saturday sessions offer mock competitions and intensive practice sessions to prepare for events like ICPC.

Members can also advantage of opportunities to compete outside of formal competitions by participating in online forums like codeforces.com to refine their skills further.

More information on how to get involved with the organization can be found here.