FKFT - 2008
Free Knowledge Free Technology
The SELF Conference 2008
| Speakers | |
|---|---|
|
|
Gregorio Robles |
| Schedule | |
|---|---|
| Day | Third FKFT day (2008-07-17) |
| Room | Plenary Sessions |
| Start time | 10:00 |
| Duration | 00:30 |
| Info | |
| ID | 73 |
| Event type | |
| Track | Educating in Freedom |
| Language used for presentation | |
Teaching Software Development in Community-Driven Software Projects
A Practical Experience
The author has submitted a full-length paper:
http://fkft.eu/2008/papers/robles.pdf
Libre software has gained in recent times a major attention in industry and academia. Due to its importance and impact on industry over the last years, higher education institutions have adopted the development of libre software in their academic programs. However, in developing real libre software projects, several key issues are hard to be reproduced in traditional academic curricula, such as a community-driven approach. This is an essential aspect to both engage and manage contributors in the project. Indeed, libre software projects typically considers a sense of "community" in the software engineering process, which involves important and complex issues, such as intellectual property and external contributions management, as the very rationale of this phenomenon.
Despite many post-graduate degrees have been proposed and implemented so far on libre software in quite a few high educational institutions all over the world, their curricula have shown important barriers and deficiencies. To the best of our knowledge, there is no academic experience that provides students with theoretical and practical expertise on how to manage a project, to design and set-up the required infrastructure, to attract and manage external contributions, etc. The closest efforts to this direction are certain university courses where students are invited to join libre software projects and to collaborate with them. Even though this represents an important step toward this direction, we think this is not sufficient.
In general, academic programs addressing libre software can be classified into two groups: those that focus on the philosophical, social, economic and management issues and those that are more concerned with the technical parts of the phenomenon, providing technological insight into libre software technologies. The first group is basically theoretical whereas the second presents the most important libre software products, such as Apache, GNOME, and KDE. Despite the technical skills that are required to work with these technologies are involved, these programs lack of any interaction with the community.
This paper presents a novel approach for teaching libre software development that the authors have introduced at the Universitat Oberta de Catalunya (UOC). The UOC (http://www.uoc.edu) is located in Barcelona, Spain, and offers full distance education through the Internet since 1995. The virtual campus supports currently about 40,000 students, lecturers and tutors who are involved in 600 on-line courses from 23 official degrees and other PhD and post-graduate programs. The experience reported here is based on an on-line master course at the UOC as part of the curricula of an official post-graduate degree on libre software, which has been put in practice in five semesters with around 30 students over the last two years. As part of this degree's curricula, students have to perform a master thesis course that accounts for 15 ECTS. ECTS stands for European Credit Transfer and Accumulation System, which is for measuring and comparing the study burden and attainment in higher education across the European Union. One ECTS accounts for 20 to 30 hours of learning, including reading materials, class discussions, lectures, homework, exams, etc.). Therefore, the proposed course accounts for 300-450 hours of effort on the student side.
Besides technical aspects, community related issues are incorporated in this course. These include how to lower the barrier of entry for new contributors, how to manage external contributions, how to perform release management, what type of infrastructure is required and how to set it up, etc. Once the course is over, the student should be completely familiarized with the tools used for collaborative development in the libre software world as well as those used for the communication exchange of the various agents that participate in it. >From this knowledge, student are able to create and launch their own software project or to become part of an existing one.