CCSC South Central: Teaching Open Source
Today 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.
Gina started by asking the audience how many people in the room taught open source already – and no one raised their hands!! That means Gina had to start with the background of what open source is. Gina says open source is 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 with is allergic to nuts and the recipe calls for nuts then that person can alter the recipe to make it so that it doesn’t kill them. 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 some cookies – but you don’t really know what’s in them and you can’t replicate them. You can try … but then you get sued for sharing those proprietary cookies.
Another open source example – 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.
Next some legal terminology. It’s important to understand copyright. Gina shared with her a pretty flower drawing and now that it’s up there it’s copyrighted (so of course she added a creative commons license to the picture).
So what’s the difference between open source and free and open source software? The difference is that the free licenses always require that you share what you do under the 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.
So now – a bit of history because it’s important to know where the magic comes from. In the 50s software and hardware came bundled together. In the 60s that was changed because the DOJ thought that bundling hardware and software was monopolistic. In 1983 Richard Stallman launched the GNU project which were the beginnings of the open source movement as a thing. In 1989 the first GPL was released. This history and intro is the minimum that every computer science graduate should know! Especially the licensing part because students need to know what rights people have to use their software.
90% of fortune 500 companies use open source software!! The governments of all 50 states use open source software. 76% of today’s developers use open source. Students need to know about this so that they’re ready when they’re looking for a job. By learning open source you learn to code from others by working in a virtual team and collaborating. By working on an open source project you learn how to learn – because no one is there to sit down and teach you 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 and using open source students get to work on real code, fork that code, and talk about why that was a good/bad idea. As a side 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. 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 – this is a great way to get more women in your classes.
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 tiny!! Usually you’ll have to add to a project that exists already – and learning how to communicate with other developers is key for this. Working on open source will also allow students to make connections with actual industry connections so that they can use those when it’s time to find a job. It’s a way for student to prove themselves!
Given all that – how do we differentiate open source from proprietary. We already talked about licenses but there are other things to know about. First is the open source principles and second is the community!
The principles includes:
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 ‘gotchas’.
First off, as academics 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 though by putting yourself in this role to 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 – you grow. Learning that will make it so that students can learn any system.
Next you’ll be a stranger in a strange land. There is no manager or single person in charge – it’s a bit of the wild wild west. This is not an environment you can control – you will be a guest. It won’t be like stepping in to a classroom and saying this is what we’re doing today.
Open source can occasionally 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 the Internet – it’s all open and anyone can say anything. The good thing is that instructors are helping students in these situations – hopefully to tell them what is proper etiquette and what isn’t. Hopefully teaching open source in schools will prevent some of this. Learn more about etiquette in open source projects from Gina’s ApacheCon Keynote.
Even with all that it’s extremely important!! Students need to learn what open source is and how to contribute.
Quote from Gina: “It’s amazing how wonderful scary things can be”
How do we move forward? Check out POSSE. Teaches professors what they need to know so they can teach open source in their classes. You can also look at TeachingOpenSource.org and sign up for the mailing list. Finally be sure to look in to OpenHatch which provides tools for building your curriculum and/or learning what open source is like.
The post CCSC South Central: Teaching Open Source appeared first on What I Learned Today....
Related posts:
Teaching Open Source
Teaching Open Source in NJ
Teach Students Open Source