Abstract

Introduction Traditionally in a project-based software engineering course, students learn software development skills by working on tightly controlled classroom projects provided by instructors. While such projects provide valuable software development experiences to students, service-learning projects expose students to real-world situations that cannot be easily replicated in classroom projects. Service-learning is an active-learning pedagogy that integrates community needs with student learning. As defined by Bringle and Hatcher (1995), service-learning is a course-based, credit bearing educational experience in which students (a) participate in an organized service activity that meets identified community needs, and (b) reflect on the service activity in such a way as to gain further understanding of curricular content, a broader appreciation of the discipline, and an enhanced sense of personal values and civic responsibility. Service-learning in software engineering has been embraced by many such as Liu (2005), Poger and Bailie (2006), Song (1996), and Tadayon (2004). They found that service-learning software-development projects not only provide students with real-world experience in their technical and social skills, but also instill civic responsibility and ownership in students. Some (Purewal, Bennett, & Maier, 2007; Rosmaita, 2007) also suggest that the service-learning pedagogical approach may attract more motivated and higher-achieving students to the computer science discipline, which could be a major benefit for the discipline, especially when computer science student enrollment has been decreasing for the last few years (Carter, 2006). While service-learning in software engineering courses is not new, it has not been widely applied in the discipline partly because of its challenges, which include, most notably, additional time and organizational demands on instructors, and maintenance needs after the completion of the projects. The issue of additional demands on instructors needs to be addressed according to one's circumstance; the system maintenance issue could also be quite complicated. One solution to the maintenance issue is to have a support center, as suggested by Chase, Oakes, and Ramsey (2007). An Agile Software Factory has also been proposed by Chao and Randles (2009) in supporting the maintenance effort for student service-learning projects. As another solution, this paper suggests adding technical writers to the service-learning project teams with the intent of producing better documentation for easing the burden of maintenance. It is our experience, in past service-learning software development, that documentation produced by the student software developers was typically low quality and/or scarce. The causes for the weak documentation can be attributed to two main reasons: 1. There is limited time for software development itself, which implies limited time for creating documents, and 2. Students in computer science or software engineering are not trained in technical communication (writing) and do not enjoy writing much. Aiming to improve the quality of the software documentation for the service-learning projects, the instructor from the Computer Science Program and the instructor from the Scientific and Technical Communication Program collaborated in fall semester of 2008 with the goal of adding technical communication skills to the software development teams. That goal manifested itself as a curriculum that involved upper-level technical communication students serving as the technical communicators for software development students. Each team of students worked with a client from a local non-profit organization to develop software that would fulfill a need of the client. The technical communication students wrote the user-centered release notes and delivered those to the client with each iteration of the software. Also, the technical communication students wrote the final user documentation as an HTML help file. …

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call