Dieser Werkzeugkasten ebnet den Einstieg in das Thema „Freie Software“ in der Schule und stellt einige für die schulische Arbeit geeignete Werkzeuge vor, sodass Lehrkräfte in kurzer Zeit entscheiden können, ob und wie diese ihnen bei ihrer Arbeit helfen können. Die Auswahl erhebt natürlich keinen Anspruch auf Vollständigkeit, präsentiert jedoch eine Übersicht über Software zu allen schulisch relevanten Bereichen und porträtiert detailliert und praxisbezogen sieben wichtige Werkzeuge samt pädagogischer Einschätzung.
Die Projektwoche steht an und die Schüler*innen haben eine Idee, für die Software nötig ist. Da das Thema für manche Lehrkraft Neuland ist, stellt sich die Frage, welches Programm eingesetzt werden soll. Förderlich wäre es, wenn jede Schülerin und jeder Schüler die Software – auch zu Hause und auf den unterschiedlichen Systemen – dauerhaft verwenden kann. Dabei möchte man rechtliche Probleme vermeiden. Viel Geld zum Kauf von Software ist nicht da, dafür aber das Unbehagen bei dem Gedanken, die Schüler*innen für ein kostenpflichtiges Produkt einer kommerziellen Firma zu schulen.
In dieser Situation spricht vieles für den Einsatz von Freier Software. Ein weiterer Vorteil: Freie Software kann auch als Philosophie verstanden werden; als praktisches Beispiel dafür, dass aus vielen individuellen Beiträgen ein großer Nutzen für die Allgemeinheit entstehen kann. Ebenso ein Aspekt, der im Unterricht angesprochen werden kann.
Man stelle sich vor, man wolle Tango tanzen lernen. Dann studiert man die zugehörige Bewegungsfolge (das „Programm“) ein, die die Beine (die „Hardware“) später nachvollziehen: Wiegeschritt – Promenade – Linksdrehung etc. Sehr ähnlich ist die Situation bei einem Computer. Man muss ihm beibringen, wie er das jeweilige Problem („Tango tanzen“) systematisch lösen soll: Wenn dies, dann tue das etc. Diese Anleitung bezeichnet man als „Software“. Das Gerät „Computer“ kann im Gegensatz zur Software angefasst werden und wird daher als „Hardware“ bezeichnet (von ursprünglich hardware = Eisenwaren). Das Anpassen von Hardware nennt man übrigens Hacking und die gerade populäre Maker-Bewegung[1] hat dazu das Motto „If you can’t hack it, you don’t own it“.
Der Weg des Do-it-Yourself ist prinzipiell gangbar, aber sehr mühselig: Man müsste den Computer selber programmieren. Viel einfacher ist es, ihn „zur Schule zu schicken“. Dann übernehmen Programmierer*innen die Aufgabe und schreiben eine Anleitung – das Programm. Da Programme ohne Aufwand vervielfältigt werden können, muss die Anleitung nur einmal geschrieben werden und die Kosten verteilen sich fair auf alle Programmbenutzer*innen. Einige Programmierer*innen schreiben ihre Programme in der Freizeit und verzichten auf manche ihrer Rechte. Diese Programme darf jeder benutzen – einfach so. Das ist ideal für den Unterricht: Die Schüler*innen können die Software überall verwenden; Die Lizenzbedingungen lassen dies explizit zu.
Verschiedene Computertypen „sprechen“ unterschiedliche „Muttersprachen“. Entscheidet sich ein Hersteller für einen bestimmten CPU-Typ (das Gehirn des Computers), so kann dieser Computer nur Programme in der Maschinensprache (= Muttersprache) dieses speziellen Typs verstehen. Ein Computer mit einem anderen CPU-Typ kann dieses Programm nicht ausführen.
Zudem geben die Hersteller ihren Computern meist eine spezielle Software mit, welche sich selbstständig um die technischen Abläufe wie Suchen, Löschen, Drucken etc. kümmert. Diese Programme heißen Betriebssysteme (engl. Operating System, kurz OS). Bekannt sind Linux, Windows, Android und OS X[2].
Bei Windows-Systemen gibt es von jeder Version zwei leicht unterschiedliche Typen: 32-Bit und 64-Bit. Der Unterschied liegt darin, dass 64-Bit-Programme mehr Daten speichern können. Neuere Programme gibt es immer öfter nur noch als 64-Bit-Version, die nicht in einem 32-Bit-Betriebssystem funktionieren. Umgekehrt laufen aber ältere 32-Bit-Programme in 64-Bit-Betriebssystemen; sie sind abwärts-kompatibel.
Jedes Programm muss also sowohl zum Chip als auch zum Betriebssystem passen. So kann z.B. eine tolle Anwendung für einen Apple-Computer nicht auf einem Windows-Computer starten.
Wichtig ist, ob ein Programm alle Daten lokal – also in dem Rechner, an dem man arbeitet – speichert. Oft werden nämlich Programmteile oder die Hilfetexte auf einem Server gespeichert. Werden diese Daten benötigt, so muss sich das Programm erst mit dem Server verständigen. Ist jedoch die Verbindung gestört oder der Server „offline“, so können die Daten nicht abgerufen werden. Dann kann das Programm nicht genutzt werden. Findet diese Kommunikation über das Internet statt, so muss der Computer bei jedem Programmstart online gehen und überträgt dabei Informationen.
Bei Client-Programmen (oft auch als Webanwendungen bezeichnet) wird das Programm zumeist nicht am Ort der Nutzer*innen ausgeführt, sondern läuft auf einem Server. Die Eingabedaten werden dorthin übertragen und das Ergebnis zurückgeliefert. Ein Beispiel sind Suchmaschinen: Man gibt lokal seine Suchanfrage ein, diese wird über das Internet zu einem Server übertragen, der sie ausgewertet und eine Trefferliste liefert. Dabei werden Daten an Dritte übertragen und auf fremden Computern verarbeitet und ggf. gespeichert. Wenn Daten den eigenen Computer nicht verlassen sollen, dürfen nur lokale, also auf dem eigenen Rechner installierte Programme verwendet werden.
Computer verstehen nur einfache Befehle wie „addiere“ oder „vergleiche“ – die Maschinensprache. Deshalb ist es eine anspruchsvolle Aufgabe, Computern alle Eventualitäten genauestens zu erklären. Dieses Problem löst man mit Programmiersprachen: Sie sind leichter zu lernen und die Anweisungen wesentlich komplexer als Maschinensprachen. Die Befehlsfolgen („Tue erst dies, dann tue das“ etc.) werden als Quellcode (engl. Source Code) bezeichnet. Dieser wird vom Computer in die gewünschte Maschinensprache übersetzt. So muss ein Programm nur einmal programmiert werden und wird dann für jedes Betriebssystem und jeden Chip in die zugehörige Maschinensprache übersetzt. Nur Dateien, die Maschinensprache enthalten, werden umgangssprachlich als Programm oder App (engl. Application) bezeichnet, denn nur sie können (auf dem passenden Chip und dem richtigen Betriebssystem) ausgeführt werden.
Der Quellcode selbst kann nicht ohne weiteres vom Computer verstanden werden – wohl aber von anderen Programmierer*innen. Da im Code viel Know-how steckt, wollen viele Entwickler*innen nicht, dass er eingesehen werden kann – sie halten ihn als Betriebsgeheimnis unter Verschluss. Einige Programmierer*innen stellen ihren Code hingegen frei zur Verfügung. Dann können andere daraus lernen, Codeteile in eigene Projekte übernehmen, Fehler verbessern und weitere Funktionen ergänzen. So wird der Quellcode unabhängig von seinen Ersteller*innen und kann quasi „ewig leben“ und weiterentwickelt werden.
Neue Programme müssen vor der ersten Benutzung installiert werden. Das bedeutet, dass sich das Programm und das Betriebssystem ein wenig aneinander anpassen. Dabei werden bestimmte Daten auf dem Computer gespeichert – bei Windows oft in einer Datenbank namens „Registry“. Dort steht z.B., welche Dateitypen von dem Programm geöffnet werden.
Ganz anders bei „portabler Software“: Hier muss keine Anpassung vor dem ersten Start ablaufen. Das Programm kann ohne Installation direkt, z.B. von einem USB-Stick, gestartet werden. Das ist sehr praktisch, denn so kann man wichtige Programme immer dabei haben.
Vor der Erstverwendung eines Programms sollten ein paar Punkte bedacht werden:
Woher beziehe ich die Dateien? Beim Herunterladen von unbekannten Webseiten besteht die Gefahr, dass sie Malware enthalten. Da jeder den Quellcode Freier Software verändern kann, könnten auch unerwünschte Funktionen hinzugefügt worden sein. Deshalb sollte man Programme nach Möglichkeit nur von offiziellen Projektseiten oder renommierten Portalen laden.
Gelegentlich bitten Programmierer*innen um eine Spende, lassen Werbung anzeigen oder verlangen einen Betrag für Programm.
Bevor das Programm auf Schulrechnern installiert wird, sollten einige Fragen geklärt werden: Wie lange dauert die Installation? Müssen Daten entpackt oder in einem besonderen Ordner gespeichert werden? Sollen und können die Schüler*innen dies selber tun? Lässt der Schulfilter den Download überhaupt zu? Welche Rechte werden vom Betriebssystem für die Installation benötigt? Ist ein Passwort nötigt? Wird zusätzliche Software benötigt (z.B. Java)? Hierzu sollte im Vorfeld mit dem Administrator oder der Administratorin der Schule gesprochen werden. Eventuell gibt es dazu auch schulweite Vereinbarungen.
Mit der Klasse sollten Absprachen getroffen werden, wer wann was genau machen soll und welche Dinge zu unterlassen sind. Da die Schüler*innen unterschiedlich schnell arbeiten, müssen zusätzliche Aufgaben und ergänzende Hilfestellungen vorgesehen werden, um Frust zu vermeiden.
Nicht zuletzt ist der Datenschutz zu beachten. Welche Daten überträgt das Programm? Für personenbezogenen Daten wie Namen, Anschriften, Geburtsdaten und Noten gelten je nach Bundesland unterschiedliche Datenschutzbestimmungen, die bei der Speicherung und Verarbeitung berücksichtigt werden müssen. Hinweise bekommen Lehrkräfte bei den Schulverwaltungsbehörden und den Datenschutzbeauftragt*innen der Länder.
[1] Ausführliche Informationen zum Making im schulischen Kontext inkl. detaillierter Beschreibungen von Tools und Projekten finden sich im Werkzeugkasten „DIY und Making – Gestalten mit Technik, Elektronik und PC“ unter URL: /werkzeugkaesten/werkzeugkasten-diy-und-making/.
[2] Mit der Version 10.12 wurde OS X in „macOS“ umbenannt.