10 August 2009
Dyalog Announces Winners of Worldwide Computer Programming Contest 2009
250 downloaded free educational license and this resulted in 27 submissions from all regions of the globe.
Dyalog Ltd is pleased to announce the winners of the Grand Prize, Second and Third Prize Winners of the 2009 Worldwide Computer Programming Contest as follows:
First Prize - Ronald Chan for his exceptional effort. The judges comments as follows:
"Ronald's submission showed impressive insight and analysis of the problems and the underlying mathematics, good use of classes. His submission ran considerably faster than any other entry. Ronald documented his solutions very well and many of his solutions were of a form to solve more general problems than the specific Project Euler problem presented. His efforts included error checking to capture invalid inputs".
Second Place - Chris King. The judges comments as follows:
"What set Chris' entry apart was the brevity and compactness of his solutions. He made extensive use of operators, reduction, composition, power limit, compose.& A good example of APL as a tool of thought".
Third Place - Maks Verver. The judges comments as follows:
"Maks had a commendable entry with good documentation, good use of APL, and good insight into the problems presented".
Ronald, soon to be Bachelor of Engineering (Hons) – Mechatronics Engineering (Accelerated Pathway), is currently studying at The University of Auckland, New Zealand.
Ronald comments on his First Prize win, "I am quite excited to have achieved this placing, and look forward to the trip to the conference in September. I heard about the contest from a email from a lecturer at university. Michael Dinneen organises the programming contests held on site at university. These contests include the New Zealand Programming Contest, and sometimes others. Shortly after the New Zealand programming contest, is the ACM regional programming contest, which I will be doing later this year, in hopes of getting a place to the international contest. The ACM contest is held at AUT, which is a tertiary institution right next to my university".
"As for the contest, you would have seen that I went to the IOI, and IMO. Those olympiads really gave me the skills to do this contest effectively. I have had no prior APL experience. In fact, I had not even heard of this language before. However, my mathematics experience has allowed me to simplify some of the problems, and my programming experience contributed dynamic programming to solve other problems".
"As soon as I saw how easy the 20 questions were, I immediately thought that many competitors would be able to do all questions. Compared to questions I have seen in the Olympiads, it was clear. So I decided to heavily optimize runtime for the questions. In optimizing the runtime, I drew on what I knew about computers and programming languages in general. For example, I implemented binary search with iteration instead of recursion. And I was careful about the amount of interpretation required, in some cases trading off overall algorithmic complexity if the asymtotic time needed for interpretation could be reduced. I also heavily optimized the prime searching class/functions. For example, using the sieve of erasthosthenes, I only strike out odd multiples of a prime, and only starting from the prime squared. This is still good because it is an arithmetic progression, but with the benefit of fewer array elements to set".
"I suppose the above show that I have had the enviable position of experience in both mathematics and programming, and guessed that many others would get 20/20".
As Ronald mentioned above he was referred to
the Programming Contest by Michael J. Dinneen from the Department of
Computer Science at the University of Auckland.
Michael says,"I teach here at the University of Auckland and organize the local programming contests (NZ and ACM), where I met Ronald who started competing in the High School level and now at our top University level. We are all very proud of Ronald's achievement and recognize his potential as a top-notch problem solver and programmer".
Chris is 24 years old and working on his Ph.D. in Computer Science at Brown University, Rhode Island, USA specializing in programming languages.
He was referred to the Programming Contest by Maurice Herlihy who is a professor of Computer Science at Brown University. Professor Herlihy’s research areas include multiprocessor synchronization and distributed computing.
Chris says, "I've always had a love for learning new languages, ever since my dad taught me BASIC as a wee lad. Prior to the contest I had never written a line of APL, so it proved to be a great learning experience for me.This was a fun and educational contest. Thank you for running it!"
He continues, "Prof Herlihy is perhaps best known for his work on transactional memory, which he introduced with J. Eliot B. Moss in 1993. He's also the recipient of the 2003 Dijkstra prize and the 2004 Gödel prize, and is an ACM Fellow. I highly recommend his multiprocessor synchronization course".
Maks is a 26-year-old Computer Science student from the Netherlands, with a primarily imperative programming background (C and C++). He also has an interest in alternative programming paradigms.
Maks says, "In an attempt to explore what appeared to be an interesting and quite unique environment I had applied for a Dyalog educational licence a few years ago, but lacking a concrete goal to work towards I didn't get very far. However, I did end up on the Dyalog mailing list, which is where I read the contest announcement".
"Programming contests have always interested me (and I have participated in several) so this was the perfect opportunity for me to revisit APL. I installed the latest version of Dyalog and by working through the Project Euler problems I gained some experience in solving this type of problems using APL. By the end I felt that I had learned so much that I went back and rewrote almost everything, to arrive at what I hoped would be properly structured and polished solutions".
"My overall experience with the Dyalog development environment was quite enjoyable, and I found APL to be a very capable language; I hope I will be able to use it again in the future".