[“hip”, “hip”]: Hip hip array!
On March 6, two Mt. A teams competed in the Northeast North America Regional programming competition, the NENA, one of the levels of competition in the International Collegiate Programming Collegiate. After five hours with a challenging problem set and tough competition, one Mount Allison team, nicknamed MTA (10)*emerged as the top competitor from Atlantic Canada, placing tenth out of forty-five teams and being one of eleven teams to progress to the next level of competition. Crystal Sharpe, Logan Pipes, and Matt MacLean are excited to represent Mount Allison at the divisional championship later this spring.
Dr. Liam Keliher, associate professor in the math and computer science department, coaches competitive programmers at Mt. A. “Competitive programming is an activity in which teams of university students take part in intense programming contests that require them to tackle sets of challenging algorithmic problems,” he explained. “A team that performs well is able to advance to higher levels of competition, culminating the annual World Finals, which is very prestigious.” The NENA is one of the eleven regional contests in North America. “NENA is one of the toughest regions in North America, since it includes powerhouse universities like MIT and Harvard,” said Keliher. Mt. A students began programming competitively in 1998 and has had strong performances in Atlantic Canada and regional competitions since 2015. In the 2016-2017 year, a Mt. A team advanced to the World Finals.
Crystal Sharpe is a second year cognitive science student and the member of MTA (10)* with the most competitive programming experience. She enjoys solving challenging problems unlike those seen in her classes. “It’s a good way to get really fluent in a particular programming language,” she said. “Also, the skills you learn beyond the programming knowledge, like communication skills and troubleshooting, are applicable in so many other fields.” This competition was different from previous years, she said, which made it challenging in some ways but exciting and enjoyable in others. Consisting of 18 problems, the problem set was almost twice as large as typical sets, and changes were made to accommodate for public health concerns. “Usually you have one computer among the three of you, but this time we all worked remotely over Zoom and had our own devices,” she said. “When each of you has a computer, you have a completely different strategy for distributing the work.”
Logan Pipes, a first year mathematics student, and Matt MacLean, a first year computer science student, are new to competitive programming and were excited to compete at this level for the first time. “I’ve really enjoyed programming for a long time, but I didn’t have competition experience,” said Pipes. “Most of what I enjoyed doing wasn’t building things, but solving little exercises.” This is what drew him to competitive programming. “Competitive programming is more exercise-based, rather than building things that do things,” he said. “It’s a lot more fundamental, figuring out the right algorithms to do this and that and to develop efficient solutions for very specific problems.” MacLean, a mature student training with the military, saw competitive programming as an opportunity to learn in a very hands-on way. “There’s a really big benefit and opportunity in competition,” he said. “Working with people who are more experienced programmers than I am and trying to solve hard problems is really the fastest way to learn.”
As a tradition for these competitions, the scoreboard closes for the last hour to create suspense, and the final results are announced a little while after the contest ends. However, MTA (10)* knew before the results were officially announced that they would be moving on. “Doing some back-of-the-napkin math after the scoreboard closed, we figured out that we would move on no matter what,” said Pipes, adding that there was much celebration in their Zoom room upon completing the contest. Other top-placing schools included MIT, Harvard University, and McGill University. No other Atlantic Canadian school will advance to the divisional level.
Given the calibre of competition at the NENA, Pipes is a little nervous about the next level. “There will be the teams that beat us, plus the top teams from all the other regionals. I’m less optimistic, but still very excited,” he said. Sharpe is unsure of what to expect. “[The ICPC] hasn’t yet specified which universities are in which divisions, so we aren’t yet sure exactly who we’re competing against, but it will be nice to compete against schools we’ve never seen before,” she said. Regardless of their performance at the divisional championship, Sharpe said she is excited to continue working with Pipes and MacLean in the future. “Not being upper-year students, we still have lots of time to practice and learn as individuals and as a team,” she said.
Alex Giroux, a first year computer science student, and Sam Chambré, a fifth year computer science and math student, were members of Mount Allison’s other programming team competing in the NENA. This was Giroux’s first ever competition, and he was a little intimidated by the reputation of the other teams. “But if anything that’s just more motivating, because I want to go to higher levels with this, and continue attending competitions,” said Giroux. He is coming back to school from a second degree after discovering a love of programming. “I’m really determined to learn from my mistakes and be a better student than I was, and take advantage of any opportunity to get really good at something. And I’m not yet,” he said, “but it’s valuable to confront yourself with what you don’t know and to spend time with people who do know.”
Chambré has been involved in competitive programming for a few years. “I think that competitive programming is a great way to improve your coding skills, especially if you’re relatively new to the language you’re coding in,” he said. “Competing on a team at competitions also provides excellent experience for working in collaboration with others to achieve a common goal.” Keliher said that competitive programming is a great way for students to improve their programming and problem-solving skills. “Most students find that these activities complement and enhance what they are learning in their computer science and math courses,” he said. “They’re also a good way to meet other like-minded students.” MacLean believes the skills he has learned through competitive programming provide a general framework for approaching problems. “I’ve learned how applicable to all sorts of problems the algorithmic approach competitive programming teaches you is. It’s really a toolbox for problem-solving in general,” he explained. “Project management, teamwork and collaboration, communication, creativity, it’s all there, while strengthening your theoretical and algorithmic knowledge.”
The competitive programming club at Mt. A is open to anyone interested in learning about programming, even to those with limited experience and those who do not want to compete. Students interested in learning more about competitive programming are encouraged to reach out to Dr. Keliher (firstname.lastname@example.org) for more information. More information about the ICPC and their various levels of competitions can be found online (https://icpc.global). Interested in looking at or trying the problems from the NENA Regional? The problem set is available through the programming website Kattis (nena20.kattis.com).