An Experience on Ada Programming Using On-Line Judging

Ada has proved to be one of the best languages to learn computer programming. Nevertheless, learning to program is difficult and when it is combined with lack of motivation by the students, dropout rates can reach up to 70%. In order to face up to this problem, we have developed a first-year course for computing majors on programming based on two key ideas: supplementing the final exam with a series of activities in a continuous evaluation context; and making those activities more appealing to the students. In particular, some of the activities are designed as on-line Ada programming competitions; they are carried out by using a web-based automatic evaluation system, the on-line judge. Human instructors remain essential to assess the quality of the code. To ensure the authorship of the programs, a source-code plagiarism detection environment is used. Experimental results show the effectiveness of the proposed approach. The dropout rate decreased from 61% in the autumn semester 2007 to 48% in the autumn semester 2008.

[1]  Kim B. Bruce Controversy on how to teach CS 1: a discussion on the SIGCSE-members mailing list , 2004, ACM SIGCSE Bull..

[2]  James F. Bowring,et al.  A new paradigm for programming competitions , 2008, SIGCSE '08.

[3]  Benjamin S. Bloom,et al.  Taxonomy of Educational Objectives: The Classification of Educational Goals. , 1957 .

[4]  B. Bloom Taxonomy of educational objectives , 1956 .

[5]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[6]  José Paulo Leal,et al.  Mooshak: a Web‐based multi‐site programming contest system , 2003, Softw. Pract. Exp..

[7]  Kim B. Bruce Controversy on how to teach CS 1: a discussion on the SIGCSE-members mailing list , 2004, SGCS.

[8]  M. R. Woodward,et al.  Mutation testing - its origin and evolution , 1993, Inf. Softw. Technol..

[9]  Stuart Reges,et al.  Back to basics in CS1 and CS2 , 2006, SIGCSE '06.

[10]  Charalambos Vrasidas Issues of pedagogy and design in e-learning systems , 2004, SAC '04.

[11]  Katerina Georgouli,et al.  Combating anonymousness in populous CS1 and CS2 courses , 2006, ITICSE '06.

[12]  Jesús J. García Molina Una introducción a la programación: un enfoque algorítmico , 2005 .

[13]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[14]  Manuel Cebrián,et al.  Towards the Validation of Plagiarism Detection Tools by Means of Grammar Evolution , 2009, IEEE Transactions on Evolutionary Computation.