ORIE Ph.D. student Daniel Fleischman coaches winning team in regional computing contest

Team advances to the International Collegiate Programming Contest Finals in Thailand.

The International Computer Programming Competition (ICPC) draws tens of thousands of undergraduate contestants from more than 2000 universities in more than 100 countries, who participate as teams on a regional basis.  This year, four Cornell teams competed with teams from 19 other schools, including Columbia, NYU, Princeton and Yale, in the Greater New York regional contest at Queens College in New York City.  

The team made up of senior Saketh Are, sophomore Victor Reis and junior Jake Silverman won the competition decisively, beating two Princeton teams that tied for second.   The other Cornell teams all finished in the first half in the rankings.  According to Silverman, “The very last moments of the competition were fairly intense.  We were all spitballing possible ideas about how to solve the last question, hoping that one of them would stick – and eventually one did.” 

The winning Cornell team intends to travel to Phuket, Thailand next May to compete against more than 100 regional winners from around the world.   While no US team has won in nearly 20 years in a competition dominated by St. Petersburg State University of Information Technologies, Mechanics and Optics and other non-US schools, Fleischman hopes the team brings home to Cornell one of the twelve medals – four each of gold, silver and bronze – that will be awarded in Phuket. 

At each contest session, teams are presented with between 7 and 14 problems, and are ranked by the number of problems they complete and then by the total time it has taken to complete them.   While it is “extremely rare for a team to solve all of the problems they are presented with” according to Fleischman,  in their regional contest the winning Cornell team  and two Princeton teams did in fact solve all 9, with the Cornell team completing them in a total of 693 minutes, nearly 2 ½ hours faster than the Princeton teams. 

The four Cornell teams consist of representatives of all class years, most majoring in computer science within Arts and Sciences or Engineering.  

Winning team member Reis says “Daniel did an amazing job as coach, with weekly contests on Sundays as well as other meetings over the week in which he lectured and observed our team practices. We are very excited to go to Thailand and will keep on practicing to do well internationally.” 

Team member Are notes that each three-person team in the ACM competition must share a single computer, so there must be a good sharing strategy.  “Daniel spent a lot of time with the three of us experimenting with various strategies to see what would work best for our specific team,” says Are. 

Team member Silverman says “Daniel is unquestionably the driving force behind our ACM team and I’ve gained a lot from having him as the advisor.” 

A world-class computer programming athlete and coach

Fleischman is an old hand at the ICPC, having first competed as an undergraduate at Pontificia Universidade Catolica in Rio de Janeiro, where he was pursuing a B. S. in Applied Mathematics and Computer Engineering.   His team placed second in Brazil and traveled to the world finals in San Antonio, Texas.   The following year his team placed first in Brazil and went to the finals in Tokyo.

Since two-time competitors at the world level are no longer eligible to compete in the ICPC, Fleischman became involved in other ways, first as the director of the Rio de Janeiro regional contest and then as coach for his home university.   In 2009, by which time he was working on a Master of Science in Informatics there, he took a team to the world final in Harbin, China.

Fleischman came to Cornell as a Ph.D. student in 2010 and has served as coach since 2011.  In the 2014 New York regional contest the Cornell team he coached came in second, slightly behind a Princeton team, so close that the Cornell team was allowed to advance to the finals in Marrakech, Morocco as well.   One of the members of that team was freshman Victor Reis, who now as a sophomore is on the winning 2015 team.  Accompanying the 2014 team to Morocco was senior Saketh Are, who is also on the 2015 team.  According to Fleischman, the website Topcoder ranks Are as number 10 among the US members of the site, which has more than 900,000 members worldwide – and most of the nine ranked above him are not college students.   

Fleischman has built participation in the Cornell ACM programming club from 5 to 20 active members, with many others participating on a casual basis.  He has created a “farm system,” with some teams composed only of underclassmen, in hopes that they will perform well in subsequent years as a result of the experience. 

“I see competitive programming as a sport,” says Fleischman, who regularly participates in competitions such as Google CodeJam, Facebook HackerCup, and HackerRank World Cup, routinely placing  among the top ten in the US.  “Programming competitions have a misleading name,” he says.   “They are mainly about algorithm design, with the idea that the coding will be easy after the algorithm is clear.” 

Fleischman is particularly drawn to algorithmic design problems in the domain of optimization, particularly combinatorial optimization (of which the Traveling Salesman Problem is the epitome).   He has been programming since he was 9 years old and worked as a Google software developer, but he found the work there unsatisfying and chose to pursue graduate education in operations research instead.  “I enjoy solving hard combinatorial optimization problems by understanding the deep mathematics beneath them,” he says.   “I still use my knowledge of computer science to have an idea of whether a proposed algorithm will be fast in practice or not,” and in “putting an algorithm to work in practice.”  

For his Ph.D. research with advisor Professor David Shmoys, Fleischman is working on both combinatorial and continuous optimization, and both in theory and practice.   He is currently pursuing a combinatorial optimization problem that arises in aligning two DNA sequences in order to determine how similar they are.   “I just happened to find an interesting application in computational biology for my newest research,” he says.

Other Articles of Interest