Through 2003 to 2005 I participated in the ACM ICPC university programming competitions for the University of New Brunswick. I made the world finals in both 2003 and 2005. Participating and training for these competitions are some of my most vivid and fun memories from my undergraduate years. I learned more about algorithms, data structures, language syntax, attention to detail, and problem solving during these years than I ever did in my classes.
In the Fall of 2005, I moved from New Brunswick to Victoria, BC to start my PhD and I “retired” from the ACM ICPC programming scene. However, in Fall 2008 I was approached by some UVic faculty to be involved with starting a team. The university hadn’t had a team in close to 20 years. I originally promised my wife that my involvement would be minor, as she still clearly remembers my programming obsessed years of 15+ hours of practice a week, but once I started talking about the contests again, it was difficult to stop. I was quickly sucked back into the world of programming contests.
I agreed to be the coach for the UVic team and I spent 3-4 weeks trying to get the team up to speed. In November, 2008, I took them to Vancouver, where they competed in the Pacific Northwest regional, placing 30th out of 82 teams.
The guys could have easily been in the top 20 with a little luck and more experience, as a simple mistake on their second problem cost them close to 2 hours in debug time. However, I was extremely proud of their effort and how they came back after that initial set back.
Following the regional competition, I started a problem of the week challenge as an attempt to recruit other undergraduates that might be interested in participating in the competitions. Each week I post a new problem. Based on the difficulty of the problem, a solution is worth different amounts of points. I keep track of what people solve and I help the students either with solving the problem or debugging their code. You can check out the problems on our website: http://www.csc.uvic.ca/content/contest/?q=node/8
As a consequence of becoming the coach, I also ended up getting back into contest coding and competing myself by participating on TopCoder. I also convinced my good friend Oleg Golubitsky to compete and I now think he’s more obsessed than me :-).
As another strategy to get students involved, I decided to organize a programming competition for undergraduates in the Spring of 2009. This contest is set to happen in less than 2 weeks on Jan. 31st. While at UNB, I ran several such competitions, and they were always a great experience. Myself and another member of my research lab, Ian Bull, wrote the problems and Oleg wrote alternative solutions to help us verify our judge’s solutions. We plan to have prizes for best 1st, 2nd, 3rd, and 4th year student along with best overall and perhaps some door prizes.
I also started weekly practice sessions and myself plus an instructor (Jason Corless) at UVic recruited students for this by going around to classrooms and telling people about the contests. We’ve had two practice sessions so far and they have been going reasonably well. The first week there were about 15 students and the second week there were 9 or 10. Many of the students solved one problem the first week and the second week everyone solved at least one. Last week, I offered a prize to the first person to solve two problems. Ryan Petty ended up winning a Coffee Crisp for his effort :-). I’m hoping I can keep the numbers up so that we can send 2-3 teams next year to the regional.
This brings my programming competition story up to date. I’ll be continuing to chronicle this experience as well as discuss solutions to various programming problems.
championship belts