Involving Software Engineering Students in Open Source Software Projects: Experiences from a Pilot Study

Journal of Information Systems Education, Winter 2007 by Sowe, Sulayman K, Stamelos, Ioannis G

ABSTRACT

Anecdotal and research evidences show that the Free and Open Source Software (F/OSS) development model has produced a paradigm shift in the way we develop, support, and distribute software. This shift is not only redefining the software industry but also the way we teach and learn in our software engineering (SE) courses. But for many universities F/OSS is seen as an optional low cost technology to support the IT infrastructure and administrational duties. Few see F/OSS as an opportunity for students to learn the SE concepts and skills we teach. Furthermore, it is still an open question as to whether the F/OSS methodology can be effectively used to teach SE courses within the formally structured curriculum in most universities. This paper discusses F/OSS projects as bazaars of learning that offer a meaningful learning context. The discussion is centered on a pilot study in which students were involved in software testing in F/OSS projects. We present the teaching and learning framework we used in the pilot study and report on our experiences, lessons learned, and some practical problems we encountered. Our grading and evaluation approach show that the students did relatively well as bug hunters and reporters. Results from two online surveys indicate that students are motivated in participating in software testing in the bazaar, and they are willing to participate in project activities long after their graduation. The study reveals one possible way SE educators can teach and integrate F/OSS into their formal curricular structure.

Keywords: Software Engineering Education, Open Source Software Projects, Capstone Projects, Software Testing, Learning Objectives, Teaching and learning.

1. INTRODUCTION

Software engineering (SE) educators often emphasize that SE courses should have a significant 'real-world' experience necessary to enable effective learning of software engineering skills and concepts. However, students still graduate from universities without getting the chance to participate in realistic and long-term SE projects (Liu, 2005). One reason for this might be due to the fact that, in SE projects, the real-world involves participants with different skills and experiences and is full of inconsistencies, complex, and changing all the time (Hans, 2005). Thus, getting students involved in such a complex environment while at school is not only challenging for students and instructors, but also difficult to implement in the formal teaching and learning structure of most SE courses.

The joint IEEE/ACM CS curriculum guidelines (IEEE/ACM, SE2004) suggest that CS curricular should:

* have a significant real-world basis necessary to enable effective learning of software engineering skills and concepts,

* incorporate Capstone projects. Students need a significant project, preferably spanning their entire last year, in order to practice the knowledge and skills they have learned.

Many efforts, in terms of teaching and research, have been made with regards to these guidelines. For example, Alzamil (2005) demonstrated that involving students in software projects in local companies is one way of effectively teaching SE courses. But he concluded that most of these companies are not willing to sacrifice their product quality to students.

Free and Open Source Software (F/OSS) development not only exemplifies a viable software development approach, but also a model for the creation of self-learning (Sowe, et. al., 2004) and self-organizing communities. Enable by the Internet, geographically distributed individuals voluntarily contribute to a project by means of the Bazaar model (Raymond, 1999). Extensive peer collaboration allows project participants to write code, debug, test, and integrate software. Communities in various projects provide support services such as suggestions for products features, act as distributing organs, answer queries, and help new members having problems with the software. Research evidences suggest that the communities in various F/OSS projects provide free help or 'user-to-user assistance' (Lakhani and Hippel, 2003) and problem solving for participants. Such communities are also focus on learning and the sharing of knowledge (Holtgrewe, 2004, Sowe, et. al., 2006c).

In recent times, F/OSS is making inroads not only in business and software industries but in colleges and universities as well. There is increased interest in the F/OSS learning environment (Sowe, et. al., 2004) and in F/OSS projects as bazaars of learning (Sowe, et al., 2006a). F/OSS is both an alternative teaching methodology and an educational model (Faber, 2002). Computer science students can be involved in meaningful software development activities and get experience in dealing with realistic software systems with large quantities of code written by other people (Carrington and Kim, 2003). Many universities have also started teaching F/OSS course (German, 2005; Megias, et al., 2005; Ozel, et. al., 2006). Projects (e.g. Edukalibre) have been launched to study the transfer of F/OSS practices to the production of educational resources (Barahona, et. al, 2005). Another European Union funded project, FLOSSCom studies how the principles of F/OSS communities can be used to improve ICT supported formal education. Workshops (e.g. tOSSad) have also started discussing the adoption of F/OSS in education (Ozel, et. al., 2006).

 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with ProQuest