One of my post-tenure teaching explorations has been in the general area of integrating academic civic engagement projects and experiences into my courses. In the past, I’ve had students work with campus and/or community members on term-long projects in our dyad, my Argument and Inquiry (first-year) seminar, in our Human-Computer Interaction elective, and in a Comps (senior comprehensive exercise) project last year. These have been amazing experiences for my students (and for me!), and hopefully for our partners, and I’ve had the privilege of working with Carleton staff and our Center for Community and Civic Engagement who make setting up and executing these projects easy and fun.
I’ve always been a bit curious about ways to extend these civic engagement experiences outside the Carleton and Northfield communities. In addition, I’ve always been interested in helping our students have encounters and experience with real-world code and real-world development processes. So it was sheer dumb luck, or maybe fate, at Tapia when I found myself sitting in between Gena Likins and Janet Davis. Gena works for university outreach at Red Hat and talked about a workshop that Red Hat sponsors (and NSF partially funds) called the Professors’ Open Source Software Experience (POSSE), where faculty learn about how to incorporate humanitarian free and open source software (HFOSS) project experiences into their courses. Janet, whom it feels like I’ve known for forever at this point, had attended the most recent POSSE and highly recommended it. I came home from Tapia and immediately applied (and was accepted) to attend the next POSSE in November.
As part of my homework for the workshop, I need to do a couple of blog posts on open source software based on some pre-workshop activities. The first such blogged activity is the “FOSS Field Trip”. This field trip was a great experience for me, since I’m pretty much a newbie in the HFOSS world and am still trying to get the lay of the land. The activity asked us to do some structured poking around in SourceForge and OpenHub to get a sense of the activity levels, contribution histories, etc. of various projects, as well as to get used to those two particular sites.
My first stop was SourceForge. It’s been a very long time since I’ve been on SourceForge, or at least not gone directly to a specific project page on SourceForge. The prompt asked me to type in a search term of interest. Since I’ve supervised a few Comps projects on health care and health related apps, I typed in “health care” as my search term.
This is a screenshot of the results:

Screen shot of SourceForge search for “health care”.
I show the results here because I was struck by how crowded and cluttered the UI was. Large ads competing with the results for screen real estate. Lots of real estate devoted to “sponsored links”, which as far as I can tell are not or may not be projects? It’s very disorienting and makes it hard to figure out where to start or where to focus. I can see why many people find it so overwhelming to contribute to open source projects, if something similar to this is their first encounter with the projects.
So. There are 87 projects (does this include “sponsored links”? Unclear.) A brief perusal of the first page of results when I sorted by “Last updated” showed a few projects which seemed to be vitamin scams and a number of health records/administrative related projects, along with some projects that didn’t seem to relate to health care at all. Sorting by “most popular” yielded some more promising looking projects. And I figured out that I could mouse over a project and see a brief description. But the descriptions still didn’t tell me a lot about the projects, and I was still overwhelmed by the number of things to click. (Fun fact: Filtering by “recently updated” limited the search results to 6 projects, many of which were different from the top ones that appeared when I sorted by “last updated”! There were 6 recently updated projects, most of them dealing with health care records, such as OpenMRS.)
The projects were written in 15 different languages; the most popular being Java (by a long shot), PHP, Javascript, and JSP. I was actually surprised by how popular Java is as a language — I think I expected more Javascript.
I decided to drill down more into OpenMRS, which is a framework for medical records systems —specifically, a framework that can be used to set up a medical records system in a resource-constrained environment by people with little to no programming experience. This appears to be a very stable project (in fact, its status is both mature and stable/production). As an educator, I am more interested in stable, established projects — I can’t take the risk of having my students contribute to something which may go away or may lay dormant for the duration of the class/term. It’s been recently updated (commits within several hours of me viewing the page), which is a good sign. I couldn’t glean much info from the SourceForge site, so I went to the project web site instead. The web site is super helpful! It looks like the project is mostly written in Java. There are clear ways to get involved in the project, and good documentation (from my quick skim). This site makes me feel good about potentially contributing to this project and puts my fears at ease. There are currently 51 people listed on the “people” page of the Github repository, so I presume these are the active committers.
The second part of the exercise asked me to explore the OpenMRS project on Open Hub. Well, at least it will be interesting to see how this project is differently represented on the two platforms. Anyway, I went on OpenHub and searched for OpenMRS. Here’s the screenshot of the result:

Open Hub screen shot, search for OpenMRS.
This interface was much, much clearer to navigate. I like the analysis it attempts to provide about the activity level of the project, although I was struck by the discrepancies between the data reported here and the data on Github in terms of project participation and updates. (Looks like this is because the data is based on project activity from a few months ago.) I also like the stats view, which I think would make it easy to compare the activity level of different projects before deciding to integrate one of them into a class. Here is part of the stats page for OpenMRS Core:

Open Hub stats about OpenMRS Core
OK, at this point I have to admit that I started geeking out on the stats. Here’s the OpenMRS Core stats page about the languages in which the project is written:

Language stats for OpenMRS Core
Something like this would be super useful to use in my Software Design class, when we talk about code structure. Lots of potential teachable moments in this data. Also, I don’t think you can see this in the screen shot, but the OpenMRS Core has 187 lines of Pascal code (27% of which are comments). Not sure if that’s scary or impressive or a bit of both.
OpenHub reaffirms that this is an active, healthy project. There seems to be a core group of contributors and a number of new contributors, which would make me feel good about assigning students to work on this project in a class.
In completing this FOSS field trip, I’ve started to reflect on how to incorporate HFOSS more broadly into my courses. I went into this experience thinking that HFOSS would be a good fit for a Comps project, and I’m still planning on primarily exploring that angle. I also thought that it might fit the HCI course, but as I go through these activities I’m less sold on that idea. I think there is real value in having students meet face-to-face with their clients, and less of a chance of having them fall back on the “I understand my users so I don’t have to talk to them” path. I am, however, starting to think about smaller ways in which I can incorporate HFOSS activities into Software Design: the code stats are one thing, but I could also see some smaller assignments or maybe an in-class lab around writing test cases or debugging a small piece of code or even commenting existing code. I’m excited to explore these little activities further.