A Course on Algorithms and Data Structures Using On-line Judging Ginés García-Mateos Dept. de Informatica y Sistemas Faculty of Computer Science University of Murcia, Murcia, Spain ginesgm@um.es José Luis Fernández-Alemán Dept. de Informatica y Sistemas Faculty of Computer Science University of Murcia, Murcia, Spain aleman@um.es ABSTRACT High dropout rates are commonly the main problem we must face in Computer Science degrees. There are two main causes of dropout: the implicit complexity of the matter, and a lack of motivation among students. The second-year programming course of our university suffered from dropout rates over 70% of the more than three hundred enrolled stu- dents. In order to overcome this problem, we have adopted a new teaching methodology based on two key ideas: replac- ing the final exam with a series of activities in a continuous evaluation context; and making those activities more appeal- ing to the students. In particular, most of the activities are designed as on-line programming competitions; they are car- ried out by using a web-based automatic evaluation system, the on-line judge. Experimental results show the high effec- tiveness of the proposed approach. On average, the dropout rate decreased to 40% while the pass rate doubled. Some strategies are used to ensure the authorship of the programs and to detect source code plagiarism. Categories and Subject Descriptors K.3.2 [Computers and education]: Computer and Infor- mation Science Education - computer science education General Terms Algorithms, Data Structures, Design, Experimentation, Hu- man Factors, Theory Keywords Active learning, experience report, on-line judging 1. INTRODUCTION Currently, educational tendencies are centered in the stu- dent’s point of view rather than the instructor’s one. A clear example of this trend is the European Space of Higher Edu- cation, whose purpose is to develop new teaching methodolo- gies based on the students’ learning process. The intention is Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ITiCSE ’2009 Paris, FRANCE Copyright 200X ACM X-XXXXX-XX-X/XX/XX ...$5.00. to create independent, reflective and life-long learners. The new methods should stimulate students interest and offer ap- pealing material, fair assessment and appropriate feedback. Based on those principles, this paper describes an innova- tive experience with a course of “Algorithms and Data Struc- tures” (ADS), using a web-based automatic judging system called Mooshak [8]. The goal of the study is to analyze the effect of this novel teaching methodology in the dropout and pass rates. Our preliminary results prove the viability of the proposal, and a high capacity to generate motivation and enthusiasm among students. The rest of the paper is organized as follows. Section 2 presents a brief review of some related work. Then, we intro- duce and justify in Section 3 the methodological approach of the proposal. Section 4 offers the main results of the learning experience applied to 337 students in a second-year course for computing majors on ADS. In Section 5, we analyze and discuss the results achieved by employing this new method- ology. The last section presents some concluding remarks and outlines the efforts to be made in the future. 2. RELATED WORK In the literature, most authors reach the same conclu- sion: learning to program is difficult [9]. For example, some studies point out that it takes approximately ten years to transform a novice into an expert programmer [11]. A large number of techniques and methods have been proposed to improve students comprehension in computer programming courses [9], both in CS1 and CS2. E-learning methods con- stitute a viable and promising alternative in programming pedagogy. Particularly, on-line judging systems have already been applied in this discipline. Guerreiro and Georgouli [7, 6] propose an e-learning ed- ucational strategy in first-year programming courses. They adopt Mooshak automatic judging system for grading lab assignments and for self-assessment purposes. Automatic evaluation accounts for about 30% of the final mark. This approach provides important benefits in a CS1 course. A well thought out set of test cases prevents wrong programs sent by students from passing test runs. As a consequence, students must be much more rigorous in developing their programs. Likewise, students obtain immediate feedback from Mooshak. Another advantage of their proposal is the objectivity of the evaluation. Moreover, the authors consider that teachers can save time and work if an automatic judg- ing system is used. Nevertheless, important concepts such as robustness and legibility need to be manually graded by the instructors.