Die bessere Programmiersprache für den Informatikunterricht?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Ja, durch die relativ einfache Syntax bietet Python auch den Naturwissenschaftler Wege ihre eigenen Interessen zu automatisieren. Doch Java ist derzeit als Standard angelegt und wird wohl nicht ohne Eigeninitiative von den Lehrern geändert. Zumindest meiner Erfahrung nach ist die Lehrerschaft nicht gerade sehr motiviert auf eigene Faust neue Wege einzuschlagen. Könnte sich aber ändern, wenn neue Nachzügler kommen und die alten Hasen ihren Posten verlassen.
Seit einiger Zeit steigt auch die Open-Hardware neben der Open-Software auf. Boards, Chips und auch schon ganze Laptops, die werden bald auch ihren Teil in Form von Unterrichtsmitteln finden.
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Nur kurz zur Info, wenn es jemanden interessiert ;)

Ich habe von "höherer Stelle" ein paar Rückmeldungen erhalten, leider alle wie erwartet :/
Tenor: Wir können ihre Argumente gut nachvollziehen jedoch ist die Entscheidung zu Java gefallen. Mein Kompromiss mit dem Pseudo-Code wäre wie das Erlernen einer zweiten Programmiersprache und den Schülern nicht zumutbar.

aktueller Stand der Dinge ist: Ich darf Python zwar im Unterricht einsetzen, jedoch müssen die Schüler im schriftlichen Abitur Java-Quelltext lesen können (schreiben ist noch nicht mal verlangt!) und die zur Verfügung gestellten Klassen kennen.
Das ist für mich im Moment eine Zwickmühle, da ich ja primär die Schüler gut auf's Abitur vorbereiten will, ihnen aber auch das Fach Informatik interessant näher bringen will. Eine Idee unserer Fachkonferenz war es, die Schüler, die es wirklich als Abi-Fach nehmen, in einem Crash-Kurs kurz vor dem Abitur mit Java vertraut zu machen. Wir sprechen hier über maximal 1-2 Schüler pro Jahrgang und diese sind meistens sehr interessiert/motiviert, so dass man das ggf. auch außerhalb des regulären Unterrichts machen könnte. Die meisten nehmen das Fach bei uns sowieso als 4.Fach, wo ich Java nicht verwenden muss (ergibt bei einer mündlichen Prüfung von 20 Minuten ja auch wenig Sinn).

Eine Antwort auf eine Mail von mir im Hinblick auf die Verwendung von Pseudo-Code an eine noch "höhere Stelle" steht noch aus, aber ich habe wenig Hoffnung, dass ich dort etwas anderes zu hören bekomme :/

Wenn noch jemand eine grandiose Idee hat, wie man das Problem sonst lösen kann, ich bin für jeden konstruktiven Vorschlag offen/dankbar.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du könntest doch den umgekehrten Weg gehen und den interessierten Schülern zeigen, dass die Welt nicht nur aus Java besteht ;-)

Das Problem wird sein, dass Du im Zweifel Ärger mit allen möglichen Leuten bekommst, die das Abitur als reines Noten-Portfolio begreifen und eben nicht fürs Leben lernen, sondern für den NC oder den Golf von der Omi zum ABI. Diese werden Dich verteufeln, wenn Du nicht das für sie offensichtliche (also Java) lehrst. Sie werden auch kein Verständnis dafür aufbringen, dass Du mehr als reine Syntax vermitteln willst.

Klingt traurig, erscheint mir aber als wahrscheinlich (ich bin ein doppeltes Gymnasiallehrer-Kind; ich weiß leider nur zu gut, wie beschränkt und engstirnig viele Eltern und auch Schüler sind).

Sieh es tröstend: Dank Java8 kann man nun ja auch funktional angehauchte Programmierung mit Java zeigen :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Lemi89
User
Beiträge: 4
Registriert: Samstag 16. März 2013, 21:30

Hallo EmaNymton,

ich bin hier gerade über deinen Post gestolpert und dachte ich gebe dir eventuell mal etwas feedback wie wir bei uns in der Arbeitsgruppe Python benutzen und warum wir Java nicht bzw. es knall hart ignorieren.

Kurz zu unserer AG, wir forschen im Bereich der Biophysik mittels molekular Dynamik, müssen also massenhaft Daten durch unsere CPU's und vor allem die IO jagen (es sind öfters mal ein paar hundert GB). Früher war dieses Feld sehr FORTRAN lastig und auch heute existieren Unmengen an altem FORTRAN code (mit Vorliebe noch FORTRAN77), weswegen ich mir das mittlerweile auch schmerzlich beibringen musste (immerhin ist F95 Python erstaunlich ähnlich).

Ich habe vor ca. 1 1/4 Jahren mit Python angefangen zu programmieren und zwar als kompletter Anfänger. Hatte Programmieren weder in der Schule noch während meines Bachelor Studiums. Damals habe ich erst probiert mir Perl beizubringen, da das einer meiner Vorgänger benutzt hat und naja... heute kann mehr oder weniger niemand mehr seinen Quelltext lesen. Das hat mich dann auch sehr gestört weswegen ich mir dann wieder etwas anderes gesucht habe. Ich bin dann über die Community auf Python gekommen, da es zum einen gerade doch recht gehyped wird und zum anderen viele in unserem Bereich seit einiger Zeit in Python programmieren, weswegen eine Reihe exzellenter Librarys verfügbar ist.

Ich konnte relativ schnell das machen, was ich noch heute jeden Tag brauche, Daten einlesen, crunchen, plotten .... das ganze ging ohne IDE sondern schlichtweg mit dem Text Editor von statten. Mittlerweile bin ich zwar auf PyCharm umgestiegen (die es übrigens in einer free version gibt und excellent ist) trotzdem bräuchte ich in 90% der Fälle keine IDE selbst für große Projekte, wo es dann mal schnell ein paar tausend Zeilen Code werden. Mich selber hat immer motiviert, das alles sehr schnell ging und das ich vor allem dank IPython und Co schnell und einfach Code testen und benutzen konnte.

Mittlerweile muss jeder der bei uns anfängt Python lernen, lediglich meine Chefin weigert sich noch etwas, aber wenn man 30 Jahre lang F77 programmiert darf man das auch. Immerhin hat sie es jetzt doch endlich eingesehen spätestens nachdem ich ihr SymPy gezeigt hatte.

Python war immer schnell genug für alle Aufgaben und dank Numpy und co spart man sich viel Zeit. In den letzten Jahren habe ich auch Kurse in C und dem an den Unis bei Ingenieure sehr getypten Matlab gehabt und muss sagen, keine Sprache konnte mir bisher das bieten was mir Python bietet. Python ist schnell genug und dank Cython und f2py hatten wir noch nie Performance Probleme. Gerade dieses interagieren mit anderen Sprachen macht Python sehr mächtig wie ich finde, da es einem erlaubt, das beste zu kombinieren und sehr schnell und vor allem einfach glue code zu produzieren, welche meist 80-95% eine Projekts ausmacht.

Bzgl. den IDE Sachen möchte ich auch anfügen, das Programmieren mit IDE sehr viele Nachteile am Anfang hat. IDE's nehmen einem sehr sehr viel ab und man gewöhnt sich schnell an auf seine IDE zu vertrauen hinsichtlich Formatierung und Co. Ich finde es aber viel wichtiger per Hand lernen zu müssen, wie man guten Code schreibt. Noch heute bringe ich unseren studies Python ohne IDE bei und von Anfang an achte ich auf sauberen code. Erst nach 1-3 tagen wenn die Grundlagen sitzen, lasse ich sie an die IDE wobei für BA-Arbeiten viele dann bei IPython bleiben und hier sehr schönen Code produzieren.

Ich glaube also, dass es gut ist, wen du deinen Schülern Python beibringst, zum einen werden Sie später sicherlich was davon haben wenn sie mal in die NW's gehen und zum anderen ist vieles in Python viel einfach verständlich. Ein Beispiel ist Parallel Programmierung, welche ich heute viel wichtiger finde als OOP (ehrlich gesagt ist in den NW heute noch sicherlich 80% des codes prozedual und nicht OO), da es einen motiviert seinen Gehirnschmalz anzustrengen. Außerdem ist OOP sehr abstrakt wie ich finde und wenn man es nicht wirklich gut erklärt bekommt, steht man schnell da und versteht nur noch Bahnhof. Ein Beispiel ist hier eine gute Bekannte, welche von R kommt und jetzt Java lernen musste. OOP hat sie erst dank Python verstanden und selbst das hat ewig gebraucht. Selbst ich habe so meine Problemen mit OOP vor allem wenn man mal von dem Standard Krims Krams weg muss, wird es sehr schnell sehr wirr.

Ich verstehe auch nicht, warum GUI's im Lehrplan stehen, immerhin gibt es wesentlich wichtigeres und vor allem hat man schneller Erfolge. Ich fände es viel sinnvoller nach den ersten Gehversuchen mit Ratespielen und Co. einfach mal Datensätze einzulesen und zu verarbeiten. Das hilft dann auch bei anderen Schülerprojekten und man sieht eher warum Programmieren sinvoll ist. Ich meine was habe ich davon wenn ich irgend ein mehr oder weniger zinnfreies GUI programmiere? Viel anschaulicher ist doch, ich habe z.B. meine Kontoauszüge und will wissen wie meine monatlichen Ausgabe und Einnahmen sind. Bei sowas sieht man viel eher den Sinn, ist z.B. meine Meinung. Außerdem haben Terminals etwas sehr meditatives 8)

Allerdings wirst du leider um JAVA nicht rumkommen dafür sorgt ja schon das Land (leider).
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Klingt traurig, erscheint mir aber als wahrscheinlich (ich bin ein doppeltes Gymnasiallehrer-Kind; ich weiß leider nur zu gut, wie beschränkt und engstirnig viele Eltern und auch Schüler sind).
@Hyperion: Ich weiß genau, was du meinst ;) Aber: Die SchülerInnen, die nächstes Jahr in die Einführungsphase kommen (also erst in 3 Jahren Abitur machen), würden von mir auf die Problematik schon bei der Wahl des Faches hingewiesen werden (da wir dort auch schon mögliche Abiturfächer eintragen) und wären somit vorher informiert, auf was sie sich einlassen. Ich habe die Erfahrung gemacht, dass die Probleme dann gegen Null gehen, wenn man frühzeitig auf problematische Umstände hinweist. Ich möchte eigentlich nicht zurück zu Java, was mit Sicherheit auch stark mit meiner eigenen Motivation zusammenhängt und ich merke selbst, dass die Unterrichtsqualität damit stark korreliert ;)
Wenn von oben Java strikt vorgegeben würde, sieht das anders aus. Das ist aber im Moment nicht der Fall.

@Lemi89: Danke für dein ausführliche Rückmeldung. Darf ich deinen Beitrag verwenden, wenn es noch zu weiteren Gesprächen kommen sollte?
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

EmaNymton hat geschrieben: Wenn noch jemand eine grandiose Idee hat, wie man das Problem sonst lösen kann, ich bin für jeden konstruktiven Vorschlag offen/dankbar.
Besonders grandios ist die Idee vmtl. nicht, aber bist du/ist eure Schule dazu verpflichtet, Informatik als schriftliches Abiturfach anzubieten?

Ich habe ebenfalls in NRW Abitur gemacht und weiß, dass unser Informatiklehrer (auch fachfremd) nur mündliches, aber kein schriftliches Abitur abnehmen und daher mehr oder weniger machen durfte, was er wollte. Ich fand es damals schade, dass ich Informatik nicht als Abiturfach wählen konnte. Da du allerdings schreibst, dass sich das auf deine Motivation (und die Unterrichtsqualität) auswirkt und nur sehr wenige Schüler ohnehin ins schriftliche Abitur in Informatik gingen, wäre das zu überlegen. (Ich weiß nicht, ob das noch immer so ist, aber ich hätte z.B. Informatik wegen meiner LK Wahl (zwei naturwissenschaftliche Fächer) ohnehin nicht in's Abi nehmen dürfen und ich könnte mir vorstellen, dass es einigen Schülern, die zur "Zielgruppe" gehören, so gehen könnte). Das ist zwar bitter und schade für das Fach und die Auswahlvielfalt, aber ich würde das trotzdem in Erwägung ziehen, wenn es dazu führt, dass der Unterricht die Schüler stärker für das Fach begeistern kann.
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Besonders grandios ist die Idee vmtl. nicht, aber bist du/ist eure Schule dazu verpflichtet, Informatik als schriftliches Abiturfach anzubieten?
Das ist eine sehr gute Frage, auf die ich bisher in den Gesetzestexten noch keine Antwort gefunden habe. Ich weiß, dass man nicht jedes Fach als LK anbieten muss, jedoch gehe ich bisher davon aus, wenn man ein Fach anbietet, dann auch schriftlich. Ich versuche mich da nochmal schlau zu machen!
Benutzeravatar
juh
User
Beiträge: 27
Registriert: Dienstag 22. August 2006, 10:40
Wohnort: Solingen
Kontaktdaten:

Hi,

ich konnte nicht alle Antworten komplett durchlesen, deshalb wiederhole ich hier vielleicht etwas.

Ich weiß, dass es viele Leute gibt, die sich mit dieser Frage beschäftigen. Und ich weiß, dass derPython Software Verband hier aktiv ist. Die Hauptaktivität ist zurzeit ein Programmierwettbewerb für Schüler.

Wie vielleicht einige wissen, war ich lange Zeit für die Presse- und Öffentlichkeitsarbeit beim PySV und seinem Vorgänger, dem DZUG e.V. verantwortlich. Leider kann ich mich darum nicht mehr kümmern. In die PR-Arbeit fällt natürlich auch die engere Lobbyarbeit, bei der Python in die Schule gebracht werden soll. Sie steht immer noch auf der Agenda. Es scheitert aber wie so oft an Manpower und Koordination. An vielen Stellen sind Studien gesammelt, Erfahrungen niedergeschrieben oder Projekte angestoßen worden. Leider gibt es noch keine zentrale Stelle, wo das alles gesammelt, ausgewertet und für die politische Arbeit nutzbar gemacht wird.

Damit die politische Arbeit des Vereins besser koordiniert werden kann, wäre es schön, wenn diejenigen, die Interesse daran haben, sich auf der Diskussions-Mailingliste des Vereins zusammenfinden würden.
http://lists.python-verband.org/mailman ... diskussion

Bisher fanden regelmäßig so genannte Koordinatorentreffen im IRC statt. Momentan finde ich aber keinen Termin für das nächste Treffen. Dort kann man sein Anliegen natürlich auch in die Runde werfen.

UPDATE: Der nächste Termin ist am 19.05. um 18.00 im Raum #pysv auf Freenode.

Vermutlich wird es bei der EuroPython einen erneuten Anlauf geben, die Lobbyarbeit in Gang zu bringen.

Und ceterum censeo, dass man beim PySV Mitglied werden sollte, damit diese wichtige und kontinuierliche Arbeit finanzierbar wird. ;-)

Ach ja, vielleicht hilft ja die Python Image Broschüre weiter.

juh
Software-Dokumentation mit Sphinx
http://www.amazon.de/dp/1497448689/
Paperback: 224 Seiten
boletus999
User
Beiträge: 25
Registriert: Dienstag 27. August 2013, 07:04

Auch wenn der Beitrag schon etwas älter ist, möchte ich folgendes Zitat von BackJack:
Und wenn man nicht nur auf Informatiker sondern Naturwissenschaftler allgemein abzielt, ist die Wahrscheinlichkeit mit Java konfrontiert zu werden, nochmal deutlich kleiner. Da würde dann vielleicht R oder Matlab in der Schule mehr Sinn machen. Diese Sprachen sind aber nochmal deutlich unschöner und auch nicht so universell, wie man das gerne hätte. Bei Naturwissenschaft allgemein steigt die Wahrscheinlichkeit mit Python in Kontakt zu kommen dagegen nochmal, denn Scipy, Numpy & Co kommen ganz gut an, wie es aussieht.


unterschreiben :!:

Da mein Arbeitsumfeld genau das bestätigt, nur kommt hier Python recht bescheiden weg.

"Naturwissenschaftliches Institut"
Master-Studenten, Doktoranden und auch ein großer Teil Post Docs verwenden bei uns R, wenige davon Matlab (Außnahme sind Modellierer).
Wenn ich es wichten müßte -->
85% R, Matlab;
15% Python, Ruby, Fortran

An Universitäten sieht das bestimmt etwas anders aus.
Theory is when you know everything but nothing works.
Practice is when everything works but no one knows why.
In my office, theory and practice are combined:
nothing works and no one knows why.
Antworten