Computer Science, Software Engineering, Software Development. Cycle .... students that quit the course gave job-related incompatibilities as the reason for abandon .... [6] C. Hoffman, âAndroid is Based on Linux, But What Does That Mean?â.
Experiences Teaching a Course on Free and Open-Source Software Engineering Short Paper
Abstract—Free/Open-Source Software (FOSS) is created by companies, developers and communities all around the world. It can be used, modified and distributed freely by anyone with any purpose. Due its characteristics, FOSS is widely used in education, specially by universities with Computer Science or Software Engineering programs. Our university, however, has a long tradition of not using FOSS, relaying heavily instead on proprietary software for its Information Systems Engineering program. In this work we report the results of implementing, during the last two years, an elective course on FOSS for senior students. The innovative aspect of this course is that, as part of the course’s evaluation criteria for approval, the students must actively participate in a FOSS community of their choice. Keywords-Free Software, Open-Source Software, Education, Computer Science, Software Engineering, Software Development Cycle
I. I NTRODUCCIN Free/Open-Source Software (FOSS) is as old as computers. In the beginnings of the Computer Age, the commercial value of a system came only from hardware, while the software was freely shared by the small developers and operators community created around a particular hardware [1]. It was only in 1984 that Richard Stallman defined the term Free Software in his GNU Manifesto [2]. Later, the creation of the Open Source Initiative (OSI) required the definition of OpenSource Software [3]. Despite of some differences between Free Software and Open-Source Software, both share the same philosophy of collective construction, freedom of use, and collaborative modification of the code. Currently, FOSS is present in a great number of computer systems [4]. It is key in the Internet infrastructure [5], and it can be found (pure or in some non-free derivative forms) even in the smartphones we use daily [6]. Technically, FOSS is similar to proprietary software, but the main difference, beyond the legal license, is its development and maintenance structure. Even when some FOSS projects are managed only by companies, most of the FOSS projects are created and maintained by a community of developers and users. This novel approach to software construction, and the social, legal and economic aspects of FOSS, requires that software professionals know about FOSS, its characteristics, advantages and limitations. This knowledge will allow them to make informed decisions on development and use of FOSS during their professional practice. Due its low or even zero cost, and to the possibility of modifying and distribute the source code, FOSS is commonly used in education, specially in universities with Computer
Science or Software Engineering programs [7], [8]. However, our University has a long tradition in not using FOSS. In the few courses where FOSS is used, its non-technical characteristics are not studied and analyzed. Sadly, we are not alone in this misguided approach. Some voices recently requested that universities start offering courses about the culture of FOSS and how to collaborate with the FOSS communities [9]. Having this situation in account, in 2014 we proposed the creation of an elective course on FOSS for senior students [10]. After approval by the Department Council, the course was offered during the first semesters (February-July) of 2015 and 2016. In this paper we present our experiences during those two years, analyze the results, and propose some changes to the course. It must be considered that this experience was not designed as an experiment on Education, in which case it would require a control group and pre- and post-evaluations of the students. Our only goal here is to communicate the lessons learned during two semesters implementing a FOSS course on an Information Systems Engineering program, with the hope of being useful for schools and teachers in the same situation we were three years ago. II. E XPERIENCE As usual, the implementation of the course had noticeable differences with the proposed plan. In this section we explain the original plan and how the course diverged in these two years. A. Original Plan The course proposal was presented to the Department’s authorities in 2014. This optional course was aimed to senior students (in their fifth year) of the Information Systems Engineering program [10]. The proposed syllabus included 90 hours of class activities, divided in six topics, as shown in Table I. TABLE I P ROPOSED T OPICS & T IME Topic Basic Concepts & History Legal & Social Aspects Project Management FOSS Design & Development FOSS Operating Systems Project Quality Evaluation Activities TOTAL Time
Duration (in hours) 12 12 12 12 12 6 24 90
The proposed student evaluations included assignments, a mid-term exam, and the participation of the students in a real FOSS community. This last evaluation required the students involvement for several weeks in an existing FOSS project. To pass this evaluation, the students must show their submissions (documents, bugs, or bug fixes) and present, both written and orally, an analysis of the community under study. The idea of including the participation in a FOSS community as part of the course was based on previously published proposals [11], [12]. However, the results of these experiences have not been published yet. So, if they were successful or not is an open question. B. Implementation The course was implemented during the first semesters (from February to July) of 2015 and 2016. The enrollment was 31 students in 2015 and 29 students in 2016. However, only 19 students showed up in 2015 and 13 in 2016. A possible reason for the low turn out is that the course is scheduled for Saturdays morning, an information that is not available at enrollment time. Moreover, scheduling the classes for Saturday mornings meant that only a maximum of 37 hours were available during each semester from the original 90 scheduled hours. This situation required extensive changes in the proposed classes. Finally, taking holidays in account, the total time of the course was 25 hours in 2015 (divided in 15 hours of classes and 10 hours of evaluation activities) and 30 hours in 2016 (divided in 20 hours of classes and 10 hours of evaluation activities). These numbers do not include the actual participation of the students in the FOSS communities. Evaluation activities included 3 assignments, a mid-term exam, and participation in a FOSS community. Assignment 1 was an analysis of different software licenses; assignment 2 required to analyze several FOSS communities with the goal of choosing one for participating in its activities; and assignment 3 was a simple technical work on coding. Table II shows the FOSS projects chosen for participation, the number of students that participated in each project, and the kind of activities carried on. It must be noticed, however, that in some cases the participation was done in a different project than the selected in first place. Some students changed projects after not receiving any attention from the project’s community. In 2015, 14 students finished (and approved) the course, while 12 students finished (and approved) it in 2016. The 5 students that quit the course gave job-related incompatibilities as the reason for abandon it1 . C. Survey After the course, an informal survey was conducted to determine the satisfaction level of the students and requesting proposals for improvements. An email was sent asking for the student’s opinion on the course. Ten answers were submitted 1 In our country, most of the senior students in CS, SE, and ISE have fulltime jobs before graduating.
by students in 2015 and seven by students in 2016. The answers can be summarized as follows. Positive answers: • Expectations were met. • It’s considered important to have a course on FOSS. • Not only technical issues, but legal, social and ecomomic aspects are considered important. • The professor experiences with FOSS enriched the classes. • Student could discuss and express their viewpoints openly in class. • Participating in a real world FOSS project was interesting. • Communicating through email and the virtual classroom improved the experience. Proposed improvements: • To do more exercises using FOSS. • To include presentations by local FOSS community members, in order to share their experiences with FOSS. • To have the class material handled before each class. • To change the class schedule (from Saturday morning to weekdays). • To explain with more detail the expected format and content of the assignments (to request written essays is not common in this program). • To use the bibliography more. • To extend the offer to junior students (since they can receive an Associated degree by the end of their 3rd year, and never have the chance of took the course as scheduled today). III. D ISCUSSION The original plan proposed 66 hours of classes and 24 hours of evaluations (including participation in a FOSS community, a mid-term exam, and assignments). However, due restrictions on the schedule, the time dedicated to the course had to be reduced to a third. Despite this restriction, and by reducing the assignment and evaluation time to the minimum, all topics included in the original plan were covered during the course. The lab work, on the other hand, was reduced to only some coding and refactoring, while the essays were reduced to two (licenses and community analysis). Another key factor affecting the development of the course was the disparity in the students’ background. Some of them had little experience coding, while others were professional developers. Some of them had experience using the tools analyzed in class, while others didn’t know the tools or even the techniques that the tools implemented (for example, some students didn’t know about Continuous Integration). In order to select the FOSS project in which participate, the students had to analyze 3 projects, write an essay on them, and choose one. This work was worthy, as the students had the opportunity of analyzing different projects. However, the projects analyzed were mostly the proposed by the professor. Only a few projects were discovered by the students themselves
TABLE II P ROJECTS AND ACTIVITIES Projecto pilas-engine OpenStreetMap BabelZilla Ninja-IDE rst2html5 Epoptes ICARO LibLime Koha FullCalendar REngine CIAA ASP .Net Core VLC Media Player Moodle LibreOffice
# Students 9 3 2 1 1 1 1 1 1 1 1 1 1 1 1
Activities Documentation, process improvement, bug reporting, bug fixing. Translation, adding map information. Translation. Bug fixing. Bug fixing. Documentation. Translation, documentation. Translation. Bugs reports, new functionality. New functionalities, fork. Documentation. Bug report. Bug report. Translation, Bug report. Bug report.
(they were Epoptes, LibLime Koha, FullCalendar, BabelZilla, REngine, ASP .Net Core, and VLC Media Player). Students participation in FOSS projects, despite the little time dedicated to it, was satisfactory for the students and for the teachers. The main goal of this activity was to analyze the organization and dynamics of real-world FOSS communities. However, the involvement of some students, reporting and fixing bugs, was well beyond of said goal. Most of the students, though, were involved only in translations and documentation of the projects. We consider that the key factor to the success of this activity was to require the students to interact with the FOSS community. In that sense, it must be noticed that the poorest participation activities were done at the OpenStreetMap project. This is so because to include information in the maps does not require to interact with the community at all. In those cases, the analysis of the community dynamics was noticeably poor. Assignments for written essays and oral presentations are not a common practice in this program. Thus, the quality of the essays improved from assignment to assignment. The final presentations (about the analysis of the community and participation in the project) were impressive. IV. C ONCLUSIONS In this article we present a unique, as far as we know, experience developing an elective course on FOSS for senior students of the Information Systems Engineering program at our university. The course offers the possibility of studying the characteristics of FOSS and the communities that develop it, in a university were the use of FOSS is not common. We report the results of the first two years of course development (2015 and 2016). Schedule problems required a reduction of the class hours to 30% of the originally planned time. With respect to numbers, 82% of the students finished and approved the course, while 18% couldn’t finish it, reportedly due job-related time incompatibilities. Informal surveys show a high level of satisfaction between the students. For next editions of the course, we propose some improvements: to change the schedule in order to extend the
class hours; to make greater use of FOSS tools during lab hours; and to improve the community selection process to avoid unresponsive communities or projects that do not require community involvement (like OpenStreetMap). Moreover, in order to take advantage of the practical knowledge of FOSS that some students have from their daily jobs, for next year we plan to change the traditional approach (a professor exposition followed by assignments for the students) for a more modern collaborative knowledge construction approach. R EFERENCES [1] C. DiBona, S. Ockman, and M. Stone, Open Sources: Voices from the Open Source Revolution. O’Reilly Media, January 1999. [2] R. Stallman, “The GNU Manifesto,” http://www.gnu.org/gnu/manifesto. en.html. [3] “Open Source Initiative,” https://opensource.org/. [4] J. Feller, B. Fitzgerald, S. A. Hissam, and K. R. Lakhani, Perspectives on Free and Open Source Software. The MIT Press, 2005. [5] N. Newman, “The Origins and Future of Open Source Software: A NetAction White Paper,” http://www.netaction.org/opensrc/future/ oss-whole.html, 1999. [6] C. Hoffman, “Android is Based on Linux, But What Does That Mean?” Hot-to Geek (http:// www.howtogeek.com), December 2014. [7] S. E. Lakhan and K. Jhunjhunwala, “Open Source Software in Education,” EDUCAUSE Quarterly, vol. 31, April-June 2008. [8] S. Wilson, “Open source in higher education: how far have we come?” The Guardian, March 2013. [9] S. Gittlen, “6 Colleges Turning Out Open Source Talent,” Network World, May 2016. [10] Anonymized. [11] R. Wachenchauzer, “Trabajos de Carreras de Inform´atica en Comunidades de C´odigo Abierto (Computing courses’ assignments in OpenSource Communities),” in Anales de las Jornadas Argentinas de Software Libre 2013, 2013, pp. 130–140. [12] Universidad Nacional de Quilmes, “Plan de Estudios Licenciatura en Desarrollo de Software (Study Plan for Software Programming Degree),” www.unq.edu.ar/advf/documentos/50a6a6ca41fd3.pdf.