[PDF] [BIB] [PUB]
In a one semester course on software engineering for upper level computer science students, students typically learn the fundamental software processes spanning the software development lifecycle – from requirements specification through architectural design, implementation, testing, and evolution, along with the software tools that support the development activities. Courses in software engineering often incorporate semester long team projects, where students collaborate on a software development project. Thus, in addition to developing the technical skills associated with software development, the software engineering course is a common place where computer science students develop their skills in teamwork and collaboration, as well as in communications. The nature and type of projects in such courses varies. Some integrate projects where students develop software for "real clients" such as on campus departments, or local non-profits, while others have been increasing exposure to open source development with students contributing to existing open source projects. In our software engineering course, we have recently introduced course projects where teams of students specify, design, and implement software that assists computer science students in learning fundamental computer science topics. In this paper, we present our experience with such CS learning tool projects, including a discussion of the impact on student outcomes in a senior-level course on software engineering. We compare this experience to our prior use of "real projects for real clients" in this same course. We find that students who participate in the CS learning tool projects perceive an increase in learning progress on fundamental principles, theories, and factual knowledge, as compared to their peers in course sections with "real projects for real clients," with an equivalent effect on teamwork and collaboration skills. Most surprisingly, the students who develop CS learning tools report a significantly higher level of progress on industrial relevant skill development as compared to the students who develop so called "real projects for real clients."