Lehrzeit

Schule & Informatik

Warum Java und nicht C++/Python?

Zur Zeit kämpfe ich an einer neuen Front: Eine Energieverbrauchsanzeige der Schule. Hierfür lesen Schüler unser Forscherklasse einmal wöchentlich die Werte von der Heizung Strom und PV-Anlage ab und notieren sie. Die Werte sollen dann in eine Datenbank kommen und grafisch dargestellt werden, damit die Schüler sehen, wann wieviel verbraucht wird.

Dabei haben sich mehrere Probleme aufgetan:

  1. Eine absolute Anzeige der Werte erscheint bringt wenig. Besser wäre immer der Vergleich zum letzten Wert und damit der Verbrauch zur letzten Woche. Da die Zähler aber regelmäßig ausgetauscht, neu geeicht bzw. zurückgesetzt werden, bekommt man auch hier komische Werte.
  2. Die reinen Werte bringen für Schüler nichts, wenn man diese nicht mit anderen Werten kombiniert: Sonnenstunden mit PV-Anlage und Strom (Licht!), Durchschnittstemperatur mit Heizung. Nur, wo bekommt man diese Werte her?
    Ich habe mir dafür jetzt einen Key für die API von wunderground.com geholt und kann nun mehr oder weniger geschickt auf verschieden Wetterstationen zugreifen.
  3. Die Werte müssen graphisch aufbereitet werden. Dazu bediene ich mich des php-Library jpgraph mit der man relativ entspannt Graphen auf Websites einbinden kann.
  4. Am Anfang steht aber noch Erstellung einer passenden MySQL-Datenbank zur verwalten der Rohdaten.

Insgesamt arbeite ich also mit HTML/CSS/JavaScript, SQL für die Datenbank, php für Graphenerzeugung und wurschtel mich durch die API von der wunderground durch, die mir die Daten im XML- oder JSON-Format liefert.

Das wären im schlimmsten Fall also 5 Sprachen für nur 1 Projekt. Wenn mich also wieder mal eine Schüler fragt, warum wir Java unterrichten und nicht C++ oder Python, werde ich ihn mit diesem Projekt konfrontieren und sagen: Die Sprache ist egal, da er sowieso immer mehrere Sprachen braucht.

5 Kommentare

  1. Genau, es gibt eben doch keine general-purpose-Sprache. Letztlich gibt es für jedes Anwendungsfeld, jede Community und jede Zeit eine eigenen Programmier-, Datenbeschreibungs- oder Was-Auch-Immer-Sprache.

    PS
    Ich würde so gerne über neue Kommentare informiert werden. Es wäre toll, wenn dein Blog ein solches Feature bekäme.

    • Okay. Da muss ich mal schauen, wie ich das integriert bekomme. Aber so viele Kommentare gibt es eh nicht. Viel verpasst hast du da nicht.
      – Hab das entsprechende PlugIn wohl integriert.

  2. Ich würde deinen letzten Satz sofort unterschreiben, wenn er lauten würde: „Die Sprache ist egal, da er sowieso immer mehrere Sprachen Konzepte braucht.“

    Bei so einem Projekt muss man die von dir genannten Themengebiete beherrschen. Welches Werkzeug (=Programmiersprache bzw. Auszeichnungsprachen) man dafür verwendet sollte in der Schule auch davon abhängig gemacht werden, wie viele Steine mir in den Weg gelegt werden, um die Sprache zu verwenden. Da räumt Python imo schon mehr Steine von sich aus aus dem Weg als das bei Java der Fall ist.

    Im übrigen kannst du dein Vorhaben auch komplett in Python umsetzen, nimm als Webframework z.B. Flask, XML/JSON kannst du auch sehr bequem mit Python parsen und Grafiken aus Daten lassen sich mit matplotlib sehr schön erzeugen. Datenbankanbindung ist in Python auch kein Problem.

    Das Problem ist aber eigentlich nicht die verwendete Programmiersprache sondern dass man die Konzepte dahinter erstmal verstehen muss.

    • Ich gebe dir Recht. Der Schwerpunkte sollte auf Konzepten liegen und nicht auf Sprachen. Auf der anderen Seite bringt mir ein theoretisches Konzept im Unterricht nur bedingt etwas, wenn ich es nicht praktisch ausprobieren kann. Und da stimmt, Java ist da doch immer recht holprig und wird auch immer holpriger. Gerade wenn ich an die Steuerung von Threads denke, bekomme ich unruige Füße. Auch die Anbindung von Datenbanken könnte einfacher sein.
      JavaScript fände ich persönlich ganz angenehm, da man es auch direkt im Browser programmieren könnte, aber das Prototypen-konzept ist dann dich was anderes als der Lehrplan vorsieht. Letzeres ist dann auch der ausschlaggebende Grund für Java: Ich muss die Schüler fürs Abitur vorbereiten und das orientiert sich an Java – auch wenn es sprachunabhängig formuliert ist.

      • Auch ich muss meine SuS für das Abitur vorbereiten, allerdings schließt das Python imo nicht aus. Auf der Veranstaltung zum Kernlehrplan (in NRW) war die Aussage der Verantwortlichen, dass die Schüler Java-Quellcode lesen können müssen, da dieser in den Abituraufgaben verwendet wird. Eine verbindliche Verwendung findet man nicht in den Vorgaben, dort kommt Java noch nicht mal vor. Eine Rückfrage beim Ministerium wurde mir ähnlich beantwortet. Die Bearbeitung der Abituraufgaben kann in einer beliebigen objektorientierten Programmiersprache erfolgen. Da ich meinen SuS versuche die Konzepte zu vermitteln und ich die vorgegebenen Klassen (z.B. zu Client-Server) sehr ähnlich zu den Vorgaben in Python implementiert habe, sollte es keine Schwierigkeit darstellen den Java-Quelltext lesen zu können. Natürlich mit einem kleinen Crashkurs, der die Unterschiede (im wesentlichen Syntax, und getter-setter) zwischen den Sprachen zeigt, aber eben auch gemeinsame Konzepte nochmal deutlich hervorhebt. Da ich aber noch nicht so lange Informatik unterrichte, habe ich bisher noch keinen Schüler im schriftlichen Abitur gehabt, kann also weder auf positive noch negative Rückmeldungen zurückgreifen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

© 2016 Lehrzeit

Theme von Anders NorénHoch ↑