2010-04-05 13 views
10

Als studentischer Lehrer bin ich sehr daran interessiert, wie effektive "Minisprachen" wie Scratch, Logo, Alice und Lego mindstorms dem Schüler die Kernkonzepte der Programmierung wie Variablen, Funktionen und Schleifen vermitteln.Lernen von Programmiersprachen-Konzepten

Ist eine "Mini-Sprache" besser als eine andere, um diese grundlegenden Kernkonzepte zu vermitteln?

Antwort

5

Abhängig davon, wie jung die Kinder sind, die Sie unterrichten, würde ich einfach mit einer einfacheren Sprache wie Python gehen.

Hier ist ein kostenloses Buch, das alle Grundlagen vermittelt und ist nur etwa 200 Seiten lang: http://www.greenteapress.com/thinkpython/thinkpython.html

+2

Einverstanden auf Python! Schon deshalb, weil es absolut minimale Syntaxanforderungen und minimale Interpunktionszeichen erfordert. Solche Ästhetik kann für einen neuen Entwickler einen großen Unterschied machen. Es gibt auch wirklich gute Frameworks wie PyGame um interaktive Sachen wirklich einfach zu machen. Ich denke, die Aufgabe ist wichtiger als die Sprache. Überspringe die "drucke eine Nachricht an die Konsole" und konzentriere dich stattdessen auf "diese Grafik reagiert, wenn ich darauf klicke" – alecf

+1

Livewires ist ein Open-Source-Kurs, um Kindern das Programmieren beizubringen, das Python und eine vereinfachte Version von PyGame verwendet geht noch schneller. Ich habe es durchgeblättert - es sieht sehr vielversprechend aus. http://www.livewires.org.uk/python/home – TarkaDaal

4

Ich denke, es spielt keine Rolle, dass viel der „Mini-Sprache“ Sie verwenden. Aber ich denke, du bleibst besser mit einer echten Minisprache und nicht mit einer "echten" Sprache, wenn du nicht mehr als die Grundlagen erklären willst. Als ich die Grundlagen (mit Java) lernte, war ich wirklich irritiert, dass ich mich an public static void main erinnern musste, ohne wirklich zu wissen, was das alles bedeutete. Also würde ich eine Sprache mit so wenig Overhead wie möglich wählen. Welche spezifische Sprache zu wählen ist wirklich abhängig vom Alter Ihrer Schüler.

1

Es gibt einige Möglichkeiten, und letztlich hat diese Art von Frage viel mit "Geschmack" zu tun. Ich denke jedoch, dass dieses Schema aus mehreren Gründen eine wirklich gute Wahl ist. Eine ist, dass es eine sehr minimalistische Sprache ist, mit sehr wenig Syntax, um Dinge zu komplizieren. Ein anderes ist, dass ich das Gefühl habe, dass Schema etwas wirklich Grundlegendes über die Berechnung ausdrückt und dies sehr deutlich macht. Ein anderer Grund ist, dass Schema sehr "multiparadigmatisch" verwendet werden kann. Sie können funktionale Programmierung in Scheme oder imperative Programmierung tun. Es ist auch wirklich einfach, ein Objektsystem von Grund auf für Schema zu erstellen - Sie können ein einfaches Objekt in weniger als 100 Codezeilen auf die Sprache anwenden. Es gibt auch einige Scheme-Implementierungen, die viele Bibliotheken haben, so dass Sie Dinge wie Grafikprogrammierung oder Webprogrammierung darin tun können.

Und schließlich wurde der Entwicklung guter pädagogischer Materialien in Scheme viel Aufmerksamkeit gewidmet. "Die Struktur und Interpretation von Computerprogrammen" wird zu Recht als ein Klassiker betrachtet, aber eine Menge Material darin wäre ziemlich schwierig für kleine Kinder, denke ich (es war ankommende Studienanfänger am MIT gerichtet). Aber es gibt auch viel sanfteres Materialien, wie "How to Design Programs": http://www.htdp.org/ Eine Sache, die Sie in htdp wirklich deutlich sehen können, ist, wie die minimale Syntax von Scheme es Ihnen erlaubt, direkt zu den wichtigen Ideen zu gelangen.

Der Hauptnachteil von Scheme als Erstsprache ist, dass die meisten der Sprachen, die heute wirklich weit verbreitet sind, nicht viel wie Scheme aussehen, so dass die Schüler beim Umstieg etwas Anpassung vorfinden. Aber ich neige dazu, zu denken, dass, besonders für Kinder, die Kernideen am Anfang das Wichtigste sind.

5

Dies ist eine sehr schwierige Frage. Logo und Smalltalk (um nur zwei naheliegende Beispiele zu nennen) wurden beide ursprünglich speziell für den Unterricht von Kindern zum Programmieren entwickelt. Sie stoßen jedoch schnell auf ein Problem: Es ist schwer, eine Sprache zu definieren, die sowohl einfach genug für ein kleines Kind ist, um vollständig zu verstehen, als auch immer noch reich genug, um zu vermeiden, dass es schnell einschränkend und schwerfällig wird.

Zumindest von dem, was ich gesehen habe, haben die meisten Versuche in Respekt schlecht gearbeitet. Zum Beispiel versuchen die meisten, eine Ausführlichkeit einzubauen, die den Code mehr wie Englisch lesen lässt (z.B. das "An:" in Logo). Kinder haben oft genug ungenügende Tastaturfertigkeiten, dass solche Ausführlichkeit frustrierend ist.Sie erwarten auch (meiner Erfahrung nach), dass, wenn ein Teil der Syntax wie Englisch aussieht, die Sprache auch anderes gültiges Englisch akzeptieren sollte (ich würde erwarten, dass das auch für Muttersprachler anderer Sprachen gilt, aber meine Erfahrung ist hauptsächlich mit Englischsprachige).

Zur gleichen Zeit, die meisten Kinder (mit denen ich gearbeitet habe) schnell zu dem Punkt, dass sie die Mini-Sprache zu begrenzen finden. Einige davon sind wahrscheinlich auf die oben erwähnten Frustrationen zurückzuführen. Einige sind wahrscheinlich auch auf mangelnde Vorstellungskraft von (zumindest einigen) ihrer Lehrer zurückzuführen, wenn sie interessante und herausfordernde Übungen entwickeln. Ich denke, es ist heute auch viel schwieriger als vor 20 Jahren - damals waren Kinder begeistert von dem, was sie mit Turtle-Grafiken malen konnten (für ein Beispiel). Heute sind sie an Spiele mit fotorealistischer 3D-Grafik gewöhnt, und das Zeichnen einer 2D- "Rose" aus geraden Linien scheint viel mehr von ihnen als grundsätzlich lahm zu empfinden.