Skip to content

Getting Over the Humps

September 26, 2011

We’re now starting our fifth week of classes and lots has happened. In week 3, I hit a bump in the road, one that may be encountered by other instructors working with students on FOSS projects. Before the semester started, Joanie Diggs from the GNOME Assistive Technology community suggested a very cool project to aid folks with low vision issues involving magnification of video. The suggested starting point was the Cheese webcam software. My initial concerns had to do with understanding how video is processed, but I quickly encountered other issues. Let me tell you my story:

  1. I started in the summer by spending about two weeks trying to get GNOME 3 to work on Ubuntu 11.4 on VirtualBox. After lots of consulting of forums, googling, and banging my head against the wall, someone from the GNOME A11y community kindly pointed out that Ubuntu and GNOME 3 don’t play well together. OK, time to retrench…
  2. I then moved on to Fedora 15. I spent about 20 hours and four install attempts to get a Fedora 15 guest on VirtualBox. Success! However, by this time I was a week into the semester and hadn’t even been able to install Cheese. Panic was setting in.
  3. Next I spent about four hours installing Cheese. More consulting of forums, lists and googling and I couldn’t build it from scratch, but I could at least get it installed. However I had a problem with VirtualBox not being able to recognize the webcam correctly.
  4. I then had one of my IT students come and debug VirtualBox and after 2.5 hours we got VirtualBox to “see” the USB ports, but still couldn’t get it to recognize the web cam.

At this point I was starting my second week in the semester and had a working platform, but still hadn’t been able to install the application that I wanted students to use and get it running. In addition, I hadn’t had any time to work with the actual application. While I’m relatively tolerant of risk in teaching, I was definitely starting to feel the heat.

It was at this point that I turned to the TeachingOpenSource and GNOME A11y communities, and my friends at Red Hat and asked for help. One might ask why I didn’t do this at the beginning? It has a lot to do with instructors feeling like they need to figure things out on their own and feeling like I should have been able to do this on my own. But in doing so I missed one of the most important aspects of working with FOSS: FOSS communities are great reservoirs of learning and help.

I received a number of very supportive and helpful responses. A big “Thank you” to all who sent suggestions. I will try to summarize what I learned:

  1. Ask for help early. Many of the responses from FOSS communities indicated a strong desire to help and I probably could have done less head banging if I had asked for help earlier. I admit that asking for help is a lesson that I try to get across to my students and I’m a bit chagrined to have missed the boat on this one.
  2. Do a feasibility check early. Ask the community about the feasibility of projects on specific platforms _before_ doing an in-depth investigation. This is similar to number 1, but I didn’t think to ask the very basic question of whether what I was doing was reasonable in the first place.
  3. Everyone struggles a bit. It is really helpful to be reminded that some amount of “figuring things out” and working through problems is part of working in a FOSS environment.
  4. FOSS projects have a high tolerance for failure. The FOSS environment is very opportunistic and projects frequently involve trial and error. Community members often try things and run into roadblocks that cannot easily be solved and therefore retrench and try something else. This is in direct contrast with a typical academic course where the plan for the term is laid out at the beginning and student “failure” only occurs if students don’t achieve the work. Instructors must prepare students for this sort of a learning environment and also must figure out the learning to be gained from such “failings”.
  5. Take advantage of existing learning opportunities. Related to 4 above, look for what learning can be accomplished in the current situation. If the work done by the students never actually gets merged into the official module it doesn’t mean that the project is a failure. Students still gain incredibly valuable knowledge and real-word, practical experience with version control systems, programming tools, examining and building and developing actual software, working on teams (with their peers and those in the FOSS community), planning, project management, problem solving, and making some contribution to an on-going project.
  6. The interfaces between technologies and tools can cause hiccups. I found the individual communities of GNOME A11y, Ubuntu, Cheese, and VirtualBox to be very helpful. However, many of my problems occurred at the intersections of projects and fitting the pieces together.
  7. Communicate better and more often. This is something that I keep reminding myself over and over again. Successful interactions depend on continually communicating the state of work to the community.

As for the state of the course, I have found solutions to most of my roadblocks. I have been provided with two boxes and web cams thanks to Red Hat. I have three teams of students, two of which are working on the Cheese video magnifier and one who is working on enhancements to Xfce. We’re in the process of fleshing out requirements and should start design in a couple of weeks. We’re off!

Planning for the Semester

August 2, 2011

The approach of the fall semester has been floating around in my brain and becoming a louder cry in the chorus of ever-more-urgent voices that need attention. Members of my CS 490/CPE 425 Software Engineering class, heads up. You will be contributing to a humanitarian FOSS project, the question is which one and what exactly we’ll be doing. This is what last year’s course looked like and we worked on the Caribou onscreen keyboard.

I know the general outlines of the course which include providing an overview of the discipline of software engineering and covering the standard approaches for requirements, design, implementation, test and maintenance. But the fun is in the details! I’ve got some funding to bring in speakers and take field trips and I think we’re going to do some very fun things. One idea is to attend the GNOME Summit at MIT which appears to be planned for October.

I also have some thoughts on people who would be fun to have come talk to us. One is Mo Duffy who is a senior interaction designer with Red Hat. Another is Joannie Diggs who is a long-time developer for GNOME A11y and maintainer for Orca. I also have a Flip camera, compliments of the POSSE Basics course and Red Hat, and I can imagine having all sorts of fun with that!

The other activity that we’ll do at least once during the semester is to bring the word of FOSS coolness to Nancy Dugre’s class at Minnechaug Regional High School. Nancy always puts in 200% effort, going well beyond the call of duty to incite excitement in computing in her students. She spends lots of her own time overseeing teams for programming contests, mentoring clubs, and organizing cool field trips to places like Google. We have visited her students in the past and both the Western New England University and the Minnechaug High School students report that they love the interactions.

Lots and lots of interesting opportunities. Now to weave them into a class….

POSSE Basics

July 24, 2011

I’m in Raleigh for the weekend just finishing up the POSSE Basics workshop. The program was hosted by Red Hat and is being run by Mel Chua, Sebastian Dziallas, Jared Smith and Greg DeKoenigsberg. We’ve also had help from folks who conducted verbal and video interviews of the profs. A huge Thank You to Greg for chauffeuring us around in his Mini Cooper which has a surprisingly comfortable back seat.

We had a POSSE. Thanks everybody.

Even though I’ve been involving students in FOSS projects for about five years, the POSSE Basics has made me realize again why I love working with students and FOSS. I’m impressed by how much fun there is in the FOSS world. I’m impressed by the breadth of opportunity for student learning in FOSS projects. And I’m impressed by the breadth of opportunity for me to learn! The FOSS world provides many and varied learning opportunities. So many in fact, that it is difficult to choose what to learn and in what environment.

And as is usual, talking with other FOSS folks and academics about involving students in FOSS projects has raised more questions. How can I create a sustainable series of activities over time and across different courses? What do students do in FOSS after they graduate? What sort of feedback on student experience is of use to the FOSS community? What are the best mechanisms for getting the news out there? I think that what we’re doing is really exciting and I clearly need to do a better job of marketing the WNE student accomplishments!

Passing it on to High School Students

April 6, 2011

The five seniors in my Advanced Software Engineering class and I visited Nancy Dugre’s combined CS1 and CS3 class at Minnechaug High School last Tuesday. My students got up early to make the 7:35 a.m. class and Nancy kindly jump-started us with coffee.

The overall goal of our visit was to convey some of the excitement of computing to high school students. And to generate interest in FOSS projects by showing the high school students some of the things that they could do.

We started with a FOSS Field Trip that had students exploring SourceForge. We wanted them to get an idea of the number and variety of FOSS projects that are available. We had students search for projects in an area that they were interested in and they searched for Facebook projects and gaming, but also guitar projects, soccer projects, and Linux projects. Some students expressed surprise at the number of applications they found.

Next my students demonstrated their FOSS projects and their contributions. Andrew McGrath is working on the GNOME OCRFeeder project and has just had code for converting images to plain text adopted in the latest release.

Justin Duperre and Bryan Hobbs have been working on the Spatiotemporal Epidemiological Modeler (STEM). They have added the capability to report the percentages of people currently infected with a disease, likely to be infected, and deceased as part of a tooltip display on a graphical depiction of disease spread in an area. Their code will be distributed in the upcoming release of the STEM tool.

Todd Binger and Jon Polaski have been working with OpenMRS. They created detailed installation instructions for the development environment (more on that in a future blog) have just submitted a patch to handle multi-part names in the Create Patient form.

The high school students had questions about how the seniors became interested in computing and their FOSS experiences. The seniors talked about how they learned that some of the classroom lessons such as being required to comment one’s code, were very useful in FOSS projects.

We then had another activity where the high school students attempted to create and execute test cases to replicate the OpenMRS issue with multi-part names. We wanted to demonstrate to the high school folks that they didn’t need an extensive coding background to contribute to FOSS.

As we are almost at the end of the second semester of these seniors working with FOSS, the experience allowed me to reflect on what we all had learned. My seniors clearly had gained an understanding of FOSS culture and conveyed excitement and interest in participating in their projects to the high school students. The seniors answered questions from the high school students adroitly, displaying their breadth of understanding of FOSS communities and how they work as well as of the role of computing in society. Andrew, Justin, Bryan, Jon, and Todd: I’m proud of you!

The Wonder of the FOSS World

April 2, 2011

This is a big “Thank you”. I’m in awe at the power of the FOSS community and of the willingness of folks to help.

This is a story about a student of mine who is completing a senior honor’s project. Andrew McGrath is conducting a survey of FOSS developers on the use of documentation. He is building off a survey that Tim Lethbridge, Janice Singer, and Andrew Forward created to determine how documentation is used by software engineers in industry. (“How Software Engineers Use Documentation: The State of the Practice”. IEEE Software, November 2003, pg 35-39.) Andrew is investigating the differences between FOSS practices and industry practices. Due to a variety of reasons, we are late in constructing the survey and we have a short timeline as we need the responses by April 14th.

On Thursday (3/31), I posted a request on, known as TOS, requesting that folks post the URL for the survey on any FOSS developer lists that they may know of. Leslie Hawthorn picked up the post within minutes and tweeted it. This caught the attention of Joe “Zonker” Brockmeier and Esther Schindler then retweeted . Thank you all for spreading the word!

Addition on 4/3/11: Today I learned that FOSSwiki had retweeted the survey info!!!

Within an hour, the URL for the survey had been distributed widely and survey completions were going up. I’m deeply thankful for those who marketed the survey and also for those who have completed the survey. The willingness of members of the FOSS community to help is a real blessing. Oh, and Andrew has been contributing to OCRFeeder, a document layout analysis and optical character recognition system that is part of the GNOME Assistive Technology suite.

We’ll post the results of the survey and some observations on the data in a couple of weeks so that folks can see what we found out.

The second iteration

January 22, 2011

We’ve just completed the first week of our Advanced Software Engineering course.  I’m running this as a project course with very little lecture and mostly “doing”.  In the spirit of transparency, both the students and I are logging our efforts online. All students are required to create a project plan and log their progress. I am also journaling my observations from an instructors point of view. I have chosen to use the SoftHum site for student work as well as my journaling both to provide me a central location for course documents as well as for providing supporting evidence for the funding of the effort. Wish us luck, we’re off again!

An ending and a beginning….

January 12, 2011

I’ve been on semester break since mid-December and I’ve used some of the time to reflect on my experiences in involving students in the Caribou project as well as plan for going forward.

The fall 2010 semester ended in success with the Software Engineering teams presenting their final reports. Students contributed new keyboards and other enhancements to Caribou. We held advertised the demonstrations and students created some very professional presentations.


Justin Duperre, Todd Binger and Jon Polaski presenting Caribou enhancements.

I was very proud of the effort that students put in, and while they may have been disappointed to not have code integrated into the larger project by the end of the class, I thought they did a great job in learning Caribou and in making enhancements. I was also proud of the way that students took on new technology. We all started the course knowing nothing about Caribou and little or nothing about GNOME and students jumped in and figured out how GNOME worked and how Caribou fits into AT.

Tony Tran, Brian Palasz and Andrew McGrath presenting future directions for Caribou.

I’ve spent the past several weeks thinking about what went well in the course and what didn’t. I am teaching a follow-on course, Advanced Software Engineering, this spring and we will continue to work in the OSS world. However, I have few lessons learned that I’ll apply both to this spring’s course as well to future offerings of the Software Engineering course:

  1. Get students more directly involved in the projects. I felt like in the first coruse I was too much of an intermediary in the communications and students need to be more immersed in the project.
  2. Have students take ownership of a portion of a project. Towards the end of last semester, I think that some students started to realize that they could make a meaningful contribution. I’d like this realization to come earlier in the course.
  3. Spend more time clearly identifying a portion of the project to be worked on, perhaps by picking a bug to fix. We spent a fair bit of time in the fall figuring out what needed to be done in the project and what we should do.
  4. Do more small-group meetings and individualized learning. This will give me a better idea of where students are in their learning as well as give students more space to ask questions. I can do that this semester as I’ll have a small group.

Right now I’m trying to decide whether to continue to focus on Caribou this next semester or to allow students to pick an OSS project of their choice. I’d like to provide some flexibility, but I don’t have the time to understand lots of OSS projects at a detailed level. And should we keep students in teams or shall we use the OSS environment as the team experience? Classes start January 18th so we’ll be embarking on this new adventure soon!

Running the race….

November 13, 2010

Wow, so much has happened in a month! And I’ve learned so much. I’m going to try to summarize the events in the next several paragraphs. I’m still processing what I’ve learned and my reflections on that will have to wait for a follow-on.

Frontiers in Education Conference

At the end of October, I attended the Frontiers in Education conference. This conference focuses on new developments in computing and engineering education. I was on a panel addressing different ways that students can participate in open source software in an academic environment.


Mel Chua, me, Clif Kussmaul, Matt Burke, Greg Hislop – FIE Panel on involving students in FOSS

FIE Panel 2010

The panel also had Mel Chua from RedHat, Clif Kussmaul from Muhlenberg, Matt Burke from George Washington, and Greg Hislop from Drexel. There were some good questions raised by the folks in the audience that caused me to think more widely about how open source fits in a variety of academic environments. Issues like Intellectual Property reared their head reminding me that we are still exploring what the intersection of OSS and academia looks like.

Merriment with Mel!

Mel Chua, Red Hat Education Liaison, came to visit for almost two weeks at the beginning of November. Thank you, thank you, thank you to Red Hat for supporting her visit! I felt like my brain went into fifth gear the entire time.  Mel participated in both my Software Engineering and in my Introduction to Informatics course and spoke with our student ACM club.  Mel’s energy and ability to engage people in thinking is awesome! She got lots more questions from my class than I usually do!


Mel in SE class 11/10/10

Mel teaching about planning in the OSS world

She and Sebastian Dziallas (undergraduate at Olin College of Engineering, engineering manager for Sugar on a Stick (SoaS), and founder of Fedora’s Education SIG) both put on a “Hack Share”  where Sebastian taught us how to package an OSS product. This was a 90-minute sprint for newbies to OSS where Sebastian led us through the difference between a package and the raw source code and how to package a product for easy release. Thank you Sebastian for taking the time to educate us! Please come back again! Soon!


Sebastian Hack Share 11-09-10

Sebastian teaching about packaging at the Hack Share

GNOME Summit

And to add to the excitement, Bryan Hobbs, Andrew McGrath, Jon Polaski, (Western New England College students), Mel, Sebastian and I all went to the GNOME Summit held at MIT in Boston on Saturday, November 6th. I had never been to such an event and it was eye opening. It was an immersion experience in how OSS works and it was exciting. At the opening meeting, the students got up and suggested a session on the Caribou project. Later they lead this session and got helpful input on direction. I’m quite proud of their professionalism for standing up for their project!

Bryan Hobbs, Jon Polaski, Sebastian Dziallas, Mel Chua and Andrew McGrath at the Gnome Summit 11-6-10

After the session on Caribou, Martin Owens gave Jon and Bryan a quick tutorial on SVG keys and ideas on how to integrate them into Caribou. Thank you Martin! Overall students got a much better picture of the scope and complexity of the computing profession. And I hope that they gained some of the wonderful motivation that propels an OSS project. We’ll definitely do this again as we all got lots of good stuff! The GNOME community was very welcoming and helpful.

I also got to spend a day with Mel and Sebastian talking to some Profs at Olin. It was one of those days that really energizes me. Talking to people that have done cool things results in interesting ideas and then more ideas are sparked and I went home very, very full of ideas. One idea that we came up with is to run joint/parallel Software Engineering courses at Olin and Western New England College.  Sebastian was thinking of running a student-led Software Engineering class at Olin in fall 2011 and I could have a senior SE class at that same time. The idea was for Sebastian to be the OSS and domain expert for the project and I would handle the academic side of the house such as gradeable items and grading. We would share the approach and SE teaching. Don’t know how exactly or if this can work, but I really like the idea.

To round out the visit, on her last day Mel cooked us a gourmet dinner. This lady can cook! We had salad with apples and cranberries, butternut soup with chipotle sour cream sauce, chicken stuffed with mozarella and sausage and rolls. We were stuffed and my kids (who typically have more limited tastes) were in awe.  The entire experience was wonderful and Mel, you are welcome in our home any time!

Women in Computing

October 3, 2010

I have just gotten back from attending the Grace Hopper Women in Computing Conference. Wow, what a blast! This was my first attendance and I have to say that it’s the first time that I’ve belonged to a majority at a computing event. I loved the energy and the supportive atmosphere and especially meeting new collaborators in open source! I’m definitely bringing my daughter next time.

I was on a panel with Avni Khatri, Senior Front-end Engineer, Yahoo! Inc.; Alice Bonhomme-Biais, Senior Software Engineer, Google; Jamie Lockwood, Academic Relations Manager, Yahoo! Labs; and Louiqa Raschid, Professor at University of Maryland. Thanks ladies! Our panel focused on humanitarian free and open source software and how academia and industry have collaborated to help build OSS projects.  We seemed to get lots of interest. I always find that questions about open source and involving students always makes me think more deeply about what I’m doing. Is there a better way to get students involved? What new ideas are there that I can take advantage of?

And to top it off, I got to have lunch on Friday with some of my TOS (TeachingOpenSource) buddies! Lunchers included Leslie Hawthorn, Deb Nicholson, Bill Madden, Anita Verno, and Greg Hislop. We heard about the cool app that Bill and Anita’s students had built for emergency services and about their plans for the fall. We also talked about the ups and downs of involving students in FOSS projects and exchanged stories about what worked and what didn’t. Thanks to Mel Chua and RedHat for supporting our interaction.

TOS lunch at Grace Hopper 2010

TOS lunchers at Grace Hopper Women in Computing Conference 2010

Out of the starting gate…

September 18, 2010

The adventure continues! We’ve formed teams of three or four and we’re learning the GNOME A11y community via participation in the A11y list and IRC. Each team has an installation of Caribou. We’re still struggling to get a stable installation of virtual machines in the lab, but students have been successful in installing Caribou on laptops. Our next job is to write up the requirements for Caribou. We’ll be taking some existing documentation as well as help from the GNOME A11y community and creating a more formal set of requirements that will hopefully more clearly define the functionality of Caribou.

I’ve been very much enjoying the folks I’m meeting on GNOME A11y. The community has been very supportive, reaching out to offer help. And the students are great. They’re digging in and I’m learning from them. I admit to struggling with the acronyms that fly by. So much to learn and not understanding one acronym can make it impossible to understand the rest of a conversation. But what fun! This is the most fun I’ve had teaching a course in a long time! It feels like I’m doing something real that has immediate impact.