How to incorporate open source into computer science classes

Four computer science instructors—all women—tell you how it's done.
416 readers like this.
How to do open research: 5 basic principles

Opensource.com

This year at the Grace Hopper Conference I'm moderating a panel on why, and how, to incorporate open source into computer science classes. The panelists are four computer science instructors—all women—who have already used open source projects in their classrooms.

I've asked these four talented instructors to tell you a little about themselves, what teaching open source has meant for them and their students, and what you'll hear at the Grace Hopper Celebration of Women in Computing, which is the world's largest gathering of women technologists. This year the event is at the George R. Brown Convention Center in Houston, Texas from October 19-21.

  • Darci Burdge, Nassau Community College
  • Lynn Lambert, Christopher Newport University
  • Becka Morgan, Western Oregon University
  • Nanette Veilleux, Simmons College

Your panel is about making open source development part of computer science classes. Can each of you tell me why you decided to teach open source?

DB: Students in entry-level CS classes don't really have an opportunity to look beyond the programming intensive curriculum. It was my goal to give them a glimpse of what they might experience in the "real world". I wanted them to see firsthand why the Pair Programming model we use in lab was important. I wanted them to understand why clear, concise, well-written documentation was important. I believe that it helps them to build their own programming skills by reading code written by others, even if they don't understand all of it. I've chosen to introduce students to humanitarian open source projects so they they understand better how software can improve the human condition and why that is important. Women in particular connect with this theme of helping others.

LL: There are many reasons for using open source in a classroom. First, our students do not get exposed enough to large code bases, to reading code that they haven't written, and to seeing a collaborative development system. It is a great opportunity to ask students to jump into an existing development environment. I was especially interested in using Humanitarian Free and Open Source Software (HFOSS) in the classroom. Like many universities, mine has a strong service component, and I thought combining the community service university focus into a course for majors would strengthen the importance of both.

NV: At Simmons we are very interested in attracting students who are not the typical CS students, but women and students from under-represented minorities. These students are often not motivated by narrow self-identity, but by their identities in a larger context. They want projects that are socially relevant in order to see the merit in what they do. HFOSS projects, especially due to the humanitarian aspects, were thought to be appealing.

BM: After teaching a class in how to participate in FOSS for my research I decided it was valuable to continue to teach this class to senior level students. The goal of this course is to allow students to be exposed to a large, legacy code base. They have the opportunity to learn to read and contribute to code that was written by others, a skill they will need in the workforce. Additionally they get to have the real world experience of working with developers who range in age and skill level, and who are not co-located. This is also experience they can put on their resumes that sets them apart from other recent college graduates.

You've each attended a Professors' Open Source Software Experience (POSSE) workshop, where interested instructors can learn how to incorporate open source into their classes. Was POSSE the first time you had contributed to an open source project? If not, how did you get started with open source?

DB: My introduction to the open source world was a bit happenstance. I met two of my current collaborators at a workshop unrelated to FOSS. After learning a bit about their work in the HFOSS space, I was immediately hooked. As stated previously, it appealed to me on so many levels. I actually helped plan my first POSSE, and boy did I feel like a fish out of water!

LL: This was definitely my first development experience with FOSS, though I've used Emacs since my undergraduate days in the 1980s, when it was new.

NV: I had heard about POSSE and had been unable to attend the first round but loved the idea. I had never contributed to open source—most of my own programming is for my research group.

BM: I started by trying to contribute in 2010 in preparation for my research. I struggle to continue to find ways to contribute on an ongoing basis. POSSE definitely helped me to feel better about this struggle. It is comforting to know that we don't have to have all the answers and that others struggled with entry into the FOSS world.

I bet some of your students are running into open source software concepts for the first time in your classes. What do you think their biggest misconceptions about open source are?

DB: Most of my students don't really know anything about open source. They may have heard of it, and some know that they use open source software such as Firefox, but that's about it. I think if I asked them to define what open source software is, most would answer that it is free as in free beer.

LL: I think they were surprised how structured it is. One student did not get her pull request accepted because her indentation did not match the standard in the rest of the code. The students thought that was pretty harsh. Also, I think they're surprised both how easy and how hard it is to contribute. It's easy because the community is welcoming, and it is easy to find a project that they're interested in that is written in a language that they know. It is hard because getting the software installed almost always has bumps, and it's difficult to find the line of code that has a bug in the middle of 700,000 lines of code spread across multiple files, especially code they haven't written and don't know.

NV: Yeah, free as in beer! Students don't realize that there are communities out there collectively coding. They also believe that anyone who would be contributing would be sort of an odd outlier, a solitary programmer who has nothing else to do but code.

BM: More and more students have heard of FOSS. I am not sure if this is because we offer a course in FOSS at Western Oregon University, or if it is just becoming more well known in general. The biggest confusion is usually around the business model, because of the misconception mentioned by Darci and Nanette about open source software being "free", followed closely by confusion about how someone would actually go about participating. It is still a black box to many students.

All four of you have had students work with open source projects, right? What projects are your students working with, and why?

DB: I have been most interested in having my students learn about open source software development by learning about OpenMRS, an open source medical records system. First, it is a humanitarian project, so this gives me an opportunity to make the distinction between FOSS and HFOSS. Since I have second and third semester students, I don't expect them to contribute, so mostly they observe. OpenMRS has a well-developed website which is frequently updated and well-maintained. They learn about community, communication tools, and a bit about version control and an open source contribution cycle. They sometimes learn new concepts or hone their understanding of concepts presented in lecture by reading code within the OpenMRS code base and reflecting on it. They're also learning first-hand why good documentation is important!

LL: We have worked mostly with Mifos, an open source microfinancing platform, but have also looked at OpenMRS, Ushahidi, and SahanaEden. Ed Cable, director of community programs at Mifos, has taken time to answer our questions directly, and that has been helpful.

NV: My students started with Mifos. We started there since Lynn Lambert had a student who had untangled the install/build process. I thought my students would be interested in microfinancing. However, I should have considered the application a bit more. There's controversy around the benefits of microfinancing, and the students would have been more on board if they were solidly behind the purpose.

Interestingly, they found Moodle, an open source learning management system, more interesting because they all know Moodle, and the value of their contributions seemed much more transparent to them.

BM: The last couple of years we have participated with Mozilla because it is a really inviting community. Additionally, Josh Matthews, who wrote the bug tracking system for the entry level members (BugsAhoy), volunteers to come virtually speak to my class. Josh talks about how to use the bug tracking system and answers all questions my students have. This level of mentorship has been invaluable.

Given the high probability that readers of opensource.com are people who contribute to open source communities, is there anything (that you'd like to share, of course) that you think would smooth the process for students who are participating in open source projects? Anything that communities could do to make it easier?

DB: Educate the educators! Most communities don't realize just how difficult it is for an instructor to become a student again, to feel lost in a new world, while at the same time trying to figure out how they can do open source in a classroom, at a level that students are comfortable with, while still covering all the required curriculum!

LL: The onramps are bumpy in even the most supportive projects. It could be that with the various operating systems, platforms, etc., that may be inevitable. And, many of the getting started pages are blissfully succinct. Still, maybe a few "click here to learn what Grunt/Tomcat/Node.js..." whatever is might help.

NV: I do like the idea of being productively lost. I think we don't prepare our students, especially our better students, if we don't expose them to complex problems.

BM: MENTORSHIP! Having people who can direct students, and give them tasks to work on is invaluable. However, this is a fine line. I have had a mentor who expected students to be experienced software developers and was fairly abrupt when they needed detailed explanations and help. People who are trying to learn to participate don't need to be made to feel like they do not know enough or that they are a bother to their mentor.

I also agree with educating the educator. It is really hard to figure this out, and having people who can teach without talking down is really valuable. As professors we are often expected to know the depth and breadth of all computer science.

What's special about Grace Hopper and why did you choose this venue for your panel?

DB: This will be my second time to Grace Hopper and I will never forget how empowering it was to be in a sea of computing professionals, educators, and students who were (for the most part) female! There is so much energy!

LL: The best part of GHC for me is the blending of different constituencies. I do not go to any other conference with such a blend of industry, students and faculty. I think that makes it an ideal place for this kind of panel.

NV: Yes, the energy. The other thing that is special about Grace Hopper are the recruiters. It's a place where my students can ask "And how is the culture at your company?" and not get stammering about beer and ping pong rather than maternity leave.

BM: I also remember my first time at Grace Hopper and the great energy. I have a distinct memory of being at the convention center in Portland, Oregon, standing at the bottom of the stairs after Sheryl Sandberg spoke, and watching wave after wave of women come down the stairs. I attend a great number of conferences where it is a majority of males in attendance so this was an awe-inspiring moment for me.

Darci, you've been involved with students' efforts to learn about open source outside of class. Tell me about that.

I've worked with small groups of students who became interested in open source while in my CS2 class. We met weekly during a portion of their summer vacation and explored various humanitarian open source projects. I've also worked with a Girls Who Code club at my local high school. I spent some time talking about HFOSS and introduced the girls to IRC. During a practice session, it was really interesting to watch them converse in a way that is both familiar and foreign at the same time. The most incredible moment was when they realized that they were talking with someone who was in the channel, but not in the room!

Lynn, you've done some research around video games. I'd love to hear more.

A chief scientist at NASA asked a group of us to investigate what motivates children to learn, and suggested that video games would. We bought a ton of computers and games for them, so no gaming consoles, and filled a lab at an elementary school, in the days when schools had computer labs. Some of the software was pure entertainment ("Sabrina the Teenage Witch"); some was edutainment ("Where is the World is Carmen San Diego"). We did a pre/post for motivation and interest in academic subjects, then tracked what games 4th graders chose (basically whatever was the closest, preferring what they'd played before), how much they played, and whether their interest in academics increased. Our major finding was that students are highly motivated to play any computer game, educational or not; and that students' interest in learning academic topics significantly improved when exposed to an educational computer arcade.

Becka, I see that you did your research on underrepresentation of minorities in open source software (OSS), focusing primarily on women. How does that affect the work you do in teaching now? Does OSS and POSSE figure into this?

My work as a professor is driven by my commitment to making computer science available to ALL students who want to pursue it. However, I have an explicit focus on underrepresented minorities because of my own experience as an undergrad coupled with my commitment to social justice. When I was studying CS I was older (I went back to school at 42), but I still dealt with the lack of self-efficacy that plagues so many women in this discipline.

I remember feeling that I was not as smart as the men and so I really needed to study something else, even though the evidence of grades told the opposite story. Fortunately one of my teachers, now one of my colleagues, gave me literature to read about the experience of women in computer science programs. It helped immensely to know that I wasn't alone. I now tell those stories frequently to all of my students to let them know that they have someone to talk to who can relate.

I have also found that adding open source to our curriculum, especially focusing on the good that Mozilla does, has allowed me to bring in a more altruistic focus in our students' junior and senior years. This is often really an important thing for many students (and research has shown that it is especially important to female students) to see the use of computer science for the good of humanity.

Nanette, I have always been fascinated with linguistics. What is prosody and what does it have to do with programming?

I think we underestimate what an amazing thing human to human communications is. I heard of a conversation that Richard Stallman and Marvin Minsky had about the human potential. One remark made was that anyone can learn programming. Specifically, Minsky said: "I mean, they learned to talk, didn't they?"

As machines become more ubiquitous and critical, not just for focused tasks like calculations, but for everyday activities, humans want to be able to interface with their machines in the most natural and available method: speech. This means that computers have to understand unrestricted human speech, including their prosody (emphasis and tone). This calls for computational models of unrestricted speech that goes beyond learned commands.

Learn more about how you can get students involved in open source by joining our panelists on October 21 at 9:00am.

Tags
User profile image.
Gina Likins | University Outreach, Open Source & Standards Team at Red Hat I have been working in internet strategy for more than 20 years, participating in online communities for nearly 25, and working in open source for more than four.  I'm passionate about finding ways to help our open source communities thrive and be more welcoming for everyone.

Comments are closed.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.