Projects are hosted on the Free Knowledge Forge of the RedIRIS (Spanish National ... Computer Science degrees at the EHEAâ), during 2007, the course was ...
Proceedings of the 3rd Workshop on�
Methods and Cases in Computing Education
Held in Cádiz (Spain), June 30th 2010 Published by the Spanish Chapter of the ACM Special Interest Group on Computer Science Education with the collaboration of the University of Cádiz.
www.uca.es
www.sigcse.es
ISBN 978-‐84-‐694-‐0523-‐9
Methods and Cases in Computing Education by Spain ACM SIGCSE Chapter is licensed under a Creative Commons Reconocimiento 2.5 España License.
�
� Table of contents Introduction to University and the ICT Sector......................................................... 1
Davinia Hernández-‐Leo, Verónica Moreno Oliver
Collaboration and competitiveness in project-‐based learning ............................... 8
Pablo Recio Quijano, Noelia Sales Montes, Antonio García Domínguez, Manuel Palomo Duarte
Case of an online course: Java Programming....................................................... 15
Ángel García-‐Beltrán
Adapting LEARN-‐SQL to Database computer-‐supported cooperative learning ................................................................................................................ 22
Xavier Burgués, Carme Martín, Carme Quer, Alberto Abelló, M. José Casany, Toni Urpí, M. Elena Rodríguez
iii �
Collaboration and competitiveness in project-‐ based learning Pablo Recio Quijano (1), Noelia Sales Montes (1), Antonio García Domínguez (2), Manuel Palomo Duarte (2) Department of Computer Languages and Systems, University of Cádiz C/ Chile nº 1, Cádiz (Spain) ����������������������������������������������������
(1)
(2)
Department of Computer Languages and Systems, University of Cádiz C/ Chile nº 1, Cádiz (Spain) �����������������������������������������������
�
Abstract This paper presents the methodology used in the “Video Game Design” course of the Technical Engineering in Computer Systems (“Ingeniería Técnica en Informática de Sistemas”) degree at the University of Cádiz. This methodology combines collaboration and competition with a strong commitment to free software. On the one hand, students develop video games in teams. On the other hand, grading partially depends on the place obtained in a competition between expert system rulesets developed by the students for a board game exclusively developed for it.
1. Introduction In recent years, the importance of the video game and electronic entertainment industries has greatly increased. Universities are gradually incorporating their design and implementation in their curricula. At the University of Cádiz, these topics are taught in the “Video Game Design” course of its degree on Technical Engineering in Computer Systems (“Ingeniería Técnica en Informática de Sistemas”). The course is divided into two parts. In the first part, students are organized into three-‐person teams to develop a video game, following a project-‐based learning approach (Mills & Treagust, 2003). This part is a collaborative experience in medium-‐scale project development in small groups. Projects are hosted on the Free Knowledge Forge of the RedIRIS (Spanish National Research and Education Network) Community to increase their visibility and let students use latest generation tools. In the second part, students learn about expert systems: a branch of artificial intelligence suited for problems with partial knowledge of the environment (Russell & Norvig, 2009). Students develop an expert system which implements a strategy to play a predefined board game in which two armies move by turns. Students compete against each other by running their expert systems in a predefined environment which implements the game itself. Grading in this part of the course depends on the results obtained in the competition.
2. Course syllabus “Video Game Design” is an optional course of the third year of the Technical Engineering in Computer Systems (“Ingeniería Técnica en Informática de Sistemas”) degree at the University of Cadiz. It is worth 6 LRU credits (4.5 ECTS credits), which are equally divided into lectures and practical sessions. There are two weekly sessions of two hours each during the second term (from February to June). The course integrates knowledge about several IT branches, such as 8 �
programming, artificial intelligence, physics, modeling, group work, etc. The course has been taught since the 2006–2007 academic year, using a project-‐based learning for most of the course except for the competition. Since its inception, the course has been strongly committed to using high-‐quality free software, according to the “Institutional Declaration of Support of Free Software” approved by the Governing Council of the University of Cádiz (Universidad de Cádiz, 2004). This commitment is not only due to the ethical responsibility of the University as a public educational organization, but also to the practical benefits linked with the use of free software in education (González Barahona et al., 2004). Free software can contribute to achieve the objectives established by the European Higher Education Area (EHEA) (García & Rodríguez & Palomo, 2008). Students have access to bleeding-‐ edge tools and all information produced during their development, regardless of their economic situation. They can analyze and modify the program for learning and experimenting, and obtain skills as task management, architectural design, software configuration control and other high-‐ level skills. Additionally, free software also tends to be more accessible to disabled users, offer translations in more languages and better conform to existing standards. All these features require specific techniques that students can learn from the code and the developer community, making them more competitive in the labor market. Finally, some of the free software projects are more successful than others: students may see directly what were the key factors and keep them in mind for their own initiatives. After the insights obtained in the Teacher Training Group GFUCA17 (“Course adaptations for Computer Science degrees at the EHEA”), during 2007, the course was included into the Educational Innovation Project IE-‐26. In 2009, the course was part of the EHEA Adaptation Pilot Experience of the degree and the Teaching Innovation Action “Usage of Web 2.0 collaborative technologies to encourage student teamwork”. These initiatives are part of the Europe Project of the University of Cádiz.
3. Video game development In the collaborative part of the course, students develop a video game in groups of three and release it as free software. All code is publicly available, but evaluation is done in class using templates previously agreed with the students. 3.1. Software forge A software forge is an on-‐line environment that provides several tools that simplify collaborative development and eases distributed work. Current forges feature mailing lists, forums, task and bug trackers, content syndication feeds and wikis, among others. These tools provide constant up-‐ to-‐date information which allows the teacher to efficiently and closely follow the students’ progress. Among these collaboration tools, version control systems (such as Subversion) play a key role in enabling the collaboration between the students in each group. Most work is done in a distributed fashion, as differing group member schedules make face-‐to-‐face meetings hard to plan. Version control systems let each student plan their own work in a flexible manner and stay in sync with the rest of the group. The basic workflow with Subversion is as follows: when the project begins, students create a 9 �
repository with a basic directory structure. At the start of each working session, every developer updates their working copy to the latest revision of the contents of the repository. After making their contributions (new features, bug fixes, etc.), these are committed as new revisions. If in the meantime another developer has sent more contributions, Subversion will merge the changes introduced by both. More advanced workflows exist, but this is often enough for the projects developed in the course. Subversion’s advantages do not end there: the system keeps all intermediate versions of the program resulting from each contribution of each user. Every revision includes the author’s name, its date and time and a description message. This enables all users to fetch any version of the program, either by its version number (1.0) or its date and time (yesterday at 15:00). This information can also be used, for example, to compare different versions of a file. Moreover, the forge is publicly available, so anyone interested in the video games can download them and spread the word. 3.2. Results Table 1 reports several statistics for the nine projects carried out during the 2008–2009 academic year (Free Software and Knowledge Office of the University of Cádiz, 2009). Average values for each project and student are shown as well. Table 1. Statistics for the 2008–2009 academic year Metric
9 projects
Proj. average.
Student average
964
107.11
37.08
Total files (raw)
3516
390.67
135.23
Total code files (.h + .cpp)
1096
121.78
42.15
Total lines (raw)
286495
31832.78
11019.04
Total code lines (.h + .cpp)
177884
19764.89
6841.69
Number of additions
3724
413.78
143.23
Number of modifications
1462
162.44
56.23
Revisions (commits)
There is a large difference between the raw file count and the code file count and the raw total lines and code total lines. This is because the projects use Doxygen (Van Heesch, 2010). to produce large amounts of HTML documentation automatically from the C.2ex++ sources. The data has been obtained using StatSVN (Appendium, 2010) and the RedIRIS software forge. StatSVN is a full-‐featured free software tool that generates statistics of a project from its SVN repository. It also provides information about the work from each developer. For instance, it can show the distribution of work over the term and over the week. Using this data we can classify the students over several profiles. For example, some students like to work during the night (with almost 40% of their contributions done after midnight), while the rest do the work during the entire day. Regarding weekdays, some groups work on the project during class, so their contributions are focused in working days, and other students work on 10 �
weekends. There are some common patterns, though: contribution rate always increases in the last few days before each monthly presentation. We conclude that, in general, the students have produced a considerable amount of work bearing in mind that this is an optional 4-‐month course. Each student has sent on average over 37 contributions and has produced more than 40 files. The 177884 lines of source code have generated nearly 110000 lines of documentation.
4. Competition between expert systems In the competitive part, students face each other with the expert systems they have developed to play a board game similar to Stratego (Palomo, 2007). The game pits two armies made up by several pieces against each other. Every piece has an associated value that is initially only visible to its owner. When two pieces face each other, their values are revealed and the lowest valued piece is removed from the board (“dies”). If both pieces have the same value, both pieces die. The objective of the game is to capture the opponent’s lowest valued piece. 4.1. Development To perform the competition, a free software tool which provides a common environment where the expert systems can face off each other has been developed: Resistencia en Cádiz: 1812 (Recio, 2010). Using this application, the students can test their expert systems against other expert systems and themselves. This helps students improve their modules and make their systems stronger. Figure 1 shows a screenshot of a game between two teams, with some pieces uncovered.
Fig. 1: Screenshot of a match in “Resistencia en Cádiz: 1812” Near the end of the course, 2 weeks are used to perform this experience. A 1-‐hour lecture 11 �
provides the required conceptual foundations behind rule-‐based expert systems, emphasizing their practical applications in science and engineering. The second hour of this first session is used to show the main application, so they can get familiar with the environment they are going to use. In this session some sample rules will be shown, from simple cases to a reasonably complex system. The application is easy to learn and use, so the practical session of that week can be used to code a basic ruleset, so they can be improved at home. They can test their rulesets against some examples included in the system. Two features are very useful for learning. First, it can play a very large set of games automatically, showing general statistics of the behavior of the ruleset. Second, human players can play directly against an expert system and test how it behaves under certain situations. Lecture time for the second week is used to organize a league which faces all students against each other. Figure 2 shows a screenshot with results from a round and the resulting overall ranking.
Fig. 2: Results on a league-‐format competition Usually, students identify issues and weak points in their systems during the competition, so they have an extra hour during the last week’s practical session to improve their ruleset. The last hour is used to play a shorter tournament with their improved teams. 4.2. Evaluation In order to pass this part of the course, the student only needs to defeat a naive (“sparring”) team that is included in the system. This lets the student pass this part with confidence, even if the ruleset ends up in last place in the following competition. If they want to get a better score, students need to win against their classmates. Students get an extra point for each of: winning once during the league, being in the top half of the league, passing each of the two play-‐off rounds and winning a tournament. The experience has been rewarding both for the students and the teacher. Students were on average much more interested in this course than in others, judging from the surveys conducted near the end of the term. Results showed a very high score in that attribute, with 4.77 points over 5. 12 �
Students reported that they felt more motivated due to competing with their peers through their work, rather than speed or reflexes, as usual in most video games. Students enjoyed developing a program and seeing it play a game following a strategy without their intervention.
5. Conclusions We have presented two educational experiences which, combined in a course, focus learning around the student. Students of the “Video Game Design” course collaborate with each other and build up teamwork skills on the one hand, and learn new concepts by competing against each other on the other. Students have worked together as teams during the whole course, generating 177884 lines of code at an uniform pace. Using StatSVN, we identified several patterns during their development. Every video game is available at the RedIRIS software forge for download. The competitive part of the course has been well received by the students, being scored with 4.77 points over 5 in the surveys conducted at the end of the course. Students felt more motivated since the ranking of their expert system among their peers’ influenced their grades. Future editions of the course will mostly preserve its current structure. The collaborative part will mostly be kept as is. However, the rules of the competitive game will be slightly changed over time, so students will not copy the winner strategies of the past courses.
Acknowledgments This work has been funded for the Acción de Innovación Educativa Universitaria del Personal Docente e Investigador “Empleo de tecnologías colaborativas web 2.0 para fomentar el trabajo en equipo del alumnado” (PIE-‐101) belonging to the Proyecto Europa de la Universidad de Cádiz, funded by the Consejería de Innovación, Ciencia y Empresa of the Junta de Andalucía, the Ministerio de Educación y Ciencia and the University of Cádiz.
References Álvarez, A., Palomo, M., Rodríguez, J.R. (2009). Experiencias en la aplicación de técnicas y herramientas de desarrollo colaborativo de software en una asignatura basada en proyectos. Actas del XVII Congreso de Innovación Educativa en las Enseñanzas Técnicas. Appendium (2010). Homepage of the StatSVN project. ������������������������ Free Software and Knowledge Office of the University of Cádiz (2009). Proyectos de Diseño de Videojuegos curso 2008/9. ��������������������������� González Barahona, J., Matellán Olivera, V., de las Heras Quirós, P., Robles, G., eds. (2004). Sobre software libre: compilación de ensayos sobre software libre. Dykinson I. García, A., Rodríguez, R., Palomo, M. (2008). El software libre en el EEES. Actas del Congreso internacional sobre investigación educativa. page101–page120 Mills, J.E., Treagust, D.F. (2003). Engineering education: Is Problem-‐Based or Project-‐Based learning the answer? Australasian Journal of Engineering Education(3) page2–page16 Palomo, M. (2007). La competitividad como un factor motivante para el aprendizaje de sistemas expertos. Actas de las II Jornadas Nacionales de Intercambio de Experiencias Piloto de Implantación de Metodologías ECTS. 13 �
Recio Quijano, P. (2010). Homepage of the Resistencia en Cádiz: 1812 project. ������������� ��������������������������� Russell, S., Norvig, P. (2009). Artificial Intelligence: A Modern Approach. 3rd ed. Prentice Hall Spanish Network for Research. Free forge RedIRIS. ������������������������ Universidad de Cádiz. (2004). Acuerdo del Consejo de Gobierno de 15 de marzo de 2004, por la que se aprueba la adhesión a la declaración institucional de apoyo al uso de Software Libre en la Universidad de Cádiz. Boletín Oficial de la Universidad de Cádiz (9) page78–page79 Universidad de Cádiz. Convocatoria de Proyectos de Innovación Educativa Universitaria del Proyecto Europa. http://www.uca.es/web/estudios/proyecto_europa/ Van Heesch, D. (2010). Homepage of the Doxygen project. http://www.doxygen.org/
14 �