IMPA: A Challenge-Based University-Level Programming Competition

Jump to: navigation, search

IMPA: A Challenge-Based University-Level Programming Competition

Fredrik Heintz Tommy Fa ̈rnqvist

Department of Computer and Information Science Linko ̈ping University, Sweden {fredrik.heintz, tommy.farnqvist} Writing computer programs is a craft. Academic courses in computer programming teach basic concepts and fundamentals, but to become a good programmer a great deal of time dedicated to training with an emphasis on quality has to be invested by the student. There are studies indicating that it takes around ten years to transform a programming novice into an expert [1, 4]. To become an expert it is necessary to engage in deliberate practice, activities that are designed to lead to improvements of specific aspects of performance [1]. These activities should stretch an individual just beyond his or her current abilities, provide immediate feedback on the result, be repeated multiple times, and require significant effort and full concentration.

To provide appropriate deliberate practice in computer programming to students at Linko ̈ping Uni- versity we have started a championship in algorithmic problem solving [2]. To this end, we have created a web-based system, interfacing the UVa Online Judge [3], allowing us to create a compe- tition system using an existing automatic judge. The current competition is individual and runs the whole semester. Every week each student receives three selected problems of varying difficulty with a common theme. This give us as organizers the opportunity to guide the training of the students. A student can also at any time create a challenge of a particular difficulty, which means that a problem of the desired difficulty is randomly selected from a large database of categorized problems. To support feedback directly from other students, the contest design encourages other students to solve the same problem and discuss these in a forum. To support detailed feedback on solutions the threads in the fo- rum can be locked to only those that have solved the problem being discussed. Students therefore both get immediate feedback from an automatic judge and detailed feedback from other students as well as the organizers. Multiple related problems of increasing difficulty provides repetition and stretches the students abilities. Since solving these problems always require intense effort and concentration all the conditions for deliberate practice are satisfied by the competition. The competition started in 2009 and is continually improved. This semester we have 20 active participants that together have solved more than 240 problems.


  1. K. A. Ericsson, K. Nandagopal, and R. W. Roring. Toward a science of exceptional achievement: Attaining superior performance through deliberate practice. Annals of New York Academy of Sci- ence, pages 199–217, 2009.
  2. IMPA, 2012. URL
  3. UVa Online Judge, 2012. URL
  4. L. E. Winslow. Programming pedagogy - a psychological overview. ACM SIGCSE Bulletin, 28 (3):17–22, 1996.