Educational Software - 2016-09-30This last week I've been taking my university classes and we've started taking practice classes as well, where we apply the theory we've learned. In my programming class it's programming in C++ (they use Code::Blocks with the MinGW compiler), which is nice (I was expecting them to be using Visual Studio, so it's a nice surprise). However, for my math class we're using Mathematica. Although I can get it for free by checking out the installation disc at the library and get a license through my student e-mail, it's still an ethical issue for an advocate of Free Software. I've been searching all over for a good alternative to Mathematica that is Free Software, and although I've found some wonderful alternatives (such as SAGE and Mathics), none of them are able to view/edit Mathematica Notebook files (which is surprising considering it's plain text).
However, the root of the problem does not lie with these alternatives for not being able to process proprietary formats, but rather with the educational facility (in this case the University of Jaen) for supporting such software and not allowing students to use a more ethical alternative (such as those mentioned previously) which have about the same capabilities. This is especially problematic since what this tells me is that they're teaching you a tool rather than the concepts behind the tool. If they were teaching the concepts behind the tool then using a different (more ethical) one would be perfectly fine as long as the concepts learned in theory are applied correctly. However, this is clearly not the case. Instead these classes are doing nothing but to make the students dependent on a specific software (and anon-free, extremely restrictive one at that) rather than something more accessible such as those alternatives mentioned before.
Though it may be a good question to ask, "Why is it so important for schools to use free software?". I believe that the reason is rather obvious. Considering the Four Essential Freedoms of Free Software, it is quite clear that these are all freedoms that should be promoted in an educational environment. The first freedom allows for the students to experiment, to attempt to break the program, to learn it and learn from it to the fullest, and the second is immensely important for programming students as it allows you to see how the program works on the inside and change/hack it to learn from it. The first two freedoms are very important to an educational environment, especially one where the students are studying programming (as we are).
In this sense, I consider it very important that students have the opportunity to use free software alternatives, and would even argue that the default software used in class should always be free software in order to help the students learn and improve (or at least give them the opportunity to do so).