Recently, I had the pleasure of attending a talk by Gina Likins from Red Hat at the 2015 Consortium for Computing Sciences in Colleges (CCSC): South Central conference about teaching open source.
Open source is...
Gina started by asking the audience how many people in the room teach open source? No one raised their hand! That means Gina had to start with the background of what open source is—and, she says it is like a cookie (yum). When you bake a cookie you can share the cookies and the recipe with your friends and family. If one of the people you share the recipe with is allergic to nuts and the recipe calls for nuts, then that person can alter the recipe. There is also the potential for people to take the recipe and improve upon it. Now, of course you can go to the store and buy cookies instead of make them, but you wouldn't know for sure all of the ingredients of these store-bought cookies. And, it would be hard to replicate them. If you tried, you would run the risk of being sued for sharing proprietary cookies.
Another example of open source: You wouldn’t buy a car with the hood welded shut, so why do we buy proprietary software? If you can’t see what’s going on and see what’s happening under the hood then you’re stuck with the car exactly the way it is and that might not be so great. While some people are fine with that, computer geeks shouldn’t be. We should want to get in there and tinker with it.
It’s important to understand copyright. Gina shared a pretty flower drawing, which is automatically protected by a Copyright license, so she changes it to a Creative Commons license. What’s the difference between open source and free and open source software? The difference is that the free license always requires that you share what you do under a free license. So, if you’re under an open source license and you make a modification you can change the license. If you’re under a free license you don’t have that option—the license must stay the same.
History of open source
It’s important to know where the magic of open source comes from. In the 50s software and hardware came bundled together. In the 60s that changed because the Department of Justice thought that bundling hardware and software was monopolistic. In 1983, Richard Stallman launched the GNU project which was the beginning of the free and open source movement. Then, in 1989, the first GPL (GNU General Public License) was released.
This bit of history is the minimum that every computer science graduate should know! Especially the understanding open source licensing because we need to know what rights people have to use our software.
90% of Fortune 500 companies use open source software.
The governments of all 50 states in the United States use open source software.
76% of today’s developers use open source tools.
Students need to know about open source so that they’re ready when looking for a job. By learning open source, a student learns to code from others by working in a virtual team and collaborating. By working on an open source project, studnets learn how to learn because no one is there to hold your hand, you have to learn a lot yourself. This is how students learn how to problem solve, ask smart questions, and read documentation. By teaching open source, students get to work on real code, fork that code, and talk about why that was a good/bad idea.
Writer's note: I personally don’t remember any of the programs I wrote in my computer science classes; none of them had any benefit to me or were saved for me to go back and look at. Students working on open source get to know that they’re working on real code being used by real people.
Contribute to a project
If you’re looking for a project, take a look at Humanitarian Free and Open Source (HFOSS) projects because these attract a more diverse audience. They are also a great way to get more women involved. Working on a project is an important skill to teach students because you’re never ever going to work alone in the real world. Furthermore, the likelihood that you’ll be writing your own code is very small. Usually you’ll be adding to a project that already exists and learning how to communicate with other developers.
Working on an open source project will also allow you to make connections with industry contributors; students will find this of big help when it’s time to find a job, and it’s a way for them to prove themselves!
The wild west of open source
How do we differentiate open source from proprietary? We already talked about licenses, but there are other things to know about, like the open source principles and the open source community.
The principles include:
- Open exchange: Communication is transparent
- Participation: When we are free to collaborate, we create
- Rapid prototyping: Can lead to rapid failures, but that leads to better solutions
- Meritocracy: The best ideas win
- Community: Together, we can do more
All that sounds awesome right? Well, there are some catches. First off, if you are a teacher, you’re used to knowing everything about the thing you’re teaching. Open source projects are scary because you’re not going to know them inside and out. There’s an opportunity here that by putting yourself in this role you teach your kids that it’s okay to not know everything and show them how to ask the right questions and learn how to learn. This is how we grow: even if our code isn’t accepted, we grow. Learning that will make it so that students can learn any system.
Next, contributing to open source may make you a stranger in a strange land. There is no manager or single person in charge many times, and it can be a bit of a wild west. This is not an environment you can control. You will be a guest. It won’t be like stepping into a classroom and saying: This is what we’re doing today. Also, occasionally someone in an open source community can be aggressive. With freedom and transparency comes opinions, and sometimes those opinions are not expressed politely. If there were an HR department in open source then some of these things wouldn’t happen, but that’s not how open source works. It’s like the Internet, it’s all open and anyone can say anything. The good thing is that as a teacher, you can help your students in these situations and tell them what is proper etiquette and what isn’t. You can learn more about etiquette in open source projects from Gina’s ApacheCon keynote.
"It’s amazing how wonderfully scary things can be," said Gina.
How do teachers move forward with open source as a partner? Check out POSSE: a conference to teach educators what they need to know so they can teach open source in the classroom. Also, check out TeachingOpenSource.org and sign up for the mailing list. Finally, be sure to explore OpenHatch for opportunities and tools to build your curriculum.
Revised from this post.