Starter Kits und Software gibt es meines Erachtens schon genug. Was fehlt sind Lehrer (Menschen).
Das Problem ist das "Hallo Welt", woran die meisten Interessenten scheitern. Man braucht einfach jemanden, der die Leute an der Hand nimmt, bis die in der Lage sind "Hallo Welt" auswendig selber hinzukriegen.
Schritt 1: g++ hallo.cpp -o hallo auf dem normalen PC.
Also "Hallo Welt" bekommen die meisten noch alleine hin. Sobald es an die ersten "knackigen" Konzepte geht - das fängt schon bei Kontrollstrukturen an - scheitern viele bereits bei einfachen Transferaufgaben. An *der* Stelle braucht es dann Tutoren.
Und Sprachen ohne REPL (Ja, Cling mag das auf lange Sicht auch für C++ besser machen) und komplizierten Build-Prozess sollte man einem Anfänger eh nicht versuchen schmackhaft zu machen.
Leider sind die Python-Quellcodes in Zeitschriften zum Raspberry Pi wie Make (ehemals Ct Hack) oder Hardware Heften von PC Player (?) oft so grottig schlecht! Da wird munter ``while 1:`` benutzt und einige Zeilen drunter dann doch mal ein (sinnloser) Vergleich auf ``True``
Wer wirklich programmieren lernen will, der kann das auch ohne Starter-Kit - aber direkte Hilfe kann es nie genug geben!
Die Leute brauchen eine Verbindung zwischen Software und realer Welt. Deshalb hat der Raspberry Pi ja auch so große Resonanz.
Das Problem ist, dass heutige PC keine physikalischen Schnittstellen haben, die man mal so eben vom eigenen Programm aus ansprechen kann.
Ich finde, dass dafür aber USB Remote IO gut geeignet sind, da man die Software auf dem PC laufen lassen kann. Man steuert per Programm über /dev/ttyUSB0
PS: Hier findet man ein Beispiel für ein USB Remote IO http://www.conrad.de/ce/de/product/196660/Deditec-Kompakte-USB-Module-Digital-Ausgaenge-8-Relais-Montageart-Schraubbar-Schnittstellen-USB;jsessionid=4EF3E1FE1A9B64A6BB94755B1AF9C4C1.ASTPCEN03?ref=searchDetail
Ich frage mich, ob diese im Unterricht sinnvoller eingesetzt werden können als z.B. Arduinos. Immerhin hat man dort auch analoge Aus- und Eingänge, die bei dem USB Remote IO nicht enthalten sind.
Wenn man sich umschaut was bei Großprojekten mit Pythoneinsatz als vernünftige Programmierung angesehen wird, biegen sich die Fußnägel. Vergleich auf True ist in der Tat sinnfrei und Endlosschleifen mit Integer sind in der Praxis etwas schneller, aber eben mehr C als Python. Ich finde es erschreckend, dass man in fast jeden Tutorial sich lieber mit unwichtigen Dinge beschäftigt als in direkt in die Materie zu gehen. Kein Mensch will die Geschichte nachlesen oder Grundstrukturen erzählt bekommen wenn alle Operationen knackig in einer Tabelle stehen können. PEP8 oder das Manifest sind für den Erfolg wichtiger als irgendwelche Sprachfeatures oder bestimmte Funktionen die cool sind aber selten genutzt werden oder nur mit Erfahrung verstanden werden können. Man sollte lieber den Funktionsnamen nennen und gleich auf die Doku verweisen. Nicht jeden einzelnen Parameter durchkauen. Schon das endlose verweilen dieser "Lehrer" bei Schleifen zeigt, dass sie von Python nicht viel verstehen. Und wenn es dann doch in die "Tiefe" geht, werden OOP Konzepte hervorgeholt, die weder sinnvoll noch von Python unterstützt werden. Ich kann gar nicht genug kotzen, wie oft man von private spricht oder man getter und setter schreibt.
Ursächlich sind oftmals Leute, die Python als zweit oder dritt oder xte Sprache gelernt, zuvor aber statisch typsierte, Klassen basierte OO Sprachen gelernt haben. Sie übertragen fremde Idiome und Pattern einfach in Python Syntax - ohne sich sie Python sezifischen Aspekte angeguckt zu haben. (Die Autoren Ernesti & Kaiser mit ihrem unsäglich schlechten Galileo Open Book seien hier mals als Beispiel genannt, wo Java in Python Syntax präsentiert wird)
Damit verbreitet sich dieses Unwissen und Anti-Pattern (``if a == True:`` und auch immer gerne genommen ``for i in range(len(container)): print container[i];`` ) immer weiter...
Aber es stimmt schon, dass es kaum gute Anfängerbücher für Python gibt. Darin fehlen eben Dinge wie PEP8 oder auch Anlaufstellen, *wo* man gezielt Hilfe oder Module findet, wie man die Python-Doku liest, usw.
Also ich empfehle Codecademy. Leider existiert es nur online und für manche Tutorials muß man sich registrieren. Aber es ist alles kostenlos.
Und wenn man einfach mal eine andere Programmiersprache ausprobieren möchte, ohne sie zu installieren, dann empfehle ich CodingGround.
Für die ersten Schritte, sind meiner Meinung nach auch LightBot und LightBot 2.0 ganz gut geeignet.
Von dem "Jugend Programmiert Starter-Kit" halte ich selber jedoch nicht besonders viel. Das Problem ist, daß es für den Anfang zum Programmieren zu kompliziert los geht. Man schreibt nicht einfach Code in einen Editor oder klickt ihn zusammen und führt ihn aus. Stattdessen wird erst an der Hardware gebastelt und dann dazu programmiert. Sicher, das Hardwarebasteln und die Interaktion zwischen Hardware und Software hat auch seinen Reiz. Aber man fängt gewöhnlich erst mit einem Thema an und nimmt später auch ein weiteres Thema hinzu und fängt nicht direkt am Anfang mit zwei Themen an.
Lasst doch erstmal die Kiddies anfangen! Wie sinnvoll PEPXX , OO, Patterns und Konventionen sind, laesst sich erst mit etwas Erfahrung erkennen. Hobbyprogrammieren und Softwaredesign sind zwei sehr unterschiedliche Dinge. Und es ist auch nicht wie beim Musizieren, dass gleich amAnfang die Technik sitzen muss. Was ihr fordert ist richtig, kann a er nachgeschoben werden. Was wir erstmal brauchen sind Erfolgserlebnisse und Begeisterung. Wer dann dabei bleibt, wird sich dann auch umdas Design kuemmern und dem Lehrer mit Freude beim public Viewing ( Referat) die privaten Atrribute um die Ohren setten, dass der rote Ohren gets
Lasst doch erstmal die Kiddies anfangen! Wie sinnvoll PEPXX , OO, Patterns und Konventionen sind, laesst sich erst mit etwas Erfahrung erkennen. Hobbyprogrammieren und Softwaredesign sind zwei sehr unterschiedliche Dinge. Und es ist auch nicht wie beim Musizieren, dass gleich amAnfang die Technik sitzen muss. Was ihr fordert ist richtig, kann a er nachgeschoben werden. Was wir erstmal brauchen sind Erfolgserlebnisse und Begeisterung. Wer dann dabei bleibt, wird sich dann auch umdas Design kuemmern und dem Lehrer mit Freude beim public Viewing ( Referat) die privaten Atrribute um die Ohren setten, dass der rote Ohren gets
Starter Kits und Software gibt es meines Erachtens schon genug.
Was fehlt sind Lehrer (Menschen).
Das Problem ist das "Hallo Welt",
woran die meisten Interessenten scheitern.
Man braucht einfach jemanden,
der die Leute an der Hand nimmt,
bis die in der Lage sind "Hallo Welt" auswendig selber hinzukriegen.
Schritt 1:
g++ hallo.cpp -o hallo
auf dem normalen PC.
PS: Das wäre was für die guten alten LUG.
Also "Hallo Welt" bekommen die meisten noch alleine hin. Sobald es an die ersten "knackigen" Konzepte geht - das fängt schon bei Kontrollstrukturen an - scheitern viele bereits bei einfachen Transferaufgaben. An *der* Stelle braucht es dann Tutoren.
Und Sprachen ohne REPL (Ja, Cling mag das auf lange Sicht auch für C++ besser machen) und komplizierten Build-Prozess sollte man einem Anfänger eh nicht versuchen schmackhaft zu machen.
Leider sind die Python-Quellcodes in Zeitschriften zum Raspberry Pi wie Make (ehemals Ct Hack) oder Hardware Heften von PC Player (?) oft so grottig schlecht! Da wird munter ``while 1:`` benutzt und einige Zeilen drunter dann doch mal ein (sinnloser) Vergleich auf ``True``
Wer wirklich programmieren lernen will, der kann das auch ohne Starter-Kit - aber direkte Hilfe kann es nie genug geben!
Die Leute brauchen eine Verbindung zwischen
Software und realer Welt.
Deshalb hat der Raspberry Pi ja auch so große Resonanz.
Das Problem ist, dass heutige PC keine physikalischen Schnittstellen haben, die man mal so eben vom eigenen Programm aus ansprechen kann.
Ich finde, dass dafür aber USB Remote IO gut geeignet sind, da man die Software auf dem PC laufen lassen kann. Man steuert per Programm über /dev/ttyUSB0
PS: Hier findet man ein Beispiel für ein USB Remote IO
http://www.conrad.de/ce/de/product/196660/Deditec-Kompakte-USB-Module-Digital-Ausgaenge-8-Relais-Montageart-Schraubbar-Schnittstellen-USB;jsessionid=4EF3E1FE1A9B64A6BB94755B1AF9C4C1.ASTPCEN03?ref=searchDetail
Ich frage mich, ob diese im Unterricht sinnvoller eingesetzt werden können als z.B. Arduinos. Immerhin hat man dort auch analoge Aus- und Eingänge, die bei dem USB Remote IO nicht enthalten sind.
Wenn man sich umschaut was bei Großprojekten mit Pythoneinsatz als vernünftige Programmierung angesehen wird, biegen sich die Fußnägel.
Vergleich auf True ist in der Tat sinnfrei und Endlosschleifen mit Integer sind in der Praxis etwas schneller, aber eben mehr C als Python.
Ich finde es erschreckend, dass man in fast jeden Tutorial sich lieber mit unwichtigen Dinge beschäftigt als in direkt in die Materie zu gehen.
Kein Mensch will die Geschichte nachlesen oder Grundstrukturen erzählt bekommen wenn alle Operationen knackig in einer Tabelle stehen können. PEP8 oder das Manifest sind für den Erfolg wichtiger als irgendwelche Sprachfeatures oder bestimmte Funktionen die cool sind aber selten genutzt werden oder nur mit Erfahrung verstanden werden können. Man sollte lieber den Funktionsnamen nennen und gleich auf die Doku verweisen. Nicht jeden einzelnen Parameter durchkauen.
Schon das endlose verweilen dieser "Lehrer" bei Schleifen zeigt, dass sie von Python nicht viel verstehen. Und wenn es dann doch in die "Tiefe" geht, werden OOP Konzepte hervorgeholt, die weder sinnvoll noch von Python unterstützt werden. Ich kann gar nicht genug kotzen, wie oft man von private spricht oder man getter und setter schreibt.
Ja, ds sehe und empfinde ich auch so!
Ursächlich sind oftmals Leute, die Python als zweit oder dritt oder xte Sprache gelernt, zuvor aber statisch typsierte, Klassen basierte OO Sprachen gelernt haben. Sie übertragen fremde Idiome und Pattern einfach in Python Syntax - ohne sich sie Python sezifischen Aspekte angeguckt zu haben. (Die Autoren Ernesti & Kaiser mit ihrem unsäglich schlechten Galileo Open Book seien hier mals als Beispiel genannt, wo Java in Python Syntax präsentiert wird)
Damit verbreitet sich dieses Unwissen und Anti-Pattern (``if a == True:`` und auch immer gerne genommen ``for i in range(len(container)): print container[i];`` ) immer weiter...
Aber es stimmt schon, dass es kaum gute Anfängerbücher für Python gibt. Darin fehlen eben Dinge wie PEP8 oder auch Anlaufstellen, *wo* man gezielt Hilfe oder Module findet, wie man die Python-Doku liest, usw.
Also ich empfehle Codecademy.
Leider existiert es nur online und für manche Tutorials muß man sich registrieren. Aber es ist alles kostenlos.
Und wenn man einfach mal eine andere Programmiersprache ausprobieren möchte, ohne sie zu installieren, dann empfehle ich CodingGround.
Für die ersten Schritte, sind meiner Meinung nach auch LightBot und LightBot 2.0 ganz gut geeignet.
Von dem "Jugend Programmiert Starter-Kit" halte ich selber jedoch nicht besonders viel.
Das Problem ist, daß es für den Anfang zum Programmieren zu kompliziert los geht.
Man schreibt nicht einfach Code in einen Editor oder klickt ihn zusammen und führt ihn aus.
Stattdessen wird erst an der Hardware gebastelt und dann dazu programmiert.
Sicher, das Hardwarebasteln und die Interaktion zwischen Hardware und Software hat auch seinen Reiz. Aber man fängt gewöhnlich erst mit einem Thema an und nimmt später auch ein weiteres Thema hinzu und fängt nicht direkt am Anfang mit zwei Themen an.
Grüße
theuserbl
Lasst doch erstmal die Kiddies anfangen!
Wie sinnvoll PEPXX , OO, Patterns und Konventionen sind, laesst sich erst mit etwas Erfahrung erkennen.
Hobbyprogrammieren und Softwaredesign sind zwei sehr unterschiedliche Dinge. Und es ist auch nicht wie beim Musizieren, dass gleich amAnfang die Technik sitzen muss.
Was ihr fordert ist richtig, kann a er nachgeschoben werden. Was wir erstmal brauchen sind Erfolgserlebnisse und Begeisterung.
Wer dann dabei bleibt, wird sich dann auch umdas Design kuemmern und dem Lehrer mit Freude beim public Viewing ( Referat) die privaten Atrribute um die Ohren setten, dass der rote Ohren gets
Lasst doch erstmal die Kiddies anfangen!
Wie sinnvoll PEPXX , OO, Patterns und Konventionen sind, laesst sich erst mit etwas Erfahrung erkennen.
Hobbyprogrammieren und Softwaredesign sind zwei sehr unterschiedliche Dinge. Und es ist auch nicht wie beim Musizieren, dass gleich amAnfang die Technik sitzen muss.
Was ihr fordert ist richtig, kann a er nachgeschoben werden. Was wir erstmal brauchen sind Erfolgserlebnisse und Begeisterung.
Wer dann dabei bleibt, wird sich dann auch umdas Design kuemmern und dem Lehrer mit Freude beim public Viewing ( Referat) die privaten Atrribute um die Ohren setten, dass der rote Ohren gets