Free Software in Schools
(from a reply to a mailing list)

Obligatory Disclaimer

  1. The content of this page, and the opinions expressed within, may or may not be representative of my own ideas. They do not, however, reflect the views of the University of Michigan in any way.
  2. I am not nearly an authority on any of this. So all the information that follows can be outright wrong. Use any of it at your own risk. I am not responsible for any resulting damages. If this scares you, stop reading.

So, here's the deal. I decide to work, but then I decide to check e-mail. I fancy one mail on the FSF Friends mailing list, and decide this is the best of times to unleash my wisdom and experience. For posterity, I am pasting the exchange here.

The Actual E-mail

I'll begin with a verbatim reproduction of the query that started it all, from a professor at an engineering college wondering how to introduce his students to and incorporate Free Software into his curriculum:

"Hi friends,

I have an opportunity to teach a few courses to computer science students at an engineering college in Trivandrum. I would like to know your opinions/ideas on introducing the students to OSS. Though I haven't had much interaction with the students yet, I believe that most of the 2nd year guys are not familiar with GNU/Linux.

Balachandran Chandrasekharan"

And here's what I had to say about it.

Greetings.

Firstly, it’s nice to hear teachers at colleges taking the initiative. When I was in school/college (and still am for that matter), we weren’t explicitly told about the ideals and goals of these projects, but we were exposed to a good deal of them since there were (and are) labs running these software, and we were using them often.

But, (I don’t quite know whether to refer to you as Balachandran or Sir, so I am going with neither) I am sure once you talk to your students you will be pleasantly surprised how much they have already been exposed to GNU Linux and other Free Software, and how much they have figured out on their own and from other people. From personal experience, anybody who I’ve known to be curious or read any magazine related to computers or technology has popped in a distribution install disc and tried playing with it at home. This has been, again in my experience, in high school, when they have finally decided they are brave enough to partition their hard disk. Many of them have gone on to be full time users.

I think what I am trying to say is, a fair portion of the people, by second year in college have tried it, are using it or have friends who do. It would be nice if you could identify these people, and help them influence people they know to try it, or help them with installation or in other ways. This, I have seen is the easiest way to get people comfortable with it. My parents, for instance, don’t have an issue now with using Mandrake GNU Linux (granted their usual realm of usage doesn’t propagate too much beyond Galeon, gaim, OpenOffice.org and Ximian Evolution on a fairly standard GNOME desktop). But they wouldn’t have made an attempt to get it installed on a machine themselves. Once that is done and everything is set up to “just work”, they are comfortable without proprietary software. Anyway, enough of my personal experiences and to attempt to answer your question in a college setting.

My suggestions include (not all are necessarily feasible, I know):

* First, on the same note as above, organise a local user group for people who use these software, at a college or larger level, so that they can meet once a month or so and help/influence other people. (This is also a sort of social event for the geeky types. We need to get out more. At least this way it’s with like minded people to an extent.)
* If the primary work environment in labs is Windows based (which I am assuming it is) have the lab administrator install a fairly recent GNU Linux distribution on a separate partition and indicate to the students they can boot to it if they want. (Again, I am assuming you do not wish to remove the windows partition just yet). There is usually a rather common misconception that free software is harder to use, because it is free and used only by hackers. Once people try it, they could realize they were not entirely right. Plus there is usually a lot of cool stuff, the GIMP for instance, that can catch people’s fancy. I’d have to say, superficial as it may be, programs like the GIMP and eye-candy in environments such as Enlightenment (no “real” updates in ages) made it cool and fun to use. Which is actually quite important when you are in school.
* As a step leading to what I said above, replace (or install along side) standard windows software (such as MS Office, IE, Outlook Express …) and other proprietary software, with free equivalents (OpenOffice.org, Firebird, Thunderbird …). If people get used to, say OpenOffice.org on windows, and they realize it runs just the same or even better on GNU Linux, they will find it easier, and hence be more willing to make the shift. (Again, in my experience, environments such as Cygwin are generally of very different quality, so please don’t make it a users first experience. They will tend to assume all software on an “actual” GNU Linux environment performs that way.)
* Please don’t force the coursework, in your case (I am assuming programming) to depend on the nuances of a particular compiler or platform (graphics programming for instance). Teach them standard programming practices based on rigorous standards, so people can use the compilers and build chains of their choice. Again hoping this will allow people to delve into GNU software, such as gcc, gdb and make. It will be hard to say, yes, GNU Linux can do this and that, but please code in MS Visual C++ because your assignment requires some win32 specific headers. The same goes for using, say Word to type out reports. Introduce them to Latex or a similar program, which may be harder initially, but once they get the hang of it, the quality of their work will be higher. ( I am not a student in the field of computer science, so am not entirely sure what really goes into the curriculum. The same logic also applies to say, HTML/XHTML, SQL and whatever else the curriculum might contain.)
* As a practice, in general, following the same vein of the previous point, don’t use proprietary or patented formats as far as possible for anything and set an example. If you want to play them, say an audio clip of a talk, use an Ogg Vorbis file and not an MP3. Someone will definitely notice this, and ask you why. Then you can use that as an opportunity to explain the ideals, which I have reiterated as my next point.
* In classes, indicate the ideals and goals behind such projects. They will realize for themselves the technical superiority (or where it is lacking) of these tools in comparison with their proprietary counterparts. Once people understand the ideology, they will appreciate it a lot more. The ones so inclined will also contribute code, financially, bug reports etc.. to help these projects grow.
* And please don’t call it OSS.

I could come up with a few more if I really thought about it, but I will wait to see how people feel about this existing set before I do.

Just another student and FSF associate member from the month he started earning,
Harish Narayanan