Instructor Experiences
Below are reports from POSSE alumni who are using HFOSS within their courses. The reports range from new POSSE graduates to folks who attended POSSE several years ago. If you are a POSSE alum with an experience to share, please add your course below.
Course Name: Data Structures
Level: Freshman to Seniors
HFOSS Project: OpenMRS and Mifos
HFOSS Activity: Students read the source code of open source projects an examples of the "real life" use of the data structures and Java language features that they are learning about. At the beginning of the semester it is very much "hand holding", i.e. look at the line such and such in file such and such and tell me what is there. By the end of the semester they are browsing GitHub repositories on their own searching for use examples of given data structures.
The students do not interact with the community and they do not contribute.
Instructor: Joanna Klukowska
Academic Institution: New York University
Observations: This works great to satisfy the students' requests for connecting the material to the real life situations. It also illustrates the fact that other people also document the code and write input validations, etc. I think that this has been of great educational benefit to my students, even though they sometimes do not even realize that.
Other Comments: It takes more than a few months to a point of using (H)FOSS with students, so be patient.
Course Name: Dickinson College Senior Seminar - This is a year-long two course sequence required of all Computer Science majors.
Level: Seniors
HFOSS Activity: Students complete a series of structured activities that guide them toward deeper engagement in and contributions to an H/FOSS community. Teams for 4-8 work through a sequence of 3 project selection activities (explore, review, rank & select). They then complete two installation activities (user install, developer install) followed by two bugs activities (bug gardening, bug fix). Finally they propose additional contributions that they would like to work on. During all of the activities they are encouraged and rewarded for engaging with the community of their selected project..
HFOSS Project: Teams in 2016-17 worked on: OpenMRS, Sugar Labs, React Native
Instructor Name: Grant Braught, John MacCormick
Academic Institution: Dickinson College
Experience: We were happy with the general sequence of activities that students completed and very happy with their level of engagement with their H/FOSS communities. We also allowed teams to progress through the installation and bugs activities at different paces, which worked well. However, we had pushed teams to be ready to propose additional contributions by the end of the first semester. This worked well for one team, but was too soon for the two other teams. We will be allowing the bugs activities to extend into the second semester in our next iteration. Hopefully this will allow all of the teams to gain enough experience and engagement with their projects to make more informed proposals for additional contributions.
Course Name: Open Source Software Development
Level: Senior
HFOSS Activity: Students participated in Mozilla. we started by using several POSSE assignments to learn about the tools of being part of a FOSS community. We also have access to mentors in the community. Students have been able to contribute varying levels of documentation, translation, bug reports, and bug patches.
HFOSS Project: Mozilla
Instructor Name: Becka Morgan
Academic Institution: Western Oregon University
Experience: Access to POSSE assignments made introduction of tools really clear. Having a mentor is a really big help if you can find the right mentor and if they know how to mentor. It helps to know what to ask from mentors. I have found that having mentors who can point students to a particular bug or project, like incorporating them into a project they have is the best.
Course Name: Requirements Engineering
Level: Graduate
HFOSS Activity: reengineering of requirements specifications
HFOSS Project: OpenMRS
Instructor Name: Birgit Penzenstadler
Academic Institution: California State University Long Beach
Experience: It was good having a real system under development and having to dig through their documentation but it turns out the reengineering is a little dull. Contributing to resolving issues (whether code or documentation) may be more rewarding.
Other Comments: It probably won’t go perfectly the first time but trust the learning experience, and being open to students about this being a first attempt at including very cool, really life OSS development into the curriculum was received very well.
Course Name: Software Engineering
Level: Junior
HFOSS Activity: Using OpenMRS to illustrate certain design patterns in large-scale Java project. In particular Factory pattern. MVC (Spring framework), DAO (Hibernate), and REST API
HFOSS Project: OpenMRS
Instructor name: Tom Naps
Academic Institution: UW Oshkosh
Experience: Keep expectations of students toned down. Don't let them think they will actually contribute developed software to such a large project as part of their work in a one-semester course. I do try to emphasize that, should they want to go further, they could do that as part of their senior-level independent capstone.
Course Name: Software Analysis & Design 2
Level: Sophomore
HFOSS Activity: Students did two exercises.
- The first was an introduction to the concepts of open source development
and community, located here: http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci235/assignments/hwk1.pdf.
- The second was an exercise in code reading of an open source (HFOSS)
project, the Insight Segmentation and Registration Toolkit (ITK), located here: http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci235/assignments/hwk2.pdf.
Instructor Name: Stewart Weiss
Academic Institution: Hunter College of the City University of New York
Experience: The first homework worked very well, though a few of the questions need to be changed for clarity. The second worked really well.
Other Comments: It is a slow and painstaking process to insert FOSS and HFOSS material into courses that are packed with content, but patient planning seems to work.
Course Name:Software Engineering (CSCI 430)
Level: Upper-division, undergraduate
HFOSS Activity: Students contributed as teams on a semester long project of maintaining software.
HFOSS Project: Spyral (https://github.com/platipy/spyral)
Instructor Name: Kevin Buffardi
Academic Institution: California State University, Chico
Experience: Remote interaction made it difficult for students to experience Agile Development practices, however, they did contribute to a real project that entailed familiarizing themselves with someone else's code. Unfortunately, the project was superseded by a different project near the end of the semester so student motivation went down the tubes once they discovered that the project was becoming obsolete
Other Comments: It helped to reach out and find additional HFOSS projects that required different languages/technology that appealed to students wanting to learn Python
Course Name: Software Engineering (CSCI 630)
Level: graduate (MS)
HFOSS Activity: Students worked in small groups but were required to demonstrate their independent, technical contributions to an existing open source project
HFOSS Project: MouseTrap
Instructor Name: Kevin Buffardi
Academic Institution: California State University, Chico
Experience: The project team was good at responding to students' questions and pull requests and students got meaningful exposure to the challenges of working on a real product with challenging needs/requirements.
Other Comments: Since MouseTrap was really only active via Stoney and my efforts, it was not as rich of an experience as other open source communities that have large, active teams. When a project depends on professors to keep it alive, it is not likely to survive. It is best to attach students to a project that has a large community that is willing to take them under their wings. I have since offered MouseTrap (and the other HFOSS projects) as options to choose from in new semesters, but no students have chosen it as the open source project they want to work on for the semester.
Course Name: Software Quality Assurance and Testing (COSC 442)
Level: Undergraduate
HFOSS Activity: Semester capstone project that spans ~6 weeks in which students work in groups of 3-4 to identify an open-source project, using [http://foss2serve.org/index.php/Project_Evaluation_Activity_V2 FOSS Project Evaluation Activity, and then developing and implementing a software quality assurance plan to improve the software quality through refactoring, documenting, testing, static analysis, etc.
HFOSS Project: Various
Instructor Name: Josh Dehlinger
Academic Institution: Towson University
Experience: Students realize the inherent complexity in going from testing small, "toy" applications to that of a large, real-world system.
Other Comments: I have used several approaches to this project in the past - from dictating the FOSS project to work on to allowing them to select a project and found that students find their own project, from Sourceforge or OpenHatch works well as it gives them the choice to work on something they are passionate/interested in. However, this loses the community aspect of working in with a FOSS community.