Abstract—Free and Open Source Software (FOSS) is not only seen by computer science departments as an optional free and low cost technology to support their IT infrastructure and administrative duties, but also as a methodology to improve pedagogy and provide opportunities for students to learn. As a result, many teachers are turning to FOSS projects and communities as effective tools to teach computer science courses and give their students significant real-world experience. However, few teaching and learning models exist that can help computer science teachers provide guidance and mentorship for their students’ involvement in FOSS projects. In order to address this gap in computer science education, this paper presents a teaching and learning model that was evaluated using a series of pilot studies conducted with software engineering students. Experiences and lessons learnt from the pilot studies shows one possible way teachers can guide students’ involvement in FOSS projects and how this approach can be integrated into a formally structured curriculum. Index Terms—Capstone projects, computer science education, curriculum design, open source software communities, open source software projects, software engineering. I. INTRODUCTION Curricular often emphasize that computer science in general and software engineering (SE) courses, in particular, should have a significant real-world experience necessary to enable effective learning of software engineering skills, processes, techniques, and concepts. In principle, didactics should challenge, motivate and engage students in meaningful and realistic activities so that they go out to become useful members of society. Many curricular have been designed with these novel principles in mind. The IEEE/ACM Joint Task Force on Computing [1] shows what to teach, how to teach what, and the expected outcomes of computer science and SE courses. Computer science (CS) teachers are making efforts to give students practical hands-on experience by, for instance: (i) assigning students to software projects in local companies; (ii) exposing students to SE practice and tools through capstone projects [2]; (iii) guiding and mentoring students in their own engineering projects; (iv) providing environments for students to collaborated with their peers across geographical boundaries [3], exchange visits [4]; (v) enabling face-to-face Dr. Sulayman K. Sowe is with the United Nations University Institute of Advanced Studies, Yokohama 220-8052, Japan (e-mail: sowe@ ias.unu.edu). collaboration between small groups of engineering students. Yet, many CS or engineering graduates are ill-prepared to face and work in realistic software engineering environments. One reason for this, argued [5], might be due to the fact that software projects in the real-world involves participants with different skills and experiences, are full of inconsistencies, complex in terms of both social and technological dynamics, takes time to develop (usually spanning longer than a school semester), and are changing all the time. These characteristics are not only challenging but difficult to replicate in many classrooms with fixed time-tables and short semesters. A. Research Contribution There is increasing educational interest in Open Source projects as “bazaars of learning” [6]. In this learning milieu, students can be involved in exploratory and meaningful or realistic activities [7]. When FOSS is used as an alternative teaching methodology, students can be involved in meaningful software development activities, have experience in dealing with realistic software systems [8], access large quantities of code written by professional software developers, work with up-to-date software engineering tools, and collaborate with a diverse group of individuals from different parts of the world [9]. However, teaching in FOSS like environments is disadvantaged because there are no guidelines or models for educators to follow. CS teachers are still experimenting with different teaching methods, trying-out what works and what does not work, and consulting with peers. What seem to be missing in FOSS education is a teaching and learning model that can help teachers guide and mentor students involvement in FOSS projects. Thus, the aim of this paper is to fill this gap in the CS literature and contribute to FOSS education by presenting a teaching and learning model grounded on the principles of constructivist learning. II. BACKGROUND AND RELATED WORK Computer science graduates should be able to cope with and even benefit from the rapid changes in the computing field. FOSS development is a rapid changing phenomenon which is fundamentally changing the way traditional software is being developed, distributed, maintained, and supported. Such a change might not be the silver bullet to today’s educational problems, but educators are looking towards the FOSS methodology as a meaningful teaching and learning alternative [10]. The impetus is that students can learn software engineering concepts and skills, and be “better” prepared for today’s world of work and actively Leveraging Free and Open Source Software to Model Teaching and Learning in Computer Science Education Sulayman K. Sowe, Member, IACSIT International Journal of Modeling and Optimization, Vol. 1, No. 5, December 2011 421 Manuscript received December 8, 2011; revised December 27, 2011. This work was supported by the Japan Society for the Promotion of Science (JSPS) under Grant P10806.