Teaching Software Engineering with Free/Libre Open Source Projects

Teaching Software Engineering with Free/Libre Open Source Projects

Ioannis G. Stamelos (Aristotle University of Thessaloniki, Greece)
DOI: 10.4018/978-1-60960-513-1.ch005
OnDemand PDF Download:
No Current Special Offers


One of the major problems in software engineering education is the involvement of students in real world software projects. Industry projects are a solution, but in many cases they are hard to find and student participation can be problematic due to cultural, familiarization and other practical reasons. The abundance of Free / Libre Open Source Software (FLOSS) projects is a neat solution, offering multi-lingual, multi-cultural environments in virtually every application domain, at different levels of project size, maturity, organization etc. The paper analyzes how acquisition of practical experience on several basic and advanced software engineering topics can be achieved by working in a FLOSS project. The kind of skills that can be acquired are those requested by the Overview Report for Computing Curricula by ACM and topics examined are those of the Software Engineering Body of Knowledge, by IEEE. Also software engineering areas that require special care or that may not prove suitable for such treatment are identified. Various isolated teaching cases pertaining to this approach are presented and discussed.1
Chapter Preview

FLOSS projects often provide excellent examples of well-organized, successful projects producing highly effective systems. Moreover, FLOSS projects are based on open, self organized communities of volunteers, that manage to support software development, support and maintenance in an unprecedented way. This unique kind of virtual community provides an excellent environment for learning how to communicate with, cooperate with and ultimately learn from other members of the community. Knowledge generation and sharing (Sowe, 2006c) is implicit in the everyday operations of FLOSS communities.

FLOSS world is growing constantly. As an example, SourceForge2 projects grew in number from approximately 30.000 in 2005 to 177.000 in mid 2008. However, FLOSS is not a synonym for success. Most of the new projects are one, two or three developer projects with little or no activity at all and unknown future. These, and many other bigger projects, fail mainly because they do not manage to build a large, self sustained community.

A very interesting evolution of FLOSS in the last few years is the appearance of hybrid projects, i.e. projects that are run in a FLOSS way but at the same time sponsored by private companies. One recent study reported that one third of the 300 most active FLOSS projects nowadays are sponsored by private companies (Bonnacorsi, 2007).

From the above, it is evident that the FLOSS ecosystem provides a unique environment of numerous, open software projects and corresponding communities, building and maintaining not only software applications but also incredible amounts of knowledge. FLOSS has an evident impact on education, a fact that is already subject of analysis, investigation and discussion. FLOSS has already produced highly successful tools related to education, e.g. the course management system MOODLE3. Many reports are available on the use of FLOSS tools at various levels of education and education management, and significant experience has been already acquired (e.g. the Extremadura case reported in Bulchand, 2007). Major FLOSS distributions, such as the education version of UBUNTU (EDUBUNTU4) specialize on education. The on-going worldwide project of One Laptop Per Child5 is currently under development and will potentially change the way education of new generations is achieved on this planet. Finally, Tigris6 is one FLOSS forge with a special focus on student projects.

However, this paper does not deal with the use of FLOSS tools while educating. Moreover, the paper does not present an approach to teach FLOSS, although by following the proposed approach, students become very knowledgeable about and familiar with various FLOSS products and processes. The paper is meant to explore the use of the FLOSS world (communities, projects) to improve higher level education, in particular Software Engineering (SE) education. Using FLOSS projects with that purpose in higher education in general is already a reality up to some extent. Therefore, we briefly review some sporadic cases of such usage of FLOSS reported in the literature. We will use knowledge from these cases to build later a full scale model. However, most probably there are many other cases that are not yet published. For example, research on the Internet7 has revealed that in one case, students at a part time Masters Degree in Computing have been asked to investigate FLOSS code and detect design patterns that were used in it. Presumably, in the close future there will be more cases of systematic FLOSS usage in software education and they will be given more visibility.

Complete Chapter List

Search this Book: