Idee für Programmierkurs

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
paedubucher
Beiträge: 856
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von paedubucher » 22.08.2021 10:59:23

tkreutz hat geschrieben: ↑ zum Beitrag ↑
22.08.2021 09:40:38
paedubucher hat geschrieben: ↑ zum Beitrag ↑
13.08.2021 21:43:00
Ich beschäftige mich beruflich mit der Ausbildung von jungen Leuten, die gerne Softwareentwickler werden wollen. Was deutschsprachige Unterlagen und aktuell gängige Praktiken anbelangt, bin ich nicht recht zufrieden. Darum habe ich mir folgendes kleine Konzept ausgedacht:
Okay, das Forum ist Debian und Du hast Dich auf ein Konzept festgelegt. Aber was hältst Du beispielsweise von diesem Konzept ?

https://www.apple.com/de/swift/playgrounds/
https://www.apple.com/de/education/k12/teaching-code/

Hier ginge es um die Motivation über den Spaß-Faktor nebst entsprechendem didaktisch aufbereiteten Materialien für Lehrer und lernende. Gut, dazu bräuchte man natürlich Apple Tablets.
Wegen der Apple Tablets erledigt sich die Sache schon von.
tkreutz hat geschrieben: Es ist sicher lobenswert, wenn Lehrer sich dahingehend Mühe geben, eigene Materialien zu erstellen. Auf der anderen Seite, wenn es bereits gut strukturierte Materialien gibt, spräche sicher wenig dagegen, dieses zu verwenden.
Der Vorteil an eigenen Materialien ist es, dass man die Sache dann wirklich kennt. Bei fremden Materialien müsste man das dann haarklein durcharbeiten, wobei einem sicherlich Sachen auffallen, die einem nicht passen. Beispiel: In einem Shell-Lehrheft stand drin, dass man bei Unix nicht auf die Dateiendungen achten dürfe (richtig). Deshalb müsste man einfach jede Datei einmal aufmachen, um zu erfahren was drin ist (falsch: stattdessen file verwenden).
tkreutz hat geschrieben: Natürlich bezahlt man den Preis der Materialien über die Hardware. Dafür sind die Bücher aber danach kostenlos. Theoretisch kann man sich konzeptionell auch daran anlehnen, sollte man dennoch eigene Materialien erstellen wollen.
Die Auszubildenden müssen sich schon einen Laptop kaufen. Auf einer externen SSD haben sie aber verschiedene VMs, u.a. auch Ubuntu.
tkreutz hat geschrieben: Natürlich gäbe es im Opensource Bereich auch Alternativen. z.B.

https://squeak.org
Da sind meines Wissen sogar wirklich Leute mit pädagogischem (und nicht kommerziellem) Interesse dahinter, u.a. Alan Kay. In meinem Fall sollte aber direkt eine produktiv nutzbare Programmiersprache zum Einsatz kommen.
tkreutz hat geschrieben: Was genau hat Dir an deutsprachigen Unterlagen mißfallen, gibt es dazu ein Beispiel, damit man verstehen kann, worum es konkret geht ?
Die deutschsprachigen Unterlagen sind zu einem grossen Teil eine Untermenge der englischsprachigen Unterlagen. d.h. Übersetzungen. Es gibt kaum noch Bücher mit anspruchsvollen oder vielen Aufgaben. Ich habe bemerkt, dass da junge Leute das einfach ganz flott und problemlos durcharbeiten können, aber kaum etwas hängen bleibt. Es hat also nichts mit der Sprache an sich zu tun.

Sicherlich ist mein Blick auch eingeschränkt, da ich meine privaten Recherchen für Fachliteratur immer auf den Seiten von Manning, NoStarch, PragProg, Leanpub und InformIT mache. Evtl. hat jemand Tipps für gute deutschsprachige Fachbuchverlage?
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Benutzeravatar
tkreutz
Beiträge: 61
Registriert: 07.06.2014 08:44:39

Re: Idee für Programmierkurs

Beitrag von tkreutz » 22.08.2021 11:28:25

paedubucher hat geschrieben: ↑ zum Beitrag ↑
22.08.2021 10:59:23
Wegen der Apple Tablets erledigt sich die Sache schon von.

Die Auszubildenden müssen sich schon einen Laptop kaufen. Auf einer externen SSD haben sie aber verschiedene VMs, u.a. auch Ubuntu.

Die deutschsprachigen Unterlagen sind zu einem grossen Teil eine Untermenge der englischsprachigen Unterlagen. d.h. Übersetzungen. Es gibt kaum noch Bücher mit anspruchsvollen oder vielen Aufgaben. Ich habe bemerkt, dass da junge Leute das einfach ganz flott und problemlos durcharbeiten können, aber kaum etwas hängen bleibt. Es hat also nichts mit der Sprache an sich zu tun.

Sicherlich ist mein Blick auch eingeschränkt, da ich meine privaten Recherchen für Fachliteratur immer auf den Seiten von Manning, NoStarch, PragProg, Leanpub und InformIT mache. Evtl. hat jemand Tipps für gute deutschsprachige Fachbuchverlage?
Kommerzielles Interesse ist sicher ein Problem in der gesamten Bandbreite von Schule und Bildung, angefangen bei teuren Markenklamotten (da wäre ich tatsächlich ein Befürworter von Schuluniformen), bis zum Pausensnack.

Opensource bietet hier natürlich Möglichkeiten, die "closed" Source Systeme nicht bieten. Das Problem ist, dass dass Angebot an "Open Hardware" übersichtlich ist, sogar im Raspberry Pi stecken kommerzielle Patente.

Interessant wäre es natürlich, wenn Schüler ihren eigenen Computer "bauen" könnten. Ein Raspberry Pi mit entsprechendem Gehäuse würde sich dazu anbieten. Man könnte den Pi auch Modular gestalten, so daß er wahlweise in ein Tablet oder Laptop umgewandelt werden könnte - und zu Hause würde man dann Monitor und Tastatur anschließen. Leider sind die "kommerziellen" Gehversuche solcher Projekte in OLTP Kinderschuhen oder Lapdog Projekten "stecken" geblieben und nicht weiter entwickelt worden. (Lapdog war ein Gehäuse, was aus einem Raspberry Pi einen vollwertigen Laptop gemacht hat).

Das stimmt, die Abhängigkeiten im Bereich Kommerzialisierung haben wir leider auch im Bereich der "Schulbücher". In diesem Fall sind es die Verlage mit ihrem Urheberrecht.

Es gab aber mal gute Bücher, als die Homecomputer früher in Basic programmiert worden sind. Da wurden auch "Zahlenrätsel" dargestellt und gut erklärt.

Vielleicht wäre ein Retro-Computer basierend auf einem Raspberry Pi ein interessanter Ansatz. Leider müsste man sehr viel Zeit- und Herzblut in ein solches Konzept stecken, bevor man damit arbeiten könnte.

Ich konnte aber in der Retro-Computer Gruppe wenigstens einen Lehrer finden, der jetzt in GFA-Basic auf einem emulierten Atari Rechner seinen Unterricht macht. Dieses Konzept scheint sehr gut zu funktionieren. Leider ist GFA-Basic kein Opensource. Es befindet sich somit in einer rechtlichen Grauzone (Abandonware).

https://youtu.be/sDVSW-OZ4ZA

Aber der Unterricht scheint dahingehend aufzugehen, dass man noch auf (damals) gute Bücher- und Konzepte zurückgreifen kann, die aus Zeiten stammen, in denen die Kommerzialisierung noch in den Kinderschuhen steckte und Bildung wirklich im Vordergrund stand.

Der Vorteil für den Lehrer bei Einsatz eines Pi wäre übrigens, dass er vorbereitete SD-Card Images erstellen könnte. Damit hätten dann wirklich alle Kinder eine gleiche Umgebung und eine SD-Karte ist noch relativ kostengünstig.

https://youtu.be/zE2k_e0oSh4

Das Buch wurde vom Autor als PDF (heute) freigegeben.

https://forum.atari-home.de/index.php?topic=15930.0

Natürlich gibt es den Emulator auch mit freiem OS (EMU-TOS) und dieser läuft als VM (Emulator) auch auf jedem Laptop. Ich würde hier den Hatari empfehlen, da dieser von der Opensourcegemeinschaft unterstützt wird.

https://hatari.tuxfamily.org

Zudem lässt sich der Emulator auf nahezu jeder Plattform (Mac, Linux, PC) installieren. Zu pädagogischen Konzepten kann ich als Nicht-Pädagoge natürlich nichts sagen. Aber aus der Hintergrund, dass meine Generation (73er) mit Basic und Homecomputern groß geworden ist, würde ich schon sagen, dass Basic nicht völlig verkehrt wäre. Denn es geht ja nicht um Compilerbau der nächsten Informatik-Generation sondern rein um logisches Verständnis und dessen Zusammenhänge.

Das Basic ist ein geschlossenes System (gibt es als Interpreter und Compiler) und hier gibt es pädagogisch schön aufgebautes Lehrmaterial. Viele Funktionen für eine grafische Darstellung sind in der Sprache auch schon enthalten. Die Motivation, direkt ein Ergebnis zu sehen, ist damit gegeben. (Just My 2 Cents).

Es gibt heute noch viele Retro-Gruppen, die sich hierüber vernetzen. (z.B. Spiele Programmieren in GFA-Basic). Die Anforderungen, an heutige Spieleentwicklung, die ja mit einem Kinofilm gleichzusetzen ist, konnte man damit damals noch mit wenig Leuten bewältigen.

Übrigens sind "alte Computersysteme" nicht nur ein Thema für Leute von gestern, sondern es beschäftigen sich Informatiker in neuerer Zeit damit (s. Video).

https://youtu.be/0bmMNgAlvpY

Benutzeravatar
tkreutz
Beiträge: 61
Registriert: 07.06.2014 08:44:39

Re: Idee für Programmierkurs

Beitrag von tkreutz » 27.08.2021 11:52:32

paedubucher hat geschrieben: ↑ zum Beitrag ↑
22.08.2021 10:59:23
Die deutschsprachigen Unterlagen sind zu einem grossen Teil eine Untermenge der englischsprachigen Unterlagen. d.h. Übersetzungen. Es gibt kaum noch Bücher mit anspruchsvollen oder vielen Aufgaben.
Ich bin gerade über dieses Buch gestolpert.

https://www.rheinwerk-verlag.de/algorit ... en-netzen/

Als YT Kanal kann ich noch diesen (englische Sprache) empfehlen.

https://www.youtube.com/user/Computerphile

Python könnte in der Tat ein guter Weg sein für eine Lernumgebung. Die englischen Bücher von Harvey und Deitel enthalten praxisorientierte Beispiele. (Man müsste halt selbst Material übersetzen, aber aus Praxissicht gäbe es hier einiges an Material).

https://deitel.com/intro-to-python-for- ... a-science/
https://deitel.com/training/

Viele Themen im amerikanischen Bildungssystem für Informatik sind im Pearson Programm erhältlich.

https://www.pearson.de

Benutzeravatar
paedubucher
Beiträge: 856
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von paedubucher » 27.08.2021 16:28:08

tkreutz hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 11:52:32
Ich bin gerade über dieses Buch gestolpert.

https://www.rheinwerk-verlag.de/algorit ... en-netzen/
Das ist sehr gut, vom Niveau aber eher für mich gedacht als für meine Zielgruppe. Aber vielleicht kann ich da später mal was rausnehmen. Das Buch an und für sich reizt mich schon.
tkreutz hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 11:52:32
Als YT Kanal kann ich noch diesen (englische Sprache) empfehlen.

https://www.youtube.com/user/Computerphile
Kenne ich gut und schätze ich sehr! Ist für grundlegende Fragestellungen sicherlich eine hervorragende Quelle.
tkreutz hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 11:52:32
Python könnte in der Tat ein guter Weg sein für eine Lernumgebung. Die englischen Bücher von Harvey und Deitel enthalten praxisorientierte Beispiele. (Man müsste halt selbst Material übersetzen, aber aus Praxissicht gäbe es hier einiges an Material).

https://deitel.com/intro-to-python-for- ... a-science/
https://deitel.com/training/

Viele Themen im amerikanischen Bildungssystem für Informatik sind im Pearson Programm erhältlich.

https://www.pearson.de
Pearson steht sicherlich für Qualität; dass sie auch deutschsprachige Publikationen haben, daran dachte ich gar nicht. (Eine kurze Suche offenbart aber leider nicht allzuviel für meinen Bedarf.)
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Benutzeravatar
tkreutz
Beiträge: 61
Registriert: 07.06.2014 08:44:39

Re: Idee für Programmierkurs

Beitrag von tkreutz » 28.08.2021 09:12:25

paedubucher hat geschrieben: ↑ zum Beitrag ↑
27.08.2021 16:28:08
Pearson steht sicherlich für Qualität; dass sie auch deutschsprachige Publikationen haben, daran dachte ich gar nicht. (Eine kurze Suche offenbart aber leider nicht allzuviel für meinen Bedarf.)
Das stimmt natürlich, der überwiegende Teil dürfte auch in englisch sein. Das sie auf den deutsprachigen Markt wollen, ist eine neuere Entwicklung. Hier ein Beispiel zu einem recht guten Grundlagenbuch (das Gegenstück wäre das IT-Handbuch für Fachinformatiker aus dem Galileo Press Verlag).

https://www.pearson.de/informatik-9783868949124

Ich rechne damit, dass künftig weitere Materialien auch im Bereich E-Learning kommen.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von Meillo » 29.08.2021 12:59:46

paedubucher hat geschrieben: ↑ zum Beitrag ↑
21.08.2021 21:39:07
Aber abtippen wird da in meiner Klasse niemand was, copy-paste machen schon eher.
Es gibt einen relevanten Unterschied zwischen Abtippen und Copy&Paste. Bei zweiterem lernt und denkt man weniger. Ich finde es durchaus sinnvoll, wenn Copy&Paste nicht moeglich ist, sondern der Code von Papier oder der Tafel abgeschrieben werden muss. Insgesamt kann man auch sagen, dass damit die fuer Informatiker wichtige Faehigkeit von genauem Arbeiten und Details wahrzunehmen geschult wird. Ein in meiner Erfahrung deutlicher Unterschied zwischen Informatikern und Nicht-Informatikern ist, dass zweitere so Details wie Satzzeichen und Leerzeichen einfach ueberlesen. Darum will man auch nicht, dass die Anwender einem Fehlermeldungen sagen, sondern man will, dass sie sie kopieren oder Screenshots machen, weil sie nicht gelernt haben, exakt das wiederzugeben was dort steht, denn sie schaffen es nicht ihren automatischen Abstraktionsblick abzuschalten. Wenn diese Schueler und Studenten selber abschreiben muessen, dann faellt ihnen das auf die Fuesse und wird ihnen damit bewusst. Bei Copy&Paste passiert das nicht.

Ebenso schaetze ich es, sie auch mal etwas auf Papier programmieren zu lassen. Das ist oft aussagekraeftig. ;-)

paedubucher hat geschrieben: ↑ zum Beitrag ↑
21.08.2021 21:39:07
Die Hauptsache ist, dass überhaupt programmiert wird. Im Fokus steht schon die jeweilige Programmiersprache (Grundlagen) und wie man damit einfache Programme schreibt. Vielleicht ist da mal ein Bubble Sort dabei oder eine Umrechnung von binär zu dezimal, sonst halt eher so Fingerübungen (Schleifen korrekt implementieren, Arrays aufsummieren: halt wirklich die Grundlagen.)
Das finde ich gut. Diese typischen Programmierproblemchen (die natuerlich meist mathematischer Art sind) sorgen fuer Uebung und Problemzerlegung im Kleinen. Gerne habe ich beispielsweise den Geldautomaten, der Wechselgeld rausgibt. Der laesst sich auch schoen erweitern, dass es auch funktioniert, wenn eine Muenzsorte aus ist.

Generell mag ich, wenn Programme nicht nur einmal geschrieben werden, sondern danach erweitert werden, weil das sehr viel praxisnaeher ist und eine wichtige Faehigkeit foerdert. Um so besser wenn sie dafuer nicht nur erweitert sondern nachtraeglich umstrukturiert werden muessen. Dabei lernt man viel.
Use ed once in a while!

Benutzeravatar
paedubucher
Beiträge: 856
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von paedubucher » 29.08.2021 14:52:36

Meillo hat geschrieben: ↑ zum Beitrag ↑
29.08.2021 12:59:46
paedubucher hat geschrieben: ↑ zum Beitrag ↑
21.08.2021 21:39:07
Aber abtippen wird da in meiner Klasse niemand was, copy-paste machen schon eher.
Es gibt einen relevanten Unterschied zwischen Abtippen und Copy&Paste. Bei zweiterem lernt und denkt man weniger. Ich finde es durchaus sinnvoll, wenn Copy&Paste nicht moeglich ist, sondern der Code von Papier oder der Tafel abgeschrieben werden muss.
Beim Abtippen muss alles einmal vom Auge durch das Gehirn in die Fingerspitzen gehen. Da ist schon nachvollziehbar, warum da mehr hängen bleibt.
Meillo hat geschrieben: Insgesamt kann man auch sagen, dass damit die fuer Informatiker wichtige Faehigkeit von genauem Arbeiten und Details wahrzunehmen geschult wird. Ein in meiner Erfahrung deutlicher Unterschied zwischen Informatikern und Nicht-Informatikern ist, dass zweitere so Details wie Satzzeichen und Leerzeichen einfach ueberlesen. Darum will man auch nicht, dass die Anwender einem Fehlermeldungen sagen, sondern man will, dass sie sie kopieren oder Screenshots machen, weil sie nicht gelernt haben, exakt das wiederzugeben was dort steht, denn sie schaffen es nicht ihren automatischen Abstraktionsblick abzuschalten. Wenn diese Schueler und Studenten selber abschreiben muessen, dann faellt ihnen das auf die Fuesse und wird ihnen damit bewusst. Bei Copy&Paste passiert das nicht.
Genau dieses genaue Arbeiten halte ich für eine grosse Hürde am Anfang. Ich möchte den jungen Leuten immer sagen, dass sie sich beim Programmieren einerseits möglichst dumm anstellen sollen (halt den Programmtext wie eine Maschine betrachten), andererseits sehr viel denken müssen, um auf die Problemlösung zu kommen.
Meillo hat geschrieben: Ebenso schaetze ich es, sie auch mal etwas auf Papier programmieren zu lassen. Das ist oft aussagekraeftig. ;-)
Das ist bei Prüfungen sicherlich sinnvoll, gerade beim Lesen von Code! So gibt es kein Probieren, sondern nur ein Verstehen.
Meillo hat geschrieben:
paedubucher hat geschrieben: ↑ zum Beitrag ↑
21.08.2021 21:39:07
Die Hauptsache ist, dass überhaupt programmiert wird. Im Fokus steht schon die jeweilige Programmiersprache (Grundlagen) und wie man damit einfache Programme schreibt. Vielleicht ist da mal ein Bubble Sort dabei oder eine Umrechnung von binär zu dezimal, sonst halt eher so Fingerübungen (Schleifen korrekt implementieren, Arrays aufsummieren: halt wirklich die Grundlagen.)
Das finde ich gut. Diese typischen Programmierproblemchen (die natuerlich meist mathematischer Art sind) sorgen fuer Uebung und Problemzerlegung im Kleinen. Gerne habe ich beispielsweise den Geldautomaten, der Wechselgeld rausgibt. Der laesst sich auch schoen erweitern, dass es auch funktioniert, wenn eine Muenzsorte aus ist.
Super Aufgabe, damit werde ich nächste Woche meine Auszubildende traktieren :)

Im Moment mache ich immer Aufgaben nach einem bestimmten Schema: Eine Funktion, bei der zunächst die Rückgabevariable auf einen sinnvollen Initialwert gesetzt werden muss. Diese Variable wird dann am Schluss zurückgegeben. Es folgt eine Schleife, welche den Funktionsparameter verarbeitet, üblicherweise eine Liste oder ein String, der ja eine Liste von Zeichen ist. Im Schleifenkörper muss dann die Rückgabevariable korrekt aktualisiert werden. Alleine dieses Schema einzuüben, braucht schon viel Arbeit.
Meillo hat geschrieben: Generell mag ich, wenn Programme nicht nur einmal geschrieben werden, sondern danach erweitert werden, weil das sehr viel praxisnaeher ist und eine wichtige Faehigkeit foerdert. Um so besser wenn sie dafuer nicht nur erweitert sondern nachtraeglich umstrukturiert werden muessen. Dabei lernt man viel.
Für mich ist das dann der nächste Schritt, nachdem die Grundlagen sitzen. Ich habe jetzt z.B. die Funktionsrümpfe (d.h. ohne Implementierung) mit entsprechenden Unittests für das Spiel TicTacToe zur Verfügung gestellt. Wenn die Implementierung dann keine Probleme mehr bereitet, können diese Funktionen in ein gesondertes Projekt rausgezogen werden, um ein richtiges Spiel zu programmieren.

Von den Auszubildenden höre ich, dass sie gerne grössere, zusammenhängende Sachen programmieren wollten, da sie hierfür motivierter seien. Hier blocke ich jedoch ab, da ich will, dass zunächst die Grundlagen (Schleifen, Variablen, if/else usw.) beherrscht werden. Es mag ja lustig sein, mit einem Brettspiel zu beginnen, indem man in Visual Studio mal ein Formular mit 64 Feldern zusammenklickt. Aber genau diesen planlosen Ansatz möchte ich vermeiden. Hier stehe ich leider völlig im Konflikt zwischen Motivation maximieren und Verständnis fördern. Andererseits sollten angehende Programmierer, die es ernst meinen, sich nicht nur für bunte Effekte interessieren, sondern für das Durchdringen der Materie.
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von Meillo » 29.08.2021 15:24:27

paedubucher hat geschrieben: ↑ zum Beitrag ↑
29.08.2021 14:52:36
Genau dieses genaue Arbeiten halte ich für eine grosse Hürde am Anfang. Ich möchte den jungen Leuten immer sagen, dass sie sich beim Programmieren einerseits möglichst dumm anstellen sollen (halt den Programmtext wie eine Maschine betrachten), andererseits sehr viel denken müssen, um auf die Problemlösung zu kommen.
Ja, das muessen sie beides lernen. Ich finde es immer wieder erstaunlich, dass es selbst promovierten Personen teilweise unmoeglich ist, ``Computer zu spielen'', also komplett stupide und mechanisch einer Handlungsanweisung zu folgen (und dabei alle Wahrnehmungsautomatismen, Pattern-Matching, vorschnelle Interpraetation und Vorausschauen abzustellen). Aber genau das ist noetig fuer's Debuggen: Nicht meinen was da stuende, sondern erkennen was da steht. ;-)

paedubucher hat geschrieben: ↑ zum Beitrag ↑
29.08.2021 14:52:36
Von den Auszubildenden höre ich, dass sie gerne grössere, zusammenhängende Sachen programmieren wollten, da sie hierfür motivierter seien. Hier blocke ich jedoch ab, da ich will, dass zunächst die Grundlagen (Schleifen, Variablen, if/else usw.) beherrscht werden. Es mag ja lustig sein, mit einem Brettspiel zu beginnen, indem man in Visual Studio mal ein Formular mit 64 Feldern zusammenklickt. Aber genau diesen planlosen Ansatz möchte ich vermeiden. Hier stehe ich leider völlig im Konflikt zwischen Motivation maximieren und Verständnis fördern. Andererseits sollten angehende Programmierer, die es ernst meinen, sich nicht nur für bunte Effekte interessieren, sondern für das Durchdringen der Materie.
Die Kommandozeile erleichtert das ganze Thema Input und Output, finde ich. Man kann sich dann auf das Eigentliche im Code konzentrieren, bloss dass es halt optisch nicht so schoen aussieht. Das finde ich sinnvoll, bevor man sich mit GUI-Zeug befasst. (Notfalls GUI in der Form, dass du eine fertige Blackbox anbietest in die sie nur ihre Daten einschieben und Userinput rauholen koennen. Sie ersetzen in ihrem Progamm dann nur ihren Kommandozeilenausgabeaufruf printffield() durch deine fertige Funktion printfield_gui(), bzw. ersetzen ihre Include-Datei mit deiner und haben eine andere Ausgabe ... ebenso bei der Eingabe.)

Motivation hatte ich immer bei Spielen, weil ich damit etwas tun konnte, nachdem sie fertig waren.

Ich bin kein grosser Freund von einem mehrteiligen Erstellen von Einzelteilen, die dann ein groesseres Programm zusammensetzen, weil das so sehr den Engineering-Ansatz ist ... so sehr Wasserfall/V-Modell. Ich finde es besser klein und funktionierend zu beginnen und dann inkrementell zu erweitern. Also schon im ersten Schritt ein funktionierendes, wenn auch noch so rudimentaeres Spiel erzeugen, dann aber jeweils einen Aspekt umbauen, verbessern, erweitern, anbauen ... bis man am Ende auch das grosse Spiel hat. In zweiterem Prozess ist fuer die Lernenden stets sichtbar was passiert und warum. Auch koennen sie selber mitentscheiden, Richtungen einschlagen, kreativ sein, ausprobieren.


Wahrscheinlich geht es dir aehnlich wie mir, dass ich denke, dass die Dinge zuerst verstanden werden muessen, bevor man sie wirklich anwenden kann. Wenn wir ehrlich sind funktioniert es aber auch bei uns selbst nicht so. Wir tun auch erst mit Halbwissen allerlei *um* dabei dann kennenzulernen wie es wirklich funktioniert. Das Ziel sollte wohl sein, dass deine Schueler/Azubis/Studenten Interesse an dem entwickeln was sie machen, damit sie Ausprobieren wollen. Schaffe ihnen kreativen Raum, in dem sie experimentieren koennen. Sage z.B. nur, dass es eine sinnvolle Ausgabe sein soll, lasse aber offen wie sie aussieht. Gib als extra Aufgabe, dass sie die Ausgabe schoen machen sollen. (So irrsinnig dies klingt, aber ich glaube, dass das eine hervorragende Aufgabenstellung ist.) Versuche, dass sie sich ueber ihre Erzeugnisse austauschen und diese ``lustige Sachen'' machen. (``Just for fun!'' -- Spass ist entscheidend.) Zuerst muessen sie Spass daran finden, dann kannst du ihnen sinnvolle Denkweisen zeigen. ... allerdings kann ich das alles nur nett hier hinschreiben, kann dir jedoch nicht sagen *wie* man das alles umsetzt. ;-)
Use ed once in a while!

Benutzeravatar
tkreutz
Beiträge: 61
Registriert: 07.06.2014 08:44:39

Re: Idee für Programmierkurs

Beitrag von tkreutz » 05.09.2021 10:42:51

Ich möchte noch eine Anregung geben zu dem Thema "Online", "Offline", "Paper" und "Klassenraumlösungen".

Was den Lerneffekt angeht, scheint mit Paper-Training ein sehr guter Ansatz zu sein, um a) eine Aufgabe zu geben b) in Ruhe die Schüler "Kopfarbeit" machen zu lassen und c) das Ergebnis anschließend auch zu kontrollieren.

Bei dem didaktischen Ansatz fand ich diesen hier gut (ich bin kein Lehrer, habe auch auch schon als Dozent für IT-Themen Kurse gegeben).

https://youtu.be/L0xTXGahEus

Bei Klassenraumlösungen zu dem Thema "Programmieren", könnte eine Cloud Lösung auch interessant sein, da es hier aus Sicht des Lehrers die Möglichkeit gibt quasi online die "Tippfehler" der Schüler mit zu verfolgen, was Zeit spart und mögliche Probleme (Klammern vergessen, falsch eingerückt, Tippfehler, Groß- und Kleinschreibung nicht beachtet usw.) direkt offenbart.

Die Lernumgebung BlueJ ist übrigens eine interaktive Lernumgebung zu Java (hier gibt es zumindest auch mindestens ein deutschsprachiges gutes Buch). Einfach nach BlueJ suchen. Pearson Edu nutzt diese Umgebung.

Zu Eclipse (IDE) gibt es mittlerweile auch Cloud Lösungen z.B. hier:
https://www.dirigible.io

Die Firma Jetbrains bietet ihre Entwicklertools / Programme auch für Schulen an. Andere Anbieter werden hier sicher folgen.

Auch Apple arbeitet an einer Cloud-Infrastruktur für Hardware independable Developer Projects, aktuelle ist die Beta für Entwickler hier im Umlauf, da kommt aber auch noch was.

Ich würde mir als Lehrer (vielleicht langfristig) auch eine Möglichkeit suchen, bei der ich die Möglichkeit hätte, die Klasse online zu Monitoren bei dem, was sie eintippen. Am Besten auch mit einem Quellcode-Repository, dann hat man die Möglichkeit zu dem Start einer Lektion alle auf den gleichen Stand zu heben, ohne an jedem Bildschirm gucken zu müssen, wer wo gerade einen Tippfehler gemacht hat.

Das ist mir noch eingefallen aus der Erfahrung einer Klasse mit Programmierschülern bei der der Lehrer ständig bei 20 Arbeitsplätzen hin und herlaufen musste, um in dann wachsenden Code, die Tippfehler der Schüler zu suchen.

Deswegen ist die "Lernumgebung" BlueJ so gebaut, dass sie den Scope von Prozeduren grafisch einfärbt. Eine vergessene Klammer in einem Block wirkt also auch direkt farblich aus. Der Lehrer sieht dann mit einem Blick, wenn etwas vergessen worden ist (was sicher mehr als einmal vorkommt).

https://www.bluej.org

https://www.amazon.de/Java-lernen-mit-B ... b_title_bk

Benutzeravatar
tkreutz
Beiträge: 61
Registriert: 07.06.2014 08:44:39

Re: Idee für Programmierkurs

Beitrag von tkreutz » 07.11.2021 09:20:56

Clean Code Author Robert C. Martin hat einen kleinen Programmierkurs online, der mit dem Environment Processing.org arbeitet.

https://processing.org/environment/

Dazu gibt es ein Video:

https://youtu.be/-1CuAiKdBQs

Die Online-Programmierumgebung setzt auch grafische Elemente ein. (Schalterbeispiel für Schaltalgebra). Ich hatte die Lernumgebung entdeckt, nachdem ich mich ein wenig mit Clean Code beschäftigt hatte. Vielleicht ein Thema, was man auch irgendwie einfließen lassen sollte.

Interessant wäre es mal, eine Rückmeldung zu kommen, wie der bisherige Kurs gelaufen ist.

Benutzeravatar
paedubucher
Beiträge: 856
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Idee für Programmierkurs

Beitrag von paedubucher » 11.11.2021 13:30:18

tkreutz hat geschrieben: ↑ zum Beitrag ↑
07.11.2021 09:20:56
Clean Code Author Robert C. Martin hat einen kleinen Programmierkurs online, der mit dem Environment Processing.org arbeitet.

https://processing.org/environment/

Dazu gibt es ein Video:

https://youtu.be/-1CuAiKdBQs

Die Online-Programmierumgebung setzt auch grafische Elemente ein. (Schalterbeispiel für Schaltalgebra). Ich hatte die Lernumgebung entdeckt, nachdem ich mich ein wenig mit Clean Code beschäftigt hatte. Vielleicht ein Thema, was man auch irgendwie einfließen lassen sollte.

Interessant wäre es mal, eine Rückmeldung zu kommen, wie der bisherige Kurs gelaufen ist.
Diese Umgebung sieht wirklich interessant aus, gerade für Leute, die gerne visuelles Feedback haben. :THX:
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Antworten