Michael Schröpl: Programmiersprache für Anfängerkurs

Beitrag lesen

Hi Michael,

Nachstes Jahr werde ich zusammen mit einem Freund an unserer Schule im Freifach Informatik ein bisschen Lehrer spielen, da unsere "richtigen" Lehrer leider aktuelle Programmiersprachen nicht so drauf haben...
Mit welcher Programmiersprache bzw. welchem Themengebiet würdet ihr da anfangen?

Was ist das Ziel der Aktion?

Möchtest Du den Leuten beibringen, was ein Programm ist? Dann: Je wirth'scher, desto besser.
Möchtest Du den Leuten etwas geben, das sie in ihre Bewerbungen schreiben können? Dann: C++ oder Java.

Pro Woche haben wir 1 Stunde Zeit. Es ist aber ein Freifach und die Leute sollten daher motiviert sein und auch in der Freizeit bereit etwas zu machen.

Wieviel Informatik-Wissen haben Deine Leute? Wissen die überhaupt, was ein Algorithmus ist? Haben sie eine Vorstellung, _warum_ Daten überhaupt gespeichert werden müssen?
Nimm Dir mal das typische Verständnisproblem hier im Forum, Client und Server nicht auseinanderhalten zu können ... so etwas zu vermitteln, halte ich für "Informatik".

"Programmieren" dagegen ist ein völlig anderes Thema. Damit würde ich allerdings so ganz ohne Informatik-Wissen gar nicht anfangen wollen, weil dann einfach die Grundlagen fehlen.
Um ein Programm selbst schreiben zu können - und sei es ein noch so primitives! - braucht der Programmierer _vorher_ erstens eine klar definierte Zielsetzung (woran es bei den typischen Forums-Fragen oft genug fehlt ...) und zweitens ein methodisches Vorgehen, beispielsweise bei der Abbildung der Realität in (ggf. einfache) Datentypen und Algorithmen.

Ich finde übrigens nicht, daß es die Anfänger stören sollte, wenn man zum Schreiben von "Hello, World" mehr als fünf Zeilen braucht.
Im Gegenteil: Ganz am Anfang sollte die Information vermittelt werden, daß beim Programmieren sehr wenig 'von allein' geht und fast alles vom Programmierer zumindest bedacht, wenn nicht gar selbst umgesetzt werden muß (sei es als eigener Code oder als Beachten einer Schnittstellenkonvention).
Insofern finde ich PASCAL mit seinen vielen verschiedenen, sprechenden reservierten Worten und einer klaren Trennung zwischen Konstanten, Typen und Variablen sowie den englischen Worten (statt kryptischer Klammern) für Blöcke und Kontrollanweisungen als Lehrsprache immer noch ausgezeichnet: Ein PASCAL-Programm kann jeder lesen, ohne dazu sonderlich viel PASCAL lernen zu müssen.

Aber ich vermute, ich würde an Deiner Stelle ein komplettes Semester Informatik lehren wollen, in dem keine einzige Zeile einer real existierenden Programmiersprache vorkommt.
Als ich Programmieren gelernt habe, bestanden die ersten Schritte erst mal daraus, in natürlicher Sprache "Wunsch-Befehle" zu verwenden (vorgegeben waren lediglich "Vergleiche" und "Schleifen", so ähnlich wie das "foreach" in Perl), um den Algorithmus-Begriff intensiv zu üben. Denn das ist die Art und Weise, wie man einen schönen Programmierstil entwickelt: Man wünscht sich die Funktionen so, daß man die Zuständigkeiten für verschiedene Aufgabengebiete logisch voneinander trennt, und anschließend implementiert man diese Funktionen dann eben (Top-Down-Entwurf).
Man darf dabei allerdings auch nichts Unmögliches verlangen - die einmal 'erfundenen' Funktionen müssen irgendwann zumindest als Machbarkeitsstudie tatsächlich implementiert und dann zu einem sinnvollen Ganzen zusammengesetzt werden (Bottom-Up-Entwurf).
Die Wahrheit liegt irgendwo dazwischen ... äh, Du siehst, ich brauche überhaupt keine Programmiersprache, um Informatik zu vermitteln. ;-)

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.