Updated: Apr 11, 2022
One aspect of coding that is now commonplace in the real world but rarely explored by kids’ coding classes is open source. In this blog, we explore common questions to answer when explaining open source to kids and include a video where open source expert Nithya Ruff introduces open-source coding and answers questions from students around the world.
What is Open Source Software in simple words?
Open-source software is code that is distributed in source code form for people to use and modify. Many powerful and common industry software (like Linux, TensorFlow, SciKit learn - just to name a few) are open source. There are many open-source licenses that determine the rules around open source. Over the last two decades, open-source has become a dominant factor in software development and is one of the largest forces behind new software creation.
Open source facts for kids
Some of the most powerful and common AI software in the world are open source. Examples are SciKit Learn, Tensorflow, and Pytorch.
Anyone can contribute to open-source software - even kids!
Open source is great for learning how real-world software works - since the code is right there and you can read it
Anyone can open source their own software - even kids! This is a great way to get other people to use your code, get ideas on how to improve it, and distinguish yourself by your work.
What should middle schoolers know about open source?
By middle school, chances are you have written some code, maybe built an AI project, a game etc. You can share your code with the world by open-sourcing it. It’s a great way to showcase what you have done and help other people benefit from your work. If you are working with a language like Python, you should also look for programs that other people have written that can help you with your projects.
What should high schoolers know about open source?
For high school students, open-source is a great way to showcase their coding projects and build more powerful projects quickly by leveraging code written by others. High school students who love to code should also consider contributing to open-source projects. This is a great way to learn how real-world code is developed, create features and code that can be used by people all over the world, and distinguish yourself in college applications.
Nithya’s Presentation: Why Open Source is Here to Stay
Nithya Ruff is an open-source expert and Director of Open Source at Comcast. In the video below, she speaks to kids about the history of software, how open source came into existence, why it is here to stay, and how to get involved.
So what I'd like to do now is introduce Nithya. So Nithya and I have known each other for a very long time, welcome Nithya, it's so great to see you again. And Nithya works in this really important area that is important for all computer science, but also for AI, called Open Source. So for those of you who may not know what the impact of open source is, I'm sure Nithya will tell you in a lot of detail, but I want the one thing I will tell you is a one of the reasons why AI has become so prevalent in the last few years is because of open source. And if the if the AI software that is open source had not existed, there will be much, much less AI in the world today. So I will just say that in saying that she knows all about open source. So take it away, Nithya.
Thank you so much, Nisha, and it's so good to be here with all of you. I look forward to sharing with you why open source has become such a great way to develop software and share software with everybody and to solve big problems like AI, like world hunger, or, you know, how do we reach everybody from a COVID 19 vaccine perspective, etc. So let me share some slides with all of you. Which, which will help me explain what open sources. Can everybody see the slides? Yes, looks good. Thank you, you bet. And I'm going to put it into speaker view. Okay. So, I will quickly introduce myself. So just to let you know, I grew up in Bangalore, India, which is in the south of India. And I studied computer science and also business, how to, you know, create products, how to sell products to customers, etc. And I have two beautiful daughters, one of whom is studying medicine, the other one is a journalist. And I love open source. So I hope to share with you what open sources and why it's important to AI and to really solving problems. And I love what Nisha is doing with teaching technology, teaching others how to create a career become a creator, you know, solve problems. And I work for a company called Comcast, which creates entertainment services, and also internet services. So if you're logging in, in, say, California, you're probably connecting to a Comcast Internet service. So let me talk a little bit about how software used to be, you know, back in the day, right in the 1970s, and maybe even 80s, companies would create the software, and they would not share with you the recipe or how they wrote the software. So you could not even modify it, you could not fix it, if you found a bug, you could not even use it for everything you want to you could only use it for certain things, you could not integrate the software you wrote into that software, and you could not share that with others. And you have to get the permission of this company, or you have to pay them a big fee to get the software. So that really prevented people from collaborating, sharing, changing, modifying, etc. So you can imagine, you know, it was pretty difficult to work with each other on doing some common software. So what happened in the 1980s and 90s, is that a couple of scientists at MIT, which is a university in Boston, known for its technology, innovation, its engineer engineering work. What these scientists did was they said, It's not fair that I cannot see the code, it's not fair that I cannot change it, I cannot fix a bug if I see it, or I cannot put it on some hardware that I have, that the manufacturer or the company did not test it on. So they decided to change the way software was written and the way software was licensed. So they said, From now on, you know, software that we write, will be free for everybody to look at, to modify it to change it. And if they find bugs, they can fix it themselves. They don't have to contact us. They can integrate their own software, they can use it for anything they want. And they can give it to anybody they want. And so this was the beginning of some new ways to create software to share it widely with people to work together to create and to make a difference and change it and move it forward really quickly.
So what then happens is, a young computer science student in Finland, decides to take these freedoms and this new way of creating software. And he starts sharing his software, which was an operating system. So an operating system really sits and runs the hardware on a computer, and then lets you write applications on top of it. It takes care of all the housekeeping if you will, on the hardware. So he decides to use this new license or this new way of developing software to distribute his software. And this cute little penguin is called tucks in tux became the symbol of the software that he wrote, which is called Linux. So very soon, what happens is Linux becomes extremely popular. You know, today, for example, every mobile phone has some amount of Linux and open source on it, you'll find that the Mars rover mission, used open source, and automobiles run open source, everything you touch these days has some amount of Linux or open source, and so on organizations started, like the Linux Foundation, the Apache Software Foundation, and their job was to bring together people bring together companies to work together to solve problems to create software together. And you'll find that a lot of companies started shipping products with open source software, like IBM, and sun, which is a company that used to exist in the 80s and 90s. And Hewlett Packard and Red Hat, etc. Then what happens is, you realize that open source starts getting into every single area of technology. And that's why Nisha said, you know, open source is important not just to AI, but in all of computer science. If you are developing software, you will come across open source. In blockchain. If you're were working with big data, like storing data and manipulating data, which a lot of AI scientists do, or you're working in the Internet of Things, which is all of the devices that we use today will become intelligent will become connected to the network will have some sensors that will collect information share information. And the cloud where a lot of computer science is happening today, where computing is happening with data is stored when networking is happening. And mobile phones, as we discussed is is very much Android, for example, which runs on a lot of phones in the world is mostly based on open source, it's Linux plus a lot of other open source projects that are combined together to create that mobile phone. And certainly in AI, whether it is things like TensorFlow, or training programs or data sets, there are now even licenses for sharing data so that you can train your AI model in in certain, you know, areas of problem solving. So it's in every single area. And so as a software developer today, if you're developing software, you are using some form of open source.
And open source is really fast. Because there are millions of people working on open source projects. And they're constantly adding and changing and, you know, putting code in around the world. Imagine that 24 by seven. So you can see that the pace of change and the pace of improvement of open source is so fast that no one company can keep up. No one organization can do it at the speed of what the whole global community of developers can. So there are many of developers. And there are millions of projects on a website called GitHub. And so there's billions of code lines of code that are being developed using open source. And every day, almost 1100 projects are added to GitHub, which are solving some problem or the other. And new versions of software are developed every single day. Just imagine any person who has a problem to solve, can start coding and start creating a project, they can put it out on GitHub, and then they can say, Hey, guys, if you have the same problem, I would like you to use this project to solve your problem. And if you're modifying it, please contribute back to this project. So everybody can benefit from it. And so you can imagine that even though one person started it, soon, others who also have the same problem will start getting involved first as users, then they'll start contributing to it, then they start, you know, taking it and using it in lots of different ways that it was never really designed to do. But now it becomes used across a very broad set of problems. So that's how open source really develops and accelerates really, really fast. And today, open source through the foundations that I talked about, is solving problems in lots of different areas. For instance, in automotive, like BMW, Mercedes, Waldo, etc, all of these companies use open source to do their infotainment systems, you know, through which you can see maps, you can listen to music, they're also using it for safety systems in the car. And then financial services industries, like your banks, like the trading, investment trading companies, are using open source to work more effectively, and to serve their customers better. And even the film industry. So companies like DreamWorks, companies like Disney, and Pixar are using open source projects to develop faster, better, cheaper, and of course, the energy industry. So the industry that delivers your electricity and grid is now beginning to become more software oriented from hardware and becoming more intelligent, more connected, more networked, using, among other things, open source software, because the whole industry can collaborate together or work together to solve common problems that the whole industry has. So my company, I work for Comcast, I mentioned, and we are also very involved in open source, we use a lot of it to create our own, say, entertainment services, to create the internet services that we provide to customers, to enable customers to have a better experience using cable and media and movies, etc. So we most definitely consume it. We also contribute changes that we make and new projects. And we support open source because we think it's a great way to create, to problem solve, to innovate and to work with each other as companies or as people.
So let me summarize by saying, if you have a big problem to solve, open source really helps you work with others in a very collaborative and very effective way, and transparent way and, you know, open way to solve these problems. And so you can apply it not just to coding, but you could say, I want to bring a community of people together to solve a problem around, say, climate change, or around hunger. And I want to first discuss what are some of the solutions we can bring together. And then of course, we can also then code, we can create projects in software that others can use, which then allows us to make the solutions that we came up with available to a larger and larger group of people. And I want to share a couple of resources for you. Open source.com has a lot of articles written by lots of different people on different aspects of open source. So you can go there and Google And find solutions. And then there's also a guide that's been written called Open Source start guide, slash how to contribute. And if you look at that, it'll tell you how to get involved in existing projects, how to create a new project, and how to really start becoming part of the open source way of collaborating and working with each other. So I hope this gave you a good idea of what open source is, how it is used today, and how you can get involved. And thank you so much for inviting me, Nisha, and thank you everyone for giving me a chance to share this.
Thank you very much Nithya, this was absolutely awesome. So if everybody if anybody has any questions, if you can, please put them on the chat. You know, and, you know, and then I will post them to Nithya. So one question that Yeah, I was wondering is do you for for some of our older students, you know, like ones who are more in high school? Do you have any advice for them on how they can get involved with open source?
Um, I would say, you know, there are a couple of mentorship organizations Nisha, but I don't know how young they go. The Linux Foundation, for example, has mentorship programs where they pair a programmer with a mentor on a project. And a mentor helps them find simple and easy ways to contribute to the project, right? Whether it's documentation changes, or a small bug that they can fix, or give a talk on, use it and then give a talk on the use of it. There's also a group called outreachy, which is in the software freedom Conservancy foundation. And they also do the same thing they match an intern with a mentor, but let me find out how we can take open source to younger and younger groups and, and help them you know, start learning and contributing.
That would be wonderful, because one thing that we have right now, in some, so less perhaps in the core kernel, because the kernel is usually a little too complex for K 12 students. But when it comes to application code, right, so we have students every day who are working with psychic learn, some of our advanced students are working with TensorFlow and things like that. And many students do write their own Python snippets, and then put them on GitHub. And so anything that, you know, can help them sort of, because it's a wonderful way for them to reach, you know, to kind of engage with the community, even while they're very young and get learn and get, you know, benefit from it and stuff like that. And so certainly anything that can be I think it'll be good for the open source environment as well, to, you know, feel like people are, you know, kind of oriented to it.
You completely agree with you, Nisha, I think the Python community is fantastic. And they have many different ways to involve people. So I would look there. And I will also look to see, you know, how the Python community encourages new developers and new entrants into the community. Wonderful. Thank you so much, Nithya. Really appreciate the talk.
Nithya gave this talk at AIStars 2021