Engaging students in free and open source software (FOSS) projects is educationally rewarding, however experience shows that it is challenging for both students and faculty. Engagement in FOSS fosters students’ technical, professional and personal development in ways that "class-size" projects cannot. Students can study and interact with large, complex, real-world software artifacts, tools, and development processes central to modern software development and in high demand. They can observe and practice professional skills including communication, collaboration, critical thinking, question asking, and technical writing. In addition, growing evidence suggests that a context of social good, such as in FOSS projects with humanitarian goals (HFOSS), may attract more women and other underrepresented student groups to computing. However, these advantages come with a number of practical and cultural challenges. Work in FOSS communities is often less structured, even chaotic, as compared to traditional academic assignments. The content and timing of community responses to student inquiries and contributions may not align well with student background or assignment due dates. Assignments created around a project can be rendered quickly obsolete as the project evolves. As a result, faculty doing this work have found it difficult to transition students from classroom activities to participating in open source projects “in the wild.” This talk will present our work on two intermediate steps, HFOSS Kits and Education-Oriented HFOSS Projects, designed to bridge the gap between classroom activities and student participation in FOSS “in the wild.” An HFOSS kit is a snapshot of an active HFOSS project’s artifacts (code-base(s), issues, documentation, communications, etc.), taken at a particular point in time and packaged with student learning activities, an instructor guide, and a containerized development environment. Using a snapshot that is independent of the live project creates an authentic environment, while enabling the creation of reusable educational activities and providing a more comfortable space for students to experiment and learn. Using a containerized development environment minimizes startup time, allows automated context-sensitive feedback, and the simulation of community interaction. Education-Oriented HFOSS Projects, have real clients and are consciously designed and managed to facilitate faculty and undergraduate student engagement. Some examples managed by our team include LibreFoodPantry, FarmData2, Open Energy Dashboard, and Open Circuits. These are ongoing projects that continue across semesters and welcome outside participation. They are often humanitarian in nature and connect to causes or communities that align with institutional mission and student experiences. They use modern technologies but are architected, scoped and managed to facilitate student learning, support specific curricular goals, accommodate academic schedules, and understand that these objectives will slow project development. As entire new cohorts of students engage each term, particular attention is paid to onboarding, including documentation at the appropriate level and fully containerized development environments that make the process as easy as possible. We have talked about these approaches at computing education conferences and are excited to hear different perspectives on our approaches from FOSS practitioners and educators in this community. Thus, significant time will be allocated for feedback and discussion with the audience.
Speakers: Grant Braught Karl R. Wurst