We claim that competitive elements can improve thequality of programming and algorithms courses. To test this, weused our experience from organising national and internationalprogramming competitions to design and evaluate two differentcontests in an introductory algorithms course. The first contestturned lab assignments into a competition, where two groups rancompetitions and two were control groups and did not compete.The second, voluntary, contest, consisting of 15 internationalprogramming competition style problems, was designed tosupport student skill acquisition by providing them withopportunities for deliberate practise. We found that competitiveelements do influence student behaviour and our mainconclusions from the experiment are that students really likecompetitions, that the competition design is very important forthe resulting behaviour of the students, and that active studentsperform better on exams.
We also report on an extra-curricular activity in the form of asemester long programming competition as a way of supportingstudent's deliberate practise in computer programming.