In fall of 2012, at St John’s University, a group of 25 students in a one semester software engineering course developed a room scheduling system for the Ronald McDonald House in Manhattan, NY. Working with the original Homeroom code base and extending it became the basis of this project. Students reused the overall architecture and lowest levels of Homeroom and then extended the business logic layer due to more complex requirements of this particular Ronald McDonald House.
The project spanned two semesters, with a completely new group of students taking over the project in the second semester. For example, the second group of students took over the code repository, the tickets on the issue tracker, and the discussion board where most project discussion occurred.
Significant adaptations to the syllabus had to be made due to the class size and the fact that few of the students had ever written a program longer than a hundred lines or had experience with PHP (the language of the original Homeroom code base). So a central concern in this course was to fill in missing skills at the same time students were developing a system design for the project.
To teach students the skills they would need for the project, the first half of the semester provided in-class labs on the basics of PHP, version control, and databases. Thus, students were not able to begin project implementation until about halfway into the course.
In subsequent semesters, we re-used this approach to extend and adapt Homebase for a volunteer scheduling application for a food bank, and to extend Homeroom for a clinic appointment scheduling application for a children’s social service agency. In each case, we used a multiple semester CO-FOSS development model, with each subsequent group of students taking over the the code repository, and tickets.
Assessment of the course was done via a two part survey. Students were asked to name the course topics they felt were most difficult, most important, and least important to their careers, as well as the topics they had learned best. Out of 20 students, 10 chose group communication as the topic they learned best, but also 4 students chose group communication as the most difficult topic. Nine students felt that web programming and PHP were the most difficult topic.