Instructor Experiences

From TeachingOpenSource
Revision as of 21:22, 5 August 2024 by Heidi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Instructor Reflections on Teaching HFOSS

  • Janet Davis from Whitman College attended a POSSE in Raleigh NC, June, 2016
  • Gustavo Pinto from Federal University of Para attended a POSSE in Bologna Italy, July 2017

Course Experiences

Below are course descriptions 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.


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.

  • The second was an exercise in code reading of an open source (HFOSS)

project, the Insight Segmentation and Registration Toolkit (ITK).

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 [https://teachingopensource.org/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.