Hallo,
keine Ahnung, ob ein 5 Jahre alter Thread aktuell ist bzw. sein kann. Habs mir aber mal durchgelesen und es fallen mir dazu ein paar Anmerkungen ein, von denen ich denke: "wenn nach 5 Jahren jemand auf den Thread verlinken kann - da anscheinend doch aktuell -, nun, dann könnten meine Gedanken zu dem Thema irgendjemandem in 5 Jahren evtl. hilfreich sein - auch wenn sich in weiteren 5 Jahren keine Posts dazugesellt haben" ...
----------------------------
Wie gesagt, habe mir die drei Seiten an Posts durchgelesen und denke, daß das Pferd irgendwie vom falschen Ende her aufgezäumt wird.
Ein paar affektierte Einstigesfloskeln:
Item 1: Warum habe ich ein Auto in der Garage stehen und kein Pferd?
Item 2: Warum stellen Automobilkonzerne halbnackte Frauen auf die Haube?
Item 3: Warum interessieren bei Viagr_a niemanden die Nebenwirkungen?
----------------------------
Fangen wir an mit Item 1:
Warum habe ich ein Auto in der Garage stehen und kein Pferd?
Wenn ich 2 Wochen in Urlaub fahre, kann ich das Auto einfach 2 Wochen in der Garage stehen lassen. Ein Pferd, kann ich keine 2 Wochen einfach so mal alleine im Stall stehen lassen.
Wenn ich meinen Sohn vom zum Fußballtraining fahre, fahre ich ihn mit dem Auto hin. Wir passen da beide rein, seine Sporttasche hat auch Platz. Wenn er mir dann erzählt, daß er in der Schule mit dem und jenem vereinbart hat, daß er sie abholt und sie bei uns mitfahren können, kann ich das spontan so machen. Die passen beide auch noch ins Auto, mitsamt Sporttaschen. Wenn dann der Cotrainer mich am Handy anruft, daß er kurzfristig verhindert sei, ob ich das Netz mit den Bällen abholen könne, liege ja auf'm Weg, dann mache ich das einfach. Mit dem Pferd wären solch spontanen Planänderungen schwer möglich.
Jede Diskussion darüber, daß ich beim Pferdekauf mir das Pferdegebiss anschauen soll, mal die Hufe hochheben, Körperbau, Muskulatur, oder sonstwas. Oder daß ich wissen muß, wieviel PS das Auto hat, welchen Verbrauch, CO2-Werte, usw. usw.
==> Das interessiert mich alles nicht. Ich habe eine Aufgabe: "Ich bin in München. Möchte nach Stuttgart. Habe drei Koffer". Was löst meine Aufgabe bzw. was hilft mir am besten meine Arbeit zu machen: das Auto, nicht das Pferd. Die Wahl ist somit getroffen.
Anders gesagt: Nicht die Sicht des Pascal-Fans, oder die Sicht des Programmierers oder die Sicht des "Pferde-Verkäufers" interessiert, sondern die sich des: Lehrers, Schülers, Schule.
Neues Beispiel:
Ich kann mich noch an meine erste Computer-AG erinnern. Das waren noch C64-Zeiten, Amiga, Atari und so was. PC gabs nur in der Schule und der war langweilig. Da gabs so ein Programm, "Turtle" oder so in der Art. Damit hat man eine Schildkröte über den Bildschirm bewegt; Linie, 6 cm lang, drehe dich um 28 Grad nach rechts, fahre 3 cm weit, drehe dich um 80 Grad nach ... usw. usw. Hätte der Lehrer sich mit Fragen konfrontiert gesehen, wie "lieber Pascal" oder "lieber Basic" oder lieber xyz -- das hätte den doch garnicht interessiert. Der wollte Mathe mit uns machen. Geometrie war das Thema. Und der war von der Schildkröte so begeistert, daß er es sogar im Computer-AG-Unterreicht als "wir lernen Programmieren" genutzt hat.
D.h. die Frage ist nicht, wie argumentiert man pro Pascal und kontra C oder kontra VB. Die Frage ist, warum nimmt der Mathelehrer Lazarus als Werkzeug zur Hand, wenn er den Satz des Pythagoras erklären will; oder: warum läßt sich die Biologielehrerin das mit "diesem komischen Lazaruszeugs" erklären (die Biolehrerin, die Computer sonst nichtmal mit der Kneifzange anfaßt), wenn Sie das mit den Bohnen und der Vererbungslehre erklären will.
Ich stelle mir als "Lösung des Problems" vor: Lazarus/FPC fehlen a) tolle Komponenten und b) viele Komponenten.
Ich bin noch recht neu mit Lazarus, auch bei Delphi bin ich etliche Versionen in Rückstand. Auch wenns länger her ist und evtl. auch schon überholt sein könnte, trotzdem mal folgende Aussage: Ich weiß noch wie es in Delphi mal mit Images war. Da gabs Bitmap und dann noch ein oder zwei andere Formate. Ich weiß nicht mehr obs gif oder jpg war, aber eins von den beiden war nur über Umwege brauchbar zu benutzen. Ich stelle mir ein brauchbares Bild-Wekzeug aber anders vor. MeinBild.LoadImage(strFilenamne) lädt das Bild. Es interessiert mich einfach nicht, ob das ein jpg ist, oder gif, oder png oder tiff oder sonst was. Die Kompoente soll das laden und wenn ich dann die Malprozedur aufrufe, soll gemalt werden. Ich male dabei auf ein Panel, eine Form, ein Canvas, einen Button, etc.; ohne viel wissen zu müssen - evtl. muß ich darauf achten, daß ich immer ein Canvas ein Ziel nehme - bspw. MeinZielButton.Canvas; der sich dann problemlos tauschen ließe mit MeinSonstwas.Canvas. Aber darüber klärt mich die F1-Taste auf. Wenn ich dann noch angeben kann "mit 80% Deckkraft" und der vorher an der Stelle gewesene "Hintergrund" scheint um 20% durch. Oder ich "male" Text und gebe an "mit 3 px gelben Schein nach außen Drumherum".
Für mich ist dann ein Argument pro Lazarus und kontra VisualC++ ---> "Da kann man leicht mit Bildern arbeiten" oder "Da kann ich so tolle Sachen mit Bildern machen, das glaubst du nicht."
Das heißt: Nicht wir müssen Argumente finden, um es dem Lehrer schmackhaft zu machen. Sondern: jemand muß eine Komponente (Tool, Beispielprogramm, Tutorial, Framework, was auch immer) entwickeln, die dann der Lehrer als Argument anführt, um zu erklären, warum er so gerne mit Lazarus arbeitet.
Und genau das ist aber auch das Problem. Es ist leichter jemanden zu finden, der eine Powerpointpräsentation erstellt und sich dem theoretisieren hingibt, als jemanden der über Monate (Jahre) an einem Projekt arbeitet, um eine "tolle Komponente" zu entwickeln.
(PS.: Ich nehme mich selbst aus der Kritik nicht heraus.)
=====> Fazit für Item 1: Nutzen aus Sicht des Anwenders. Dabei nicht aus Pascalsicht, sondern aus dem Vokabular und dem Aufgabenfeld des Anwenders.
Um selbst nicht nur zu theoretisieren, heißt das für mich bspw. konkret:
Beispiel a)
Es gibt eine gute CAD-Komponente. Mit der kann der Mathelehrer recht einfach Linien zeichnen, Kreise, Rechtecke. Diese Polygone leicht per Maus über den Bildschirm hinundher schieben. Die Komponente nimmt dabei fast die ganze Arbeit ab. D.h der Mathelehrer muß nicht mehr die Aufgaben des "CADS-Teiles" lösen, sondern nur noch programmieren:
MeinCAD.Polygon(2).Point(7) := MeinCAD.Polygon(4).Point(3)
Und das legt er ins OnObjectMoved-Ereignis.
==> Nicht wir argumentieren pro Lazarus, sondern der Mathelehrer selbst wird zum Sprachrohr. Wenn er sich mit einem Kollegen trifft, schwärmt er ihm selbst vor, wie schön es mit Lazarus ist "Ich habe ein Dreieck und zwei Rechtecke gezeichnet. Dann mußte ich nur noch mit einer Zuweisung dafür sorgen, daß wenn ein Schüler die eine Ecke des Dreiecks mit der Maus verschiebt, die betreffenden Ecken der Rechtecke autom. mitverschoben werden. Mit meinem Lazarus ist das ganz einfach. Mach du das mal mit deinem Java."
---------------------------------------
Item 2: Warum stellen Automobilkonzerne halbnackte Frauen auf die Haube?
Es hat nichts mit der Sache direkt zu tun. Es geht über Umwege.
Vor kurzem gabs hier einen Thread, da ging es darum, daß im Informatikunterricht ein Spiel programmiert wird. Leuchtet erstmal ein. Ein Spiel wird für Schüler interessanter sein, als eine trockene Immobilienverwaltung oder ein Darlehenskalkulator. Didaktik eben - wenns Spaß macht und ein Zielgruppengerechtes Thema trifft, ist die Aufmerksamkeit und Mitmachquote entspr. höher. Die eigentliche Frage in besagtem Thread war aber eine andere. Das Spiel orientierte sich an PacMan, war ein Erfolg bei den Schülern, und man hatte vor, es so aufzuarbeiten, daß es für andere Lehrer zugänglich gemacht werden sollte, damit diese es ebenso als Unterrichtsgrundlage verwenden können. Die Frage war nun: es geht an die Öffentlichkeit, darf man da dann noch den Begriff/Namen PacMan verwenden. Es hieß, daß das wichtig sei, da PacMan "cool" ist, ein beliebiges CatchMe aber keine Maus hinterm Ofen hervorlocken könne. Also wie bei unsere Eingangsthese mit den halbnackten Frauen: nüchtern betrachtet haben die genausowenig was auf der Haube zu suchen, wie der Name am Spiel was ändert - mit oder ohne ist egal, es bleibt das selbe Auto, das selbe Spiel. Und trotzdem verstehen irgendwie alle sofort, daß es doch nicht egal ist.
Was nun, wenn es ein Komponente gebe, wie eine Art GameEngine. Also keine GameEngine, aber so eine Art Animationsframework, oder Medienleichtzuhandhaben-Komponente. Beispiel: Der PacMan zieht beim Starten einen Raketenschweif hinter sich, wenn der etwas frißt, gibs ein kleines Feuerwerk, um die Ecke macht er Quietsch- und Bremsgeräusche. Einfach nur affektiert eben. Aber das ist eben auch "cool". Wie sollen Schüler das machen - d.h. der Raketenschweif muß mit dem PacMan synchron bewegt werden, ist in sich nochmal animiert, usw. Das ist zu schwer. Wenns aber eine Komponente gibt, die eine Eigenschaft hat, die man nur auf true setzen muß? Wie soll ein Schüler mit Sound programmieren? Der muß geladen werden, gestartet, am laufen gehalten, alles passend zur PacMan-Figur? Was wenn die Komponente sogar "mitdenkt" und selbst davon weiß und den Sound stoppt, wenn der PacMan.Delete ausgeführt wird? Usw. usw.
Ein anderer Punkt in dem Zusammenhang wäre eine Networkingkomponente; irgendwas mit Kommunikation und Groupware -> Die Schüler programmieren sich ein Monopoly, das sie im Netz verteilt spielen können.
Oder eine Komponente zum Thema Robotik. Bspw.:
MeinCanBus := TCanBus.Create;
MeinCanBus.SendBroadcast('MeldeDichAn', 'BeiMir'); // alle Geräte im Netz sind danach bekannt
MeinCanBus.Item('Motor5').Start; // Der Motor bewegt den Kolben
MeinCanBus.Item('Bauteil8').WievielStromSiehstDu;
MeinCanBus.Item('Bauteil15').WieHochIstDieFledstaerke;
Wozu das Ganze?
Nun, der Motor setzt einen Kolben in Bewegung. Der ist in einer Spule. Die Bewegung induziert Strom. Es entsteht ein elektromagnetisches Feld. Das läßt sich messen.
Du verstehst es immer noch nicht?
Die vorhergehenden Posts diskutierten darüber, wie man den Lehrern Pascal schmackhaft macht. Ich argumentiere mit dem Robotik-Beispiel, daß es erst zum Erfolg führen wird, wenn eben nicht über Lazarus gesprochen werden muß. Mit dem Physiklehrer spricht man über Physik. Lazarus ist nicht der Sinn, Lazarus ist das Mittel, das Werkzeug, mit dem der Physiklehrer seinen Stoff so an die Schüler bringt, daß die auch wirklich mal zuhören. Wenn dem Physiklehrer gezeigt wird, wie er mit einer Handvoll Code in Lazarus elektrische Geräte/Bauteile leicht steuern kann, um damit Versuche richtig real durchzuführen ... dem braucht man nicht mehr mit pro Lazarus kontra VisualC++ zu kommen; diese Diskussion ist dann bereist auf einer ganz anderen Ebene.
Fazit: Dinge, die auf den ersten Blick nicht wichtig sind, unterm Strich aber für den eigentlichen "Gesprächsstoff" sorgen. Die Presse wird die Frau schon fotografieren und so kommt auch mein Auto in die Zeitung -> Die Schüler werden drauf abfahren - da spielts keine Rolle, ob das nur das "Blendwerk" ist -, und so wird auch der Lehrer es gerne einsetzen wollen. -> Die Motoransteuerung hat mit Pascal nichts zu tun; es ist eine hinzugefügte Komponente; das unterscheidet der "Endbenutzer" aber nicht; ob teil des "Standard"-Lazarus oder nachträglich dazugepackt, das ist egal.
==> Item 2 führt uns an die selbe Stelle wie Item 1: brauchbare Tools (Komponenten, Framworks, etc.) sind nötig, und keine Diskussionen. Aber auch hier: wer solls machen?
-------------------------------
Item 3: Warum interessieren bei Viagr_a niemanden die Nebenwirkungen?
Weil der Zwang zur Lösung des Problems zu groß ist.
Nehmen wir zur Abwechslung mal ein Beispiel aus meinen persönlichen Umfeld. Ich war in meiner Stundenzeit eine Zeit Tutor im Fachbereich Pflege und Gesundheit. Die hatten damals in den nicht-Informatik-Bereichen ganz gerne uns Informatikstudenten genommen. Wenn ich ein Beispiel für eine Branche nennen müßte, die am weitesten weg von Begriff technikaffin ist, so wäre es der Pflegebereich. Computer sind ein Übel, das man über sich ergehen lassen muß. Und mein Beispiel ist nun schon 20 Jahre alt - Computer waren da noch unbeliebter als heute. Da gabs eine Professorin, die setzte ein Programm für Umfragen ein. War schon was umfangreiches; "wissenschaftlich basiert", Strukturen der Fragen möglich, Kontrollfragen auf nachfolgenden Seiten, viele Auswertungen, usw. usw. Genau erinnere ich mich nicht mehr; nur so weit, daß ich sofort ablehnte, als mir angeboten wurde, die Betreuung der Profs bzgl. des Programms zu übernehmen. So weit ich mich erinnere, war das Ding so kompliziert, so unkomfortabel, daß ich als Informatikstudent nichts damit zu tun haben wollte. Wie dann erst diese Pflege-Professorin? Die hats trotzdem gemacht. Sich trotzdem damit herumgequält. Warum? Warum lernt jemand eine proprietäre Programmiersprache, die zu sonst nichts, als nur in diesem einen Programm zu nutzen ist? Jemand, der sonst mit Computern am liebsten nichts zu tun hat?
===>> Nutzen. Es löst eine Aufgabe. Es löst sie so, wie sie sonst nichts anderes lösen kann.
--------------------------
Auch ohne affektierten Einleitungsteaser, gibt's mehr zu sagen:
Item 4: Was macht eigentlich ein (Informatik-)Lehrer, wie arbeitet der?
a) Er gibt Hausaufgaben.
b) Er organisiert seinen Stoff in Lektionen.
Beispiel: Du bist Onkel, hast einen Neffen. Du bist bei deiner Schwester zu Besuch (also bei deinem Neffen). Dein Neffe spricht dich an, da du Informatiker bist, sie haben in der Schule im Informatikfach als Hausaufgabe bekommen, etwas mit Java zu programmieren. Der Code existiert soweit. Den hat der Lehrer zur Verfügung gestellt. Man müsse ihn aber ergänzen; damits dann läuft. Er weiß aber nicht wie ers machen soll. Er ist nicht so der Computerenthusiast, d.h. du hast ihm erstmal alles aus der Nase ziehen müssen. Ende des Inforetrievals: Der Code ist gar nicht das Problem. Du hast erstmal gebraucht, zu verstehen, daß er Eclipse nehmen soll. Als du meintest, daß du mit Java nicht wirklich firm bist, zu Eclipse ertsmal was lesen müßtest (wie installieren, etc.), und es nächstes Wochende bei ihm dann mal installierst und ihm hilfst, da war das Gespräch direkt mal beendet ... "Nächste Woche, ich dachte das geht gleich, ich dachte das wäre einfach mal so ..." Was ich sagen will: Wenn der Geschichtelehrer eine pdf mitgibt, damit man die zuhause lesen kann; oder in Gemeinschaftskunde ein Link gemailt wird, auf ein Worddokument im Schulnetz; und dinge dieser Art: das ist nachvollziehbar: solche Hausaufgaben kann ein Schüler erwartungsgemäß abarbeiten. Aber Javacode zu vervollständigen ... wie kann man das erwarten? MS-Office oder LibreOffice kann man beim Schüler zu Hause noch voraussetzen, pdf-Reader sowieso, aber Eclipse?
D.h. in die Diskussion um Lazarus und Schule möchte ich einwerfen: Der Lehrer muß Pascal/Lazarus-Hausaufgaben mitgeben können, so wie er eine pdf mitgibt. Mit der selben _berechtigten_ Erwartungshaltung, daß es den Schüler nicht vor unlösbare Aufgaben stellt, allein schon die Infrastruktur sich herzustellen.
==> Meine Lösung: so eine Art "Portable"-Version von Lazarus.
PS.: Falls es die schon gibt ==> Kommunizieren, daß es soetwas gibt und wozu es sinnvoll im Zusammenhang Schule eingesetzt werden kann.
D.h. der Lehrer bereitet etwas vor; ein Verzeichnis, darin Dateien. Der Schüler zieht sich das aufn Stick, daheim auf den Rechner. Und startet es einfach. Das wars. Keine Installationen, keine Fehler bei der Installation, keine Fragen wie "welche Version muß da installiert werden". D.h. in dem einen Fall scheitert der Schüler bereits, bevor er überhaupt mit der eigentlichen Aufgabe anfangen kann. In unserem Fall lautet die Beschreibung des Lehrers simpel und einfach "kopiere, klicke auf ...".
"Portable" ist dabei nur ein Vorschlag. Vielleicht gibt's bessere Lösungen. Aufgabe ist aber denke ich klar: Lehrer gibt Hausaufgaben auf. Schüler soll Hausaufgaben lösen, keine Drumherum-Probleme haben.
In die gleiche Kerbe schlägt Punkt b. Lehrer teilen den Stoff in Lektionen ein. Stellen wir uns eine Klasse mit 30 Schülern vor. Der Lehrer hat alles vorbereitet. Heute ist Lektion 7 dran. Bei so vielen Schülern ist die Wahrscheinlichkeit recht hoch, daß bei min. einem irgendwas schief läuft ... "Was heißt, bei dir gibt's die Komponente nicht. Ich habe daß doch so vorbereitet, daß die da ist ... Die ist ja weg bei dir. Wie hast du die denn deinstalliert/deregistriert?" usw. usw.
Bei dem "Portable"-Version-Vorschlag: der Lehrer hats ja vorbereitet. Er hat für jede Lektion ein Verzeichnis: "lektion1", "lektion2", usw. In jedem Verzeichnis ist ein vollständiges Portable-Lazarus. Das mag zwar Platzverschwendung sein; aber für jede Lektion muß er nur das Verzeichnis wieder hinkopieren und der betreffedne Schüler kann wieder an betreffender Stelle anfangen zu arbeiten.
============================
============================
Mein Beitrag, bzw. Gedanken, zu dem Thema.
a) Was braucht ein Lehrer? Genauer: ein Mathelehrer, eine Biolehrerein, eine Computer-AG, etc.?
=> Brauchbare Komponenten, wie bspw. CAD für Mathelehrer, eine Art GameEngine für den "indirekten Catch", irgendeine Form von Networking/Groupware für AGs, "Robotik"-Steuerungen für Physiklehrer. Die Liste läßt sich ergänzen.
=> Das ganze dann mit Tutorials, Codebeispielen, ect. aufbereitet, daß es a.1) ein Lehrer leicht anwenden kann (auch ohne Codingcrack zu sein) und a.2) selbst leicht abwandeln kann, um es bspw. anderen Lehrern über bspw. Lernmittelforen zu verteilen.
b) Was macht ein Lehrer damit? Wie lehrt er?
Das mit der "Portabel"-Version. Nochmal: muß keine "Portabel" sein, war nur ein Beispiel. Aber halt eine Lösung, die es erlaubt:
b.1) Schüler soll Hausaufgaben machen können, ohne daheim viel Aufwand für "Infrastruktur" zu haben. So einfach wie "kopier dir die pdf, damit du sie zuhause lesen kannst" muß es gehen: "kopier dieses ganze Verzeichnis bei dir zuhause auf den Computer und starte dort die lazarus.exe". Der Lehrer hat ihm dabei sein bereits vorbereitetes "Lektion17"-Verzeichnis aufn Stick kopiert. Der Lehrer sagt dabei jede Woche das selbe. Er sagt immer "kopier das, starte lazarus.exe". Die Schüler habens einmal kapiert und es bleibt dann immer gleich. Nur der Lehrer achtet halt darauf, daß er heute das Verzeichnis "lektion7" kopieren läßt; nächste Woche das Verzeichnis "lektion8" usw.
b.2) Im Unterricht muß der Lehrer leicht von Lektion 7 zu Lektion 9 springen können; oder von Lektion 15 zurück zu Lektion 8. Das ganze schnell und unkompliziert. Für alle Schüler, d.h. "wir starten jetzt mit Lektion 4" und für ALLE Schüler der Klasse muß das funktionieren.
==> Wer jetzt denkt "Alles schön und gut. Aber wer soll diese supertollen Komponenten programmieren? Die fallen nicht einfach so vom Baum". Nun, so denke ich auch. Doch ich denke auch, daß das der Denkansatz ist, der zum Erfolg führt.