There is a huge push in our schools to introduce learners to STEM (Science, Technology, Engineering and Mathematics) and to cultivate student interest in STEM. The reason is obvious. These are fields of technology that will be generating jobs in the future as well as making our world a better place. So, why do I say that STEM education and open source is a match made in heaven? Let me elucidate.
First of all, there is an enormous volume of open source software that involves STEM in one at least one capacity. Better still, many of these applications are free! Looking at the screenshot at left, we see the author’s session in Synaptic, a software management application for Ubuntu Linux. In the lower left-hand corner of said screenshot, we can see that my search for “math” generated 855 hits. Granted, not all of these are necessarily developed for elementary or secondary classroom use, but you’re sure to find an application that will meet your needs and pique your students’ interest.
One strong argument is the variety of applications available to help students learn computer programming. There is almost literally something for every taste. My regular readers will know what a big fan I am of Colobot. The premise is that you are an astronaut preparing a planet for colonization. Towards this end, you have programmable robots at your disposal. They just need instructions (programming) in order to do their jobs. The screenshot to the right shows Colobot’s Program editor window. For the artistic, KTurtle, part of the KDE Education Project, allows users to enter code to create colorful patterns. Laby gives the user a chance to troubleshoot and guide a robot ant through a maze, avoiding or overcoming obstacles. Laby even allows users to select from a variety of programming languages with which to work. Etoys integrates art and computer programming by allowing users to create pictures and then to animate these pictures using Squeak, Etoys integrated programming language. There are other applications, so please shop around to find one that you believe would best stimulate your students’ inner programmers.
Another supporting point for my claim is the number of programming languages available with the installation of an open source operating system, like Linux or BSD UNIX. Among these are C, C++, Python, Perl, Java and Ruby, which are among the better known, but there are others as well. Your students can use the above applications to learn to write computer programs and then chose a language through which their newly attained programming skills can be applied. Each language has its strengths (Perl, for example, is ideal for working with strings of text). I think the best approach is to help students select the programming language that best matches what kind of program that they would like to write..
Probably the strongest argument for my claim is that open source, by its nature, invites the curious. As users, students have a right, under the GPL (GNU Genreal Public LIcense), to change the software with the intention of improving it. For example, in Colobot, users can customize their astronaut (hair color, sunglasses, etc.). The one thing that can’t be customized is the gender of the astronaut. It’s always a man. We need a female astronaut as an option. How cool would it be to be able to say that your students created a female astronaut for Colobot? Or added enhancements to other pieces of open source software? Students could look at the development history of the software and see their contribution listed. How’s that for a well-deserved feeling of accomplishment? It might take a little time to find open source software that your STEM students will love, but the rewards will be worth it.
Breijs, C. (2017). KTurtle [computer software]. KDE Education Project: GNU General Public License.
Colobot [computer software]. (n.d.). GNU General Public License.
Etoys [computer software]. (n.d.). GNU Genreal Public License.
Laby [computer software]. (n.d.). GNU General Public License.
Vogt, M. . Synaptic [computer software]. GNU General Public License.