
 
to underline that the instructional method is not 
grounded to the characteristics of the specific 
learning environment. On the contrary, the interested 
instructor could apply our method of using FLOSS 
projects to teach software engineering with a 
different set of tools.  
The main function of the environment was to 
support students during the assignment. A digital 
library contained all the necessary resources (e.g., 
documents, instructions, tutorials, templates, 
external links, etc.). This library was updated when 
necessary (e.g., instruction clarification, new SRS 
templates, etc.).  
A second very important function of the 
environment was to act as a hub among students, 
past and current. A basic set of communication tools 
were available (forum, blog, chat). Through them 
students could communicate with each other. 
Although each student had to work independently on 
a different project, the feedback from peers, 
assistants, and instructors was important for them. 
Among the communication tools, the forum was the 
prominent one, since it was the most organized and 
was holding the main volume of knowledge (e.g., 
FAQ section, roles sub-forums, past experiences, 
managerial issues section, etc.). Students also had 
personal blogs where they could upload information 
about their projects. Blogs were used mostly as 
journals, informing others (and most importantly the 
instructor) on their progress and the difficulties they 
had in each step. Finally, the chat was used rarely 
(mostly around deadlines), since students preferred 
other ways of synchronous communication (e.g., 
MSN, Skype, etc.). 
After the first year, the environment served one 
more purpose; students were able to see what 
previous students had to deal with, by reading their 
reports and blogs. This helped students a lot, 
especially in selecting appropriate projects for them. 
Furthermore, students had a better image of what to 
expect. For example, how long it takes to receive 
feedback from others, when the right time is to 
abandon a project with low activity and start 
working on another one, what type of project is 
more appropriate for a specific role, etc.  
Another function that was offered, but was used 
randomly by the students, was the ability to review 
each other’s work. For this, a simple review form 
with one textbox was available in each project report 
and students were able to freely comment on the 
project. In addition, there was a 5-star rating scale 
for the project, much like the rating scale used in 
commercial sites (e.g., Amazon). Since reviewing 
one another was not an assignment requirement, 
students refrained from doing so, possibly in order to 
avoid conflict.  
Finally, it is worth mentioning that the learning 
environment was open to students and instructors of 
other higher education institutes (HEI), and to any 
other interested individual. This means that it was 
possible for our students to receive feedback from 
people outside the course. Of course, most of these 
messages came from our past students that kept 
visiting the learning environment, acting as 
consultants, and giving advice to current students.  
2.2.5 Assessment Method 
An obvious parameter of student assessment was the 
quality of the work they produce (number and 
significance of bugs reported, complexity and 
effectiveness of code developed, clarity and 
usefulness of SRS document).  
However, the main goal of the assignment was to 
immerse the students into the real world of software 
engineering. Because of this, the actual involvement 
of the student in the open source community was 
equally important. This is the reason why the 
students had to elaborate in their reports about the 
collaboration they had with the project team. The 
volume and quality of collaboration could be 
estimated according to the number and importance 
of messages exchanged in forums, mailing lists, or 
project pages. We encouraged our students to 
produce high quality work and we decided to award 
these efforts: if the work of a student was adopted by 
the project community (progress on the reported 
bugs, use of developed functionalities in new 
versions, post of SRS document on the project 
page), the full grade for the assignment was awarded 
by default. Of course, the student had still to work 
on the final report and present the project to the 
class.  
Since students’ success was based – up to a 
certain point – on the level of project activity, we 
allowed students to work on their assignments 
beyond the 12.5 weeks of the official lecturing 
period and submit it at a later time at 3 pre-defined 
dates per year – by the end of the course in 
February, or alternatively in June or September.  
After the completion of the assignment, the 
students had to answer a questionnaire focusing on 
how they perceived the activity and what is their 
opinion regarding the strengths and weaknesses of 
our approach. The results of this questionnaire for 
the three-year period of this instructional method are 
presented in the next section.  
STUDENTS'PERSPECTIVESONLEARNINGSOFTWAREENGINEERINGWITHOPENSOURCEPROJECTS-
LessonsLearntafterThreeYearsofProgramOperation
317