Forum: Offtopic Programmierkurs für Schulkinder


von Martin M. (mmc8801)


Lesenswert?

Hallo zusammen,

bei uns gibt es ein von einem Schulverein organisiertes Ferienprogramm 
für unsere Hauptschüler.

Nachdem ich bereits mehrere Jahre C und C# an einer Hochschule 
unterrichte, habe ich zu diesem Ferienprogramm einen Kurs 
"PC-Programmieren für Anfänger" angeboten.

Der Kurs dauert 2 Tage a 3h.
Als Programmiersprache hätte ich VB.net benutzt, das ist im Vergleich zu 
C/C# relativ einfach...

6h sind natürlich ziemlich knapp bemessen um hier Grundlagen 
rüberzubringen; Ziel des Kurses ist auch nicht daß sie programmieren 
können, sondern eher daß das Interesse daran geweckt wird...

Die Zielgruppe sind (Haupt)schüler zwischen 11 und 16 Jahren mit bisher 
keinerlei Programmiererfahrung.

Habt ihr eine Idee (oder vielleicht sowas ähnliches schonmal gemacht), 
was man auf die 2 Tage machen könnte und wo die Kids auch Spaß daran 
haben?

Ich dachte an ein bißchen Windows-Forms (da sieht man gleich was) und 
vielleicht ein kleines Ratespiel (Zufallszahlen, If-Abfragen).

Danke + viele Grüße,
Martin

von Michael S. (technicans)


Lesenswert?

Nimm die Aufgaben die in diesem Buch dran kommen:
http://www.amazon.de/Visual-Basic-f%C3%BCr-Kids-CD-ROM/dp/3826605012/ref=sr_1_1?ie=UTF8&qid=1310286895&sr=8-1
Dann können die Kids, wenn sie deinen Schnupperkurs(mehr ist
es eh nicht) beendet und noch Lust haben gleich da weiter machen
wo bei dir Schluss war. Ansonsten wäre es nur Zeit und vermutlich
auch Geldverschwendung.

von D. I. (Gast)


Lesenswert?

Also ich würde zu JavaKara raten:

http://www.swisseduc.ch/informatik/karatojava/javakara/screenshots.html

Das ist praktisch visuelles Programmieren, man sieht was passiert.

Der Käfer hat vorgefertigte Sensor/Aktor-Methoden (move(), turnLeft(), 
onLeaf(), treeFront(), ...), die man aufrufen kann und dann macht der 
Käfer das was man ihm sagt, dann musst du der Klientel nur noch if/while 
erklären und sie können die Aufgaben aus dem einfachen Set die 
mitgeliefert sind lösen.

Das ist für Kids eindrucksvoller, als ein paar schnöde Zahlen auf der 
Konsole

von Tommy S. (tommys)


Lesenswert?

Hi,

ich habe ein aehnliches Projekt auch vor einiger Zeit (es war 2004, um 
genau zu sein) durchgefuehrt. Ich habe dafuer auch visuelles 
Programmieren verwendet, aehnlich dem Vorschlag von D.I.

Das Grundgeruest habe ich mir selbst zusammengebaut (damals in C++ unter 
Windows - entstanden aus einem Befehlsinterpreter/Scriptsprache, 
grafische Darstellung mit OpenGL). Die Kids haben dann einfache Scripte 
(mit C-aehnlicher Syntax) geschrieben, mit dem ein Auto gesteuert wurde. 
Ziel war, ein Script zu entwerfen (mit den Befehlen beschleunigen, 
bremsen, links, rechts und noch ein paar Dingen wie Schleifen und 
If-Bloecken) mit dem das Auto durch zunehmen schwierigere Strecken 
gesteuert wurde und am Schluss in einem definierten Zielfenster zum 
stehen kam.

Die Kids hatten damit sehr viel Spass, die Grundlagen waren in knapp 1 
Stunde vermittelt und auch Konzepte wie For-Schleifen und If-Bloecke 
wurden im Laufe des Kurses verstanden. Ich gehe mal davon aus, dass es 
soetwas fertig irgendwo im Internet gibt (habe mir JavaKara nicht 
angeschaut).

Gruesse,
TommyS

von Platinenschwenker .. (platinenschwenker)


Lesenswert?

Martin M. schrieb:

>..Als Programmiersprache hätte ich VB.net benutzt, das ist im Vergleich zu
> C/C# relativ einfach...
>
> 6h sind natürlich ziemlich knapp bemessen um hier Grundlagen
> rüberzubringen; Ziel des Kurses ist auch nicht daß sie programmieren
> können, sondern eher daß das Interesse daran geweckt wird...
>
> Die Zielgruppe sind (Haupt)schüler zwischen 11 und 16 Jahren mit bisher
> keinerlei Programmiererfahrung.
>
> Habt ihr eine Idee

Na klar!

Vorgaben: Hauptschüler + wenig Zeit + Showeffekte + Lust am 
Programmieren wecken?

Lösung: Microsoft Small Basic!

Warum? Eigens von MS an einen Entwickler als Projekt vergeben worden, um 
Programmieranfänger anzusprechen und Experimentierfreude zu wecken

Vorteile:
+ Hat sehr wenige Befehlsworte (quasi spielerisch im nu zu lernen)
+ hat eine schön gestaltete simple IDE mit stylischer Intellisense :)
+ Syntax ist an Visual Basic angelehnt
+ kann Grafikausgaben UND Textausgaben quasi per 1-Befehlswort
+ führt Programme unmittelbar aus
+ kennt auch Turtle-Befehl
+ hochladen der Programme zur Veröffentlichung per 1-Button klick
+ vor allem toll, einfache Animation für Grafikobjekte (Showeffekt 
garantiert ;))
+ Soundunterstützung
+ IDE, Hilfe und ein Lern-PDF ist in Deutsch (der Blog ist in englisch, 
aber die Programmbeispiele sind eigentlich meistens selbsterklärend)

(vielleicht) Nachteile:
braucht .NET

Lies am besten erst mal kurz hier

http://www.der-softwareentwickler-blog.de/2010/02/16/kinderleichtes-programmieren-mit-microsoft-small-basic/

hier mal ein Beispielprogramm (aus dem nachfolgenden Blog)
http://smallbasic.com/program/?PVC930

mehr Beispiele
http://blogs.msdn.com/b/smallbasic/

http://de.wikipedia.org/wiki/Small_Basic

MS SmallBasic ist lange noch nicht perfekt bzw. noch verbesserungsfähig, 
aber auch so schon erstaunlich leistungsfähig durch sein Konzept. Ich 
glaube der Spass wird hier eher überwiegen, als die Gefahr von so einem 
Dialekt nachhaltig "versaut" zu werden. Goto gibt es übrigens auch. ;-)

Schaust am besten mal ins PDF

http://download.microsoft.com/download/9/2/1/921D10C7-75C0-4395-93AF-49A830F4780E/Small%20Basic%20Einfuehrung.pdf

Viel Spass!

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Lesenswert?

Ich weiß jetzt nicht, wie es bei euch mit Geld aussieht, aber ich hatte 
bei Kindern immer sehr großen Erfolg mit den Lego-Mindstorms. Deren 
"Programmiersprache" ist sehr leicht zu verstehen und wenn man das 
Programm auf die Geräte überträgt, sieht man auch mal etwas in der 
Realität herumfahren.

Ich möchte es dir mal so sagen:

Wenn ich als Programmierer mein erstes Programm schreibe und auf dem 
Bildschirm "Hello World" erscheint, dann freue ich mich. Bei Kindern und 
insb. bei Hauptschülern (die eh überwiegend auf Konsum aus sind) ist es 
etwas anderes. "Dann erscheint eben die "Hello World" Meldung auf dem 
Bildschirm.... Was habe ich davon?? Damit kann ich weder spielen noch 
irgendwas anderes lustiges machen!! Da gehe ich lieber zu facebook, wkw, 
xyz, bliblablubb und habe dort meinen Spaß."

von Juppi J. (juppiii)


Lesenswert?

Martin M. schrieb:
> Als Programmiersprache hätte ich VB.net
..jo,damit kannst du sehr schnell eine gute Oberfläche basteln.
Steuere ein PAAR Leds oder Motoren an.
Das ist in .net in 6 STD zu schaffen.

.Habe die Erfahrung gemacht das die Interesse größer
und bleibender ist ,wenn der PC etwas externes steuert.

Usb Adapter /Bitwackeln ist erst einmal sehr Preiswert,wenn auch nicht 
zeitgemäß.
MfG

von Ben _. (burning_silicon)


Lesenswert?

Also ich find man sollte sowas nur Schülern anbieten, die sich für sich 
aus dafür interessieren. Alles andere ist Perlen vor die Säue geworfen. 
Genau wie jeder Versuch damals bei mir das nicht vorhandene Interesse am 
Musikunterricht zu wecken.

Bei Hauptschülern gibt das nur andere Effekte. Z.B. wenn die Rechner 
Rücken an Rücken in der Mitte des Raumes stehen... "Ey was ist das denn 
da für ein komischer roter Schalter an deinem PC...? Wozu ist der denn 
da?" **Kugelschreiber rauskram und damit dran rumpopel** **BRATZZZZZ!!** 
Das erschrockene Gesicht des (vielleicht sogar interessierten) Schülers 
auf der anderen Seite ist natürlich unbezahlbar.

von Ingo L. (grobian)


Lesenswert?

Den Effekt wirst du bei so machen Hochschüler auch haben die teilweise 
zu blöde sind um aus den Bus zu Spuken. Geschweige denn, die Wurst aus 
der Pelle zu bekommen.

von Sven H. (dsb_sven)


Lesenswert?

Zum Programmieren spaßig zeigen gibt es für C# (und ich glaube auch für 
vb.net) AntMe.

Da programmiert man im Prinzip das Gehirn von Ameisen. Mit so befehlen 
wie GeheZu() und Nimm() und Bekämpfe() kann man dann vorgeben, wie die 
Ameisen sich verhalten und sie am Ende des Kurses sogar gegeneinander 
antreten lassen, um zu gucken, welches Volk am effektivsten arbeitet. 
Ich glaube, dass man Schüler mir so etwas recht gut motivieren kann...

Hier nen wiki Artikel:

http://de.wikipedia.org/wiki/AntMe!

da ist auch der Link zu der Seite von MS.

von Rüdiger K. (sleipnir)


Lesenswert?

Was mit JavaKara vorgeschlagen wurde hört sich sehr nach Logo an, eine 
Sprache die exakt für solche Aufgaben entwickelt wurde:
http://en.wikipedia.org/wiki/Logo_%28programming_language%29

Ideen:
 * geometrische Grundobjekte erzeugen (Dreieck,...)
 * Parameterisiertes N-Eck zeichnen
 * rekursive Bäume mit variablen Parametern zeichnen (Öffnungswinkel, 
Verkürzung,...)

Die Lernkurve nicht zu steil halten!

von Wilhelm F. (Gast)


Lesenswert?

Juppi J. schrieb:

> Habe die Erfahrung gemacht das die Interesse größer
> und bleibender ist ,wenn der PC etwas externes steuert.

Kann sein. Ich erinnere mich an den Unterricht als Schüler selbst an der 
FOS. 1994. Damals fing ich selbst mit dem ersten PC an, und war aber 
vorher schon Hobbybastler.

Also schusterte ich mal 8 LEDs auf einem Stück Lochraster (etwa 
Streichholzschachtelgrundfläche) zusammen, völlig ohne sonstige 
Bauteile, außer den Vorwiderständen, machte die Verbindungen an einen 
Parallelport-Stecker, und programmierte auf dem simplen Basic, was 
damals noch im MS-DOS-Paket gratis mit dabei war, ein Lauflicht. Man 
hätte mit dem Basic und dem Parallelport auch eine etwas komplexere 
Steuerung hin bekommen.

In der kommenden Unterrichtsstunde stürmten sofort beide Pauker auf mich 
zu, und rissen mir die popelige Bastelei aus der Hand. Unglaublich. Die 
simple Bastelei war auf einmal höchst interessant. Beides 
Elektroingenieure, und ich mußte für jeden eins nachbauen. Sie waren 
eher Sesselpupser-Typen, und hatten weder Lötkolben noch Bastelkram zu 
Hause.

von Juppi J. (juppiii)


Lesenswert?

Wilhelm Ferkes schrieb:
> Parallelport-Stecker, und programmierte auf dem simplen Basic, was
>
> damals noch im MS-DOS-Paket gratis mit dabei war, ein Lauflicht. Man
>
> hätte mit dem Basic und dem Parallelport auch eine etwas komplexere
>
> Steuerung hin bekommen.

QBasic ,damit mache ich mit alten Lappys noch ab und zu etwas.
Auf einem 200MHz gehen die Programme ab wie eine Tüte voll Mücken.

von A. W. (uracolix)


Lesenswert?

Der Vollstaendigkeit halber und als Kontrast zu den bisher empfohlenen
M$ (Visual) FooBar Umgebungen moechte ich noch Python nennen. Vorteile:

 - Die Kids lernen gleich eine richtige Programmiersprache
 - sie werden nicht auf eine OS-Plattform festnagelt
 - einfache und lesbare Syntax erleichtert das Erlernen
 - Fliessender Uebergang von einfachen Prozeduren zur Objektorientierung
   bis hin zur GUI-Programmierung
 - kann kostenneutral auf dem  heimischen PC weitergefuehrt werden.

Kinderbuecher fuer Python gibts beim Befragen der grossen Suchmaschine.

von Simon K. (simon) Benutzerseite


Lesenswert?

Python für Kinder. Manche leiden hier echt unter Realitätsferne.

von Lukas K. (carrotindustries)


Lesenswert?

Simon K. schrieb:
> Python für Kinder. Manche leiden hier echt unter Realitätsferne.
Findest du? Durch wegfall von erstmal verwirrenden {} und so ist 
python-Quelltext sehr angenehm lesbar. Auch dass python dem Anwender die 
Wahl des Programmierparadigmas überlässt, erleichtert den Einstieg. 
Nennenswerte Nachteile gegenüber *BASIC fallen mir 'grad nicht ein.

In Welcher Programmiersprache geht schon
1
>>> a = "ho"
2
>>> 3*a
3
'hohoho'

von Simon K. (simon) Benutzerseite


Lesenswert?

So wie ich das verstanden habe, geht es in dieser Anwendung nicht darum 
den Kindern eine Programmiersprache beizubringen, mit denen sie später 
(d.h. in 10 Jahren?) mal was anfangen könnten.
Es geht darum den Kindern beizubringen, dass auch ein Computer nichts 
magisches ist und nur das tut, was man ihm sagt.

Dafür braucht man keine full-blown Programmiersprache. Sondern eher das 
hier vorgeschlagene programmierbare Lego-System oder JavaKara oder 
JavaHamster oder sowas.
Im Mathe-Unterricht baut man ja auch alles aufeinander auf. Da fängt man 
auch nicht direkt mit dem Integral an ;-)

Das Eintauchen in eine komplette Programmiersprache verschlingt in 
erster Linie Zeit ohne Ende. Wir hatten damals in Assistenten-Ausbildung 
3 Jahre lang programmieren in C++ und nachher .NET/C#. Wohlgemerkt 3 
Jahre. Und selbst da hat man nur so einen kleinen Einblick gekriegt.

Man sollte nicht vergessen, dass Kinder nur Kinder sind und keine 
Maschinen. Auch wenn es da gewissen amerikanische Bewegungen gibt, 
Kinder möglichst früh zu Models oder "Talenten" machen zu wollen.

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Lesenswert?

Simon K. schrieb:
> Das Eintauchen in eine komplette Programmiersprache verschlingt in
> erster Linie Zeit ohne Ende. Wir hatten damals in Assistenten-Ausbildung
> 3 Jahre lang programmieren in C++ und nachher .NET/C#. Wohlgemerkt 3
> Jahre. Und selbst da hat man nur so einen kleinen Einblick gekriegt.

Darf ich dir mal da etwas zu sagen?
Es ist wichtig Programmieren zu lernnen. Das bedeutet, dass man die 
logische Struktur versteht, mit der man mit dem Computer sprechen muss. 
Das macht man am einfachsten mit Hilfe einer leichten 
Programmiersprache. Bei mir war das QBasic (und später ASM). Aber das 
Wissen, das man erwirbt, ist unabhängig von der Programmiersprache. 
Deshalb ist mir die Programmiersprache relativ egal, wenn ich eine 
Software entwickeln soll. Es ist einfach nur die Syntax, die sich etwas 
ändert.

In der "reellen" Welt geht es aber nicht darum, eine komplette Software 
von Anfang an zu schreiben, sondern Bibliotheken, Module, Funktionen so 
zusammenzustellen, dass alles funktioniert.

von Simon K. (simon) Benutzerseite


Lesenswert?

Dimitri Roschkowski schrieb:
> Simon K. schrieb:
>> Das Eintauchen in eine komplette Programmiersprache verschlingt in
>> erster Linie Zeit ohne Ende. Wir hatten damals in Assistenten-Ausbildung
>> 3 Jahre lang programmieren in C++ und nachher .NET/C#. Wohlgemerkt 3
>> Jahre. Und selbst da hat man nur so einen kleinen Einblick gekriegt.
>
> Es ist wichtig Programmieren zu lernnen. Das bedeutet, dass man die
> logische Struktur versteht, mit der man mit dem Computer sprechen muss.
> Das macht man am einfachsten mit Hilfe einer leichten
> Programmiersprache. Bei mir war das QBasic (und später ASM). Aber das
> Wissen, das man erwirbt, ist unabhängig von der Programmiersprache.
> Deshalb ist mir die Programmiersprache relativ egal, wenn ich eine
> Software entwickeln soll. Es ist einfach nur die Syntax, die sich etwas
> ändert.
Na das meine ich doch. Und deswegen fängt man als Kind, das noch nie 
etwas mit Programmieren am Hut hatte, eben nicht mit QBasic oder ASM an 
(um deine Beispiele zu nennen), sondern mit was viel Einfacherem (siehe 
oben, Java Hamster und Co).

> In der "reellen" Welt geht es aber nicht darum, eine komplette Software
> von Anfang an zu schreiben, sondern Bibliotheken, Module, Funktionen so
> zusammenzustellen, dass alles funktioniert.
Wobei das meiner Meinung nach eher wichtig ist, wenn man "richtig" 
programmieren will. Also damit Geld machen will bspw.

von Dimitri R. (Firma: port29 GmbH) (port29) Benutzerseite


Lesenswert?

Simon K. schrieb:
> sondern mit was viel Einfacherem (siehe
> oben, Java Hamster und Co).

Also ich habe mir grade das Video zu Scratch Hamster angesehen. Ich fand 
die Sprache extrem geil.
http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/videos/Scratch-Hamster/Scratch-Hamster.html

Simon K. schrieb:
> Wobei das meiner Meinung nach eher wichtig ist, wenn man "richtig"
> programmieren will. Also damit Geld machen will bspw.

Nee, nicht ganz. Als professioneller Coder habe ich eine gewisse 
Ausbildung in Mathematik, Physik, Elektrotechnik, Biologie und natürlich 
Informatik. Ich bin durchaus in der Lage alle möglichen Bibliotheken 
selbst zu programmieren. Jugendliche oder auch Erwachsene ohne 
akademischen Background haben dieses Wissen nicht. Diese Leute sind dann 
um so mehr auf Bibliotheken oder Module angewiesen, die sie als Black 
Box nutzen können.

von Simon K. (simon) Benutzerseite


Lesenswert?

Dimitri Roschkowski schrieb:
> Simon K. schrieb:
>> Wobei das meiner Meinung nach eher wichtig ist, wenn man "richtig"
>> programmieren will. Also damit Geld machen will bspw.
>
> Nee, nicht ganz. Als professioneller Coder habe ich eine gewisse
> Ausbildung in Mathematik, Physik, Elektrotechnik, Biologie und natürlich
> Informatik. Ich bin durchaus in der Lage alle möglichen Bibliotheken
> selbst zu programmieren. Jugendliche oder auch Erwachsene ohne
> akademischen Background haben dieses Wissen nicht. Diese Leute sind dann
> um so mehr auf Bibliotheken oder Module angewiesen, die sie als Black
> Box nutzen können.

Wir reden irgendwie aneinander vorbei.

Dimitri Roschkowski schrieb:
> In der "reellen" Welt geht es aber nicht darum, eine komplette Software
> von Anfang an zu schreiben, sondern Bibliotheken, Module, Funktionen so
> zusammenzustellen, dass alles funktioniert.

Das hört sich für mich danach an, als müssten die Kinder schon lernen 
Module "zusammenzustellen" in Form von programmieren und darauf achten, 
dass der Sourcecode modular ist. Und das ist mMn. nicht das, wo mit man 
anfängt bei Kiddies (wenn man eben ernsthaft programmiert, dann schon, 
schrieb ich ja).

von Juppi J. (juppiii)


Lesenswert?

Mit 12 Jahren konnten die Kinder vor über 20 Jahren schon gut mit Basic 
umgehen.
Man mußte natürlich etwas vorbereiten.
Habe immer extern etwas angesteuert.
Paar Relais TT-Kleinbahn
und ein paar Lämpchen.
Mit den 14/15 jährigen  wurden schon 4094 und 4021 angesteuert.
Heute würde ich VB.Net einsetzen.
In der einfachsten Form geht es wie auf Basic Art.
Blos mit ein wenig Vorbereitung können damit schon Kinder
schöne Oberflächen basteln,welche im Hintergrund fast nichts machen 
brauchen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Martin M. schrieb:

> 6h sind natürlich ziemlich knapp bemessen um hier Grundlagen
> rüberzubringen; Ziel des Kurses ist auch nicht daß sie programmieren
> können, sondern eher daß das Interesse daran geweckt wird...
>
> Die Zielgruppe sind (Haupt)schüler zwischen 11 und 16 Jahren mit bisher
> keinerlei Programmiererfahrung.

Ich bewundere Deine Motivation.
Aber erwarte nicht ernsthaft, dass da irgendwas haengen bleiben wird. 
Das einzige, was Du tun kannst, sind Quellen anzugeben, die sich jeder 
mit ernsthaften Interesse selber ergoogeln kann.

Wenn Du es schaffst, ihnen ein Hello-World in C (nicht C#, dazwischen 
liegen Welten) so zu erklaeren dass sie es verstanden haben und 
vielleicht selber eingeben, uebersetzen und ausfuehren koennen und dann 
vielleicht noch ein paar einfache Modifikationen, vielleicht eine oder 
zwei ausgewaehlte Kontrollstrukturen... mehr is da nich drinnen.


Greets,
Michael

von Juppi J. (juppiii)


Lesenswert?

Die Kinder brauchen am Anfang nicht zu verstehen.
Wenn sie wissen "die Zeile schreiben" und dann zieht ein Relais an und 
die Bahn fährt,oder es blinkt.
Das reicht erst einmal.

15    Jahre mit  Soz.schwachen Kindern(vielleicht Eltern) reicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.