Evaluation of Robocode as a Teaching Tool for Computer Programming

Robocode began as an educational tool to aid in learning Java programming. It has since evolved into something of a phenomenon, as the prospect of creating simple to complex virtual tanks appears to pose an attractive challenge to both novice and expert programmers alike. What started out as a teaching tool has grown into a worldwide network of competitors, all keen to prove that their ‘bot’ stands out from the crowd. Competitions are well organised and many Robocode events are a PR dream for the computing companies that sponsor them. Without a doubt, this easy to use application has sparked the imagination of the world of programming. This is especially evident in the number of higher education institutes that regularly hold competitions for their computing and engineering students, often inviting participants from other colleges. In Ireland alone, a major national event for third level students is held annually at the Tipperary Institute. Sponsors have included the likes of Microsoft and Lenovo and students from most Irish universities and colleges have taken part. This is merely a scenario that has been mimicked across the globe. A cursory browse through a typical computing faculty website will likely reveal a reference to Robocode. This paper attempts to look back to the roots of Robocode, and evaluate its merits as a teaching tool whether for use inside or outside the classroom. The detailed results of a survey are presented, showing the responses of students who have used the tool in a number of capacities, more specifically, an evaluation by those who have participated in the national competition or merely used the tool as part of their programming course work. Lecturers have also been asked for an evaluation to gauge its effect on programming students. With so many willing to dedicate extracurricular time to participate, it is worth investigating what ignited this spark in the first place. What motivates a student or indeed any programmer to want to develop a robot tank that fires bullets, and, attempts to dodge the bullets of other tanks?