Teaching Programming with a Competitive Attitude to Foster Group Spirit

Socialization is an important aspect of university life. We believe that if students feel that they fit in the group, their commitment will be higher and their results will be better. In introductory programming courses, most tasks are elementary and are usually performed on an individual basis. If we manage to give greater visibility to those lonely activities, students will find out that the difficulties they face are shared by many, and realize that they are not alone. We do that by adding a competitive flavour to the tasks in the course. For example, programming assignments are modelled after programming competitions; quizzes are given after each lecture, students get points for it, and a ranking is kept, much like those in some sports; we organize tournaments, where students’ programs play against one another in a computer game. This provides a supplement of excitement to tasks that otherwise might be uninteresting to newcomers, and fosters group spirit. As a consequence, student participation is higher and results were better than before.