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