Fall 2018 | By Jeffery C. Billman ’01 ’10MA
The UCF programming team can see it on the scoreboard inside a cavernous room at Florida International University — abuzz with the low hum of murmuring conversation, the scribble of pencil on paper, the clack of keyboards — as 120 or so other teams, clustered at desks in groups of three, tick off problems one by one. It isn’t just that they’re not solving problems at the same clip as the others. They expect that to happen. Starting slow and playing catch-up is an element of their strategy, chiseled from years of experience, honed by all-day Saturday practices and deep-into-the-night weekday trainings.
That’s not the worrisome part.
A lot of teams try to solve the easy problems first — insofar as any of these questions can be called “easy” — then tackle the harder ones later. That makes sense. If you solve the most problems within the designated five-hour window, you win the Southeast regional. You go to the world championship, the ultimate Battle of the Brains, the Super Bowl of Smart People.
You go to Beijing.
But the UCF team went in with a different ploy in mind. Two teammates would crank through the easy problems, while the third, the ace, bore down on the hard ones. This way, they wouldn’t rush at the end to solve the most difficult questions; accuracy, after all, is a primary tiebreaking criterion. At the same time, they wouldn’t waste two hours on a problem they discovered they couldn’t solve.
So they expect to be behind. They expect to catch up toward the end, having a healthy head start on the difficult problems that can take hours to figure out. But they don’t expect things to simply not click.
After all, they’re UCF’s best programming team, maybe its best ever. And UCF has perhaps the premier programming program in the entire country. It’s been that way for decades, for as long as competitive programming has been a real thing. UCF’s teams almost always go to the world championships. They have every year since 2011. And for 36 straight years — the longest streak in the country — UCF had placed in the top three in the Southeast.
They’d be damned if they were the team that failed. Stay calm, they tell themselves. Stay focused. Don’t stare at the scoreboard.
And just like that, it comes together, like it always does, like it’s supposed to, their months of practice paying off. In an hour, they solve more of the 11 problems than most teams do all day, rocketing up the scoreboard from 10th to first. They win. The second-place team also comes from UCF, two problems behind them. But only one team goes to the world championship.
For students Timothy Buzzelli, Alex Coleman and Eric Ly ’18, Beijing wasn’t the goal, but rather the expectation. The goal was to medal — something no UCF team had done since Bill Clinton was president — “to show that we were on the rise,” Coleman says.
Buzzelli and Coleman had been to the world championships before, in 2017, though it was in the less exotic locale of Rapid City, South Dakota, where they’d finished better than any UCF team this century: tied for 13th out of 133, the best in the U.S. (beating teams from Columbia, Cornell, Harvard, MIT and Stanford, among others), second in North America.
Their appetite was whetted. They wanted more.
Buzzelli was a natural. The son of a software engineer, he’d been programming since the age of 9, was gifted at geometry problems and was the ace the team turned to for the toughest questions. Coleman had been programming since middle school, and programming competitively since high school. Ly, the oldest of the bunch, was nonetheless a new addition to the unit, a latecomer to competitive programming who earned his spot through grit and determination.
They were one of seven three-person teams comprising what’s referred to as UCF’s varsity program, the teams that go to regionals. Another four teams of three compete as junior varsity, mostly freshmen and sophomores who expect to move up as the top programmers age out. Even they are among the elites; every year, about roughly 200 students compete for 33 slots.
But of the seven varsity squads, there’s almost always one that stands out, one that’s supposed to win the regional and show the world what UCF can do. From the outset, expectations are high.
“We take the programming team very seriously,” says Ali Orooji, associate professor of computer science, who serves as the team’s faculty advisor. “They put so much time and effort into it. How the University of Alabama feels about football, that’s how we feel about the programming team.”
“How the University of Alabama feels about football, that’s how we feel about the programming team.”
And like Alabama’s football team — or, if you put more stock in actual win-loss records than a computer algorithm, last season’s Knights — these three programmers would go on to prove themselves to be the best team in the United States.
In the past 35 years, UCF has finished better than 10th in the world finals four times, capped by a second-place finish in 1987. But things were different then, Orooji points out. There was less competition, fewer programmers. The team, which had just a handful of members, was mostly doing things on its own. Orooji had come to UCF in ’85, but he didn’t become the team’s faculty advisor for another four years. Back then the team was just a handful of students, its success an outgrowth of UCF’s computer science program and the topflight talent it attracted.
Computer programming, let alone competitive programming, was in its infancy. The first programming course Orooji took was in grad school. Today, he says, kids learn about computers in grade school and programming in high school. By the time they get to college, they’re miles ahead of where their forebears were a generation ago. At the same time, the questions are harder and the competition stiffer.
Even so, UCF has maintained its dominance. All seven of the teams it sent to the Southeast regional last November placed in the top nine. In the past 15 years, the school has won regionals 10 times and gone to the world finals 13 times. No school in the Southeast, and very few schools anywhere, can boast that level of success. Considering that some 3,000 schools and 50,000 students compete worldwide every year, that’s not an insignificant achievement.
“I love programming,” Orooji says. But when he started, “I was not sure what was involved.” What was involved was a lot of time. A believer in leading by example, Orooji showed up to Saturday practices, something the team has continued to this day.
“I wasn’t planning to do it for 30 years,” he says. “But I enjoyed it so much.”
As the years went on and the program grew, the team became something of a fraternity. Former teammates returned as coaches, helping develop younger players’ skills. The team had its own lab, where members could hang out and work on problems. There were Tuesday dinners at Fujiyama Sushi. There was camaraderie.
“It’s definitely a very close-knit group,” says Buzzelli. “Most of us live in that lab. We’re all there day in and day out. Everyone on the programming team is like my best friend in college.”
There was also a lot of work.
For Ly, that meant going above and beyond the 20 hours a week the team expects. Unlike Buzzelli and Coleman, he didn’t grow up programming. He grew up in the small town of Leesburg, Florida, and started at UCF in 2010 with plans to be a doctor, like his family wanted. Three years in, he decided that wasn’t for him.
Trying to figure out what he wanted to do with himself, he tried his hand at several different courses, including Introduction to Programming. As he does with all computer science courses, Orooji stopped by to encourage students to try out for the programming team the next fall.
In the fall of 2014, Ly did.
He didn’t make it. Not even close.
“I didn’t want to give up,” he recalls. “I trained on my own. I learned to do all those problems. It’s a lot of thinking, learning techniques and algorithms and how to apply them. When someone starts out, a strategy is to do a lot of [past competition] problems and learn techniques from those problems.”
By spring, the coaches were so impressed by his dedication and progress that they invited him to join the JV squad. The next fall, he made varsity. At regionals that year, his team placed 10th, dead last out of UCF’s entries.
“That day put a stronger drive in me,” he says. “I trained even harder after losing.”
“That day put a stronger drive in me.”
In 2016, paired with two new teammates, Ly’s team placed second at regionals, just missing a trip to the world championship — and behind only Buzzelli and Coleman’s team.
By the time tryouts came around last fall, Buzzelli and Coleman knew whom they wanted as their third teammate. Joshua Linge ’14 ’16MS, their teammate for the 2016–17 year, had graduated. (He’s now a software engineer for Facebook.) With him, they’d done well: They’d won regionals, of course. They’d also placed 13th in the world, if you counted the number of questions they answered. But they’d just missed a medal.
“We were super happy about that,” Coleman says. It wasn’t just where they ended up, but how they got there: “We have rough starts, but we come back from them.” In the contest’s second of five hours, they were in 60th or 70th place, with Buzzelli — per the team’s strategy — using the only computer terminal to solve a difficult geometry problem. They set a goal of finishing no lower than 30th. Buzzelli finished, then Linge and Coleman unloaded their solutions on the terminal. Soon enough, they were shooting up the scoreboard.
As returning members of the top American team, Buzzelli and Coleman came into 2017–18 as UCF’s all-stars. They’d both made varsity as freshmen in 2015, something few do. They were already good at programming, but needed to work on strategy and problem-solving techniques.
“The analogy I have used is that programming is like speaking a language,” Coleman says. “It’s a tool you can use to do different things. Competitive programming is like some type of speech competition. You have to be able to speak a language, but it’s so much more than that.”
They practiced hard and improved rapidly. By their sophomore year, they were part of UCF’s top team. Buzzelli ranked first in tryouts at the beginning of the year, Coleman second. And in their junior year, they told their coaches that they wanted Ly to join them. They’d seen his dedication and work ethic, his long nights in the lab and rapid improvement, his willingness to teach new players.
The decision wasn’t entirely theirs. Ly had to try out. His placement wasn’t just a matter of how well he did in the competition, but of how his skill set balanced out his teammates’ skills. In the same way a basketball team might not want five point guards on the floor, a programming team wouldn’t want three teammates whose specialties overlap.
“The competition for that last spot was a struggle,” Ly says. But in the end, Ly joined Coleman and Buzzelli’s team. Three months later, they were in South Florida, characteristically falling behind and then catching up in the Southeast regional.
“We want to win regionals every year,” Buzzelli says. “And all of UCF’s teams aim to finish ahead of Georgia Tech.”
At the end of April, the three teammates along with Orooji and six coaches made the long flight to China. They arrived a week early, both to allow them to see the sites and to adjust to the 12-hour time difference.
There were a few short practices, just to keep them sharp, but most of the week was set aside for relaxation and playing tourist. At first, Coleman says, Beijing looked like any other big city, except that everything was in Chinese instead of English. But the more they looked — at places like the Forbidden City and Tiananmen Square, they realized how different it was from the U.S. Beijing is a modern city whose ancient past is tangible and ever-present. “It’s a culture that’s so different than ours. We realized how alive all of that culture felt.”
As competition day neared, Ly was increasingly nervous. Buzzelli and Coleman had been on this stage before, but he hadn’t. They had fallen just short of their goal last year, and they were counting on him to get them where they wanted to be this time around.
“I felt like my heart was going to jump out of my chest,” Ly says.
“I felt like my heart was going to jump out of my chest.”
And here they were, in a large gymnasium inside Peking University, 139 teams of three (of which 23 were American), all facing a giant scoreboard, hundreds of students and teachers talking and milling about.
“It was really intimidating,” Ly says. “These are really smart people.”
UCF’s strategy going in was tightly focused. They doubted they’d be able to win it all. They’d done some scouting of the teams they were up against. The winners — first place went to Moscow State University, with the Moscow Institute of Physics & Technology a close second — weren’t a surprise. But they wanted a medal, so that’s where they set their sights.
There are three types of medals in the world championships: gold to teams one through four, silver to five through eight, and bronze to nine through 12. “We were shooting for bronze,” Coleman says. “Our strategy was set for that as well. We could have done more risky things.” But they stuck to their game plan: Buzzelli took the hardest question, while Ly and Coleman worked through the easy ones.
They expected to start out behind, and they did. On the scoreboard they slipped to the middle of the pack. But, as they always did, they began to climb, edging into the top 10, as high as fourth, then dropping, then picking up ground, then dropping, and so on.
At contest’s end, they were No. 10, good enough for a bronze medal and to be No. 1 in North America, but tantalizingly close to something more. They’d correctly answered seven of the 11 questions; one more, and they would have placed at least fifth.
“In hindsight,” Coleman says, “it always feels like you could have done better. At the end of the contest, there was one more problem, and we didn’t quite get it. I felt like if we had started it a little earlier, we could’ve gotten it.”
They flew home the next day.
Ly began a summer internship with Google, and Buzzelli and Coleman started internships with Facebook. Coleman and Buzzelli are supposed to graduate this year, though Coleman is thinking about sticking around for a master’s degree. Ly has graduated and is entering grad school.
As with any competition, after a quick moment of basking in glory, attention turns to the next season. Ly will be on that team — the school had to get him a waiver, since the competition is supposed to be for undergrads only — but Coleman and Buzzelli will not. The contest’s rules allow players to only compete in the world finals twice. But that doesn’t mean they’re done with UCF’s programming team. No one who comes through it is ever really done with it.
“Now that Timothy and I will be coaches, we’ll be able to help,” Coleman says. “Maybe we’ll set our sights on silver next year.”