Ich suche das Coolste, was Sie in ein paar Zeilen einfachen Codes tun können. Ich bin sicher, Sie können ein Mandelbrot-Set in 15 Zeilen in Haskell schreiben , aber es ist schwierig zu folgen.
Mein Ziel ist es, die Schüler zu inspirieren, dass Programmieren cool ist .
Wir wissen, dass Programmieren cool ist, weil Sie alles erstellen können, was Sie sich vorstellen - es ist das ultimative kreative Medium. Ich möchte diese Anfänger inspirieren und sie über so viele früh lernende Buckel wie möglich hinwegbringen.
Jetzt sind meine Gründe egoistisch. Ich unterrichte einen Intro-to-Computing- Kurs für eine Gruppe von 60 halb Ingenieur-, halb Business-Majors. alle Neulinge. Sie sind die Schüler, die von benachteiligten Gymnasien kamen. Nach meiner bisherigen Erfahrung ist die Gruppe im Allgemeinen wie folgt aufgeteilt: ein paar Rockstars , einige, die sich sehr anstrengen und es irgendwie bekommen, die wenigen, die sich sehr anstrengen und es kaum bekommen, und die wenigen, die sich nicht darum kümmern. Ich möchte so viele dieser Gruppen so effektiv wie möglich erreichen. Hier ist ein Beispiel, wie ich ein Computerprogramm zum Unterrichten verwenden würde:
Hier ist ein Beispiel für das, wonach ich suche: ein einzeiliges VBS-Skript, mit dem Ihr Computer mit Ihnen sprechen kann:
CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")
Ich könnte dies verwenden, um die Reihenfolge der Operationen zu demonstrieren. Ich würde den Code zeigen, sie damit spielen lassen und dann erklären, dass in dieser Zeile viel los ist, aber der Computer kann einen Sinn daraus machen, weil er die Regeln kennt. Dann würde ich ihnen so etwas zeigen:
4(5*5) / 10 + 9(.25 + .75)
Und Sie können sehen, dass ich zuerst (5 * 5) tun muss. Dann kann ich für 4 multiplizieren. Und jetzt habe ich das Objekt erstellt. Das Teilen durch 10 ist dasselbe wie das Aufrufen von Sprechen - ich kann nicht sprechen, bevor ich ein Objekt habe, und ich kann nicht teilen, bevor ich 100 habe. Auf der anderen Seite erstelle ich zuerst eine InputBox mit einigen Anweisungen zum Anzeigen . Wenn ich im Eingabefeld die Eingabetaste drücke, wird alles, was ich eingegeben habe, ausgewertet oder "zurückgegeben". (Hinweis: 'oooooo' macht ein lustiges Geräusch.) Wenn ich also Sprechen sage, ist die rechte Seite das, was gesprochen werden soll. Und das bekomme ich von der InputBox.
Wenn Sie also mehrere Dinge in einer Zeile tun, wie zum Beispiel:
x = 14 + y;
Sie müssen sich der Reihenfolge der Dinge bewusst sein. Zuerst addieren wir 14 und y. Dann setzen wir das Ergebnis (was es auswertet oder zurückgibt) in x.
Das ist mein Ziel, ein paar dieser coolen Beispiele zu haben, um die Klasse zu demonstrieren und zu unterrichten, während sie Spaß haben. Ich habe dieses Beispiel an meiner Mitbewohnerin ausprobiert und obwohl ich es möglicherweise nicht als erste Lektion verwende, hat sie es gemocht und etwas gelernt.
Einige coole Mathematica-Programme, die schöne Grafiken oder Formen erstellen, die leicht zu verstehen sind, wären gute Ideen, und ich werde mich mit diesen befassen. Hier sind einige komplizierte Actionscript-Beispiele, aber das ist etwas zu fortgeschritten und ich kann Flash nicht unterrichten. Welche anderen Ideen haben Sie?
quelle
Antworten:
Ich habe eine großartige Antwort von meinen Kindern mit einem schnellen VB-Skript erhalten, um einen Microsoft Agent-Charakter zu manipulieren. Für diejenigen, die mit MS Agent nicht vertraut sind, ist es eine Reihe von animierten Bildschirmzeichen, die über eine COM-Schnittstelle bearbeitet werden können. Sie können den Code und die Zeichen auf der Microsoft Agent- Downloadseite herunterladen.
Die folgenden paar Zeilen lassen den Merlin-Charakter auf dem Bildschirm erscheinen, fliegen herum, klopfen auf den Bildschirm, um Ihre Aufmerksamkeit zu erregen, und sagen Hallo.
Es gibt sehr viele andere Befehle, die Sie verwenden können. PrüfenWeitere Informationen finden Sie unter http://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx .
2011-09-02 EDIT Ich habe vor kurzem festgestellt , dass Microsoft Agent nicht nativ auf Windows 7 installiert ist , aber es als separater Download angeboten wird , hier . Ich habe dies nicht getestet und kann daher nicht überprüfen, ob es funktioniert.
quelle
Geben Sie diesen Code in Ihre Adressleiste (in Ihrem Browser) ein und drücken Sie die Eingabetaste. Dann können Sie den gesamten Inhalt der Webseite bearbeiten!
Das ist der coolste "Einzeiler", den ich kenne =)
quelle
javascript:
undvoid 0
sind Boilerplate: das Äquivalent vonint main() {
undreturn 0; }
in C. Und die anderen beiden Zeilen sind nur verschiedene Browser-APIs, die dasselbe tun: Die erste ist die IE-API, die zweite ist die NetScape-API. HTML5 verwendet.contentEditable
document.body.contentEditable='true';
Als ich das zum ersten Mal schrieb.
Es hat die Leute umgehauen! Der Computer erinnerte sich an ihren Namen!
EDIT: Nur um das hinzuzufügen. Wenn Sie einen neuen Programmierer davon überzeugen können, dass dies das Coolste ist, was er tun kann, werden sie zu guten Programmierern. Heutzutage können Sie fast alles, was Sie wollen, mit einer Codezeile tun, um eine Bibliothek auszuführen, die jemand anderes geschrieben hat. Ich persönlich bin absolut nicht zufrieden damit und sehe wenig Nutzen darin, es zu unterrichten.
quelle
PHP - die Sierpinski-Dichtung alias die Triforce
OK, es sind 15 Codezeilen, aber das Ergebnis ist fantastisch! Das ist das Zeug, das mich als Kind ausflippen ließ. Dies ist aus dem PHP-Handbuch:
quelle
Microsoft hat Small Basic , eine IDE für "Kinder".
Es wurde speziell entwickelt, um zu zeigen, wie cool das Programmieren ist.
quelle
Ich neige dazu zu denken, dass Menschen von Dingen beeindruckt sind, mit denen sie sich identifizieren können oder die für ihr Leben relevant sind. Ich würde versuchen, meine 10 Codezeilen auf etwas zu stützen, das sie kennen und verstehen. Nehmen Sie zum Beispiel Twitter und seine API. Warum nicht diese API verwenden, um etwas Cooles zu erstellen? Die folgenden 10 Codezeilen geben die "öffentliche Zeitleiste" von Twitter zurück und zeigen sie in einer Konsolenanwendung an ...
Mein Codebeispiel ist möglicherweise nicht das beste für Ihre Schüler. Es ist in C # geschrieben und verwendet .NET 3.5. Wenn Sie ihnen also PHP, Java oder C ++ beibringen möchten, ist dies nicht hilfreich. Mein Punkt ist jedoch, dass durch das Verknüpfen Ihrer 10 Codezeilen mit etwas "Coolem, Interessantem und Relevantem für die Schüler" Ihr Beispiel auch cool, interessant und relevant wird.
Viel Glück!
[Ja, ich weiß, dass ich einige Zeilen mit Anweisungen und der Main-Methode verpasst habe, aber ich vermute, dass die 10 Zeilen nicht buchstäblich 10 Zeilen sein mussten]
quelle
Dies ist ein Python-Telnet-Server, der nach dem Benutzernamen fragt und ihn begrüßt. Das sieht cool aus, weil Sie mit Ihrem Programm von einem anderen Computer über das Netzwerk kommunizieren.
quelle
Ich denke, es ist heutzutage schwierig, Computerpädagoge zu sein. Ich bin. Wir stehen vor einer zunehmend steilen Schlacht bergauf. Unsere Schüler sind unglaublich anspruchsvolle Benutzer und es braucht viel, um sie zu beeindrucken. Ihnen stehen so viele Werkzeuge zur Verfügung, die erstaunliche Dinge bewirken.
Ein einfacher Taschenrechner in 10 Codezeilen? Warum? Ich habe einen TI-86 dafür.
Ein Skript, das Spezialeffekte auf ein Bild anwendet? Dafür ist Photoshop da. Und Photoshop bläst alles, was Sie tun können, in 10 Zeilen weg.
Wie wäre es, eine CD zu rippen und die Datei in MP3 zu konvertieren? Ich habe bereits 50.000 Songs von BitTorrent. Sie sind bereits im MP3-Format. Ich spiele sie auf meinem iPhone. Wer kauft schon CDs?
Um versierte Benutzer in die Programmierung einzuführen, müssen Sie etwas finden, das:
a) anwendbar auf etwas, das sie interessant und cool finden, und b) etwas tut, das sie noch nicht tun können.
Angenommen, Ihre Schüler haben bereits Zugriff auf die teuerste Software. Viele von ihnen haben die Vollversion von Adobe CS5.5 (Verkaufspreis: 2.600 USD; tatsächlicher Preis: kostenlos) und können problemlos jede Anwendung erhalten, die normalerweise das Budget Ihrer Abteilung sprengt.
Aber die überwiegende Mehrheit von ihnen hat keine Ahnung, wie irgendetwas von diesem "Computer-Zeug" tatsächlich funktioniert.
Sie sind unglaublich kreativ: Sie kreieren gerne Dinge. Sie wollen nur in der Lage sein, etwas zu tun oder zu machen, was ihre Freunde nicht können. Sie wollen etwas, mit dem sie angeben können.
Hier sind einige Dinge, die ich bei meinen Schülern gefunden habe:
Keines davon beinhaltet eine Programmierung im herkömmlichen Sinne. Sie nutzen jedoch leistungsstarke Bibliotheken. Ich betrachte sie als eine andere Art der Programmierung.
quelle
Ich habe einen großen Favoriten gefunden (in GWBASIC):
Ich habe festgestellt, dass Anfänger einige Vorstellungen haben, die behoben werden müssen.
Viel Glück mit deiner Klasse. Ich bin sicher, du wirst es gut machen.
PS Ich bin sicher, Sie verstehen, dass Sie neben Material und Können auch eine Einstellung vermitteln, und das ist genauso wichtig.
quelle
Dieser C-Code ist vielleicht verschleiert, aber ich fand ihn sehr mächtig
Und hier ist das Ergebnis ... In nur 3 Zeilen ... Eine Art Fraktal
Hello World
...quelle
Wie wäre es zu zeigen, dass Sie jeden Webbrowser verwenden und JavaScript in die Adressleiste eingeben und Code zum Ausführen erhalten können?
BEARBEITEN: Gehen Sie zu einer Seite mit vielen Bildern und versuchen Sie dies in der Adressleiste:
quelle
Sie können eine Anwendung erstellen, die eine Zufallszahl auswählt. Und du musst es erraten. Wenn Sie sich irren, heißt es: höher oder niedriger. Und wenn Sie es erraten haben, eine nette Nachricht.
Es ist cool, für die Schüler zu spielen.
Einfache Python-Version ohne ordnungsgemäße Fehlerprüfung:
Erik schlägt vor, dass der Computer die Nummer erraten sollte. Dies kann auch innerhalb von 10 Codezeilen erfolgen (obwohl das Fehlen einer ordnungsgemäßen Fehlerprüfung jetzt noch schwerwiegender ist: Gültige Zahlen außerhalb des Bereichs verursachen eine Endlosschleife):
quelle
eval(raw_input(prompt))
. Siehe Eingabe .Zurück in der Computerklasse in der High School haben ich und ein paar Freunde der Klasse beigebracht, wie man mit Delphi programmiert. Die Klasse konzentrierte sich hauptsächlich auf das Programmieren mit Pascal, daher war Delphi ein guter nächster Schritt. Wir haben die ereignisgesteuerte Natur von Delphi und seine RAD-Funktionen demonstriert. Am Ende der Lektion zeigten wir der Klasse eine Beispielanwendung und baten sie, diese zu reproduzieren. Die Anwendung fragte " Sind Sie betrunken? " Mit zwei Tasten Ja und Nein . ... Ich denke, Sie wissen, was als nächstes kommt ... Die Schaltfläche Nein hat die Position mit der Maus geändert und war fast unmöglich zu klicken.
Die Schüler und Lehrer haben einen guten Kick draus gemacht.
Das Programm benötigte nur wenige Zeilen benutzerdefinierten Codes mit einer einfachen Gleichung, um zu berechnen, wohin die Schaltfläche bewegt werden soll. Ich glaube, keiner der anderen Schüler hat es herausgefunden, aber einige standen sich nahe.
quelle
Als ich die Bash-Gabelbombe zum ersten Mal herausfand, fand ich sie wirklich süß. So einfach und doch ordentlich, was es kann:
quelle
Das ist Betrug und nicht einmal im entferntesten einfach, aber ich habe einmal ein Shoot'em in 20 Zeilen C ++ mit der Allegro-Grafikbibliothek geschrieben. Keine wirklichen Kriterien für das, was eine Linie war, aber es ist ein bisschen her und es wurde nur zum Spaß gemacht. Es hatte sogar grobe Soundeffekte.
So sah es aus:
20 Zeilen http://img227.imageshack.us/img227/8770/20linesxx0.png
Und hier ist der Code ( sollte kompiliert werden):
quelle
In der heutigen Zeit ist JavaScript eine hervorragende Möglichkeit, um zu zeigen, wie Sie mit einigen wirklich einfachen Tools, z. B. Notepad, programmieren können.
jQuery-Effekte sind ein guter Ausgangspunkt für alle, die ihre Freunde begeistern möchten!
Klicken Sie in diesem Fall einfach auf den Leerraum der Seite.
quelle
Eine Sache, die Sie in Betracht ziehen könnten, ist so etwas wie Robocode , bei dem viel Codierung abstrahiert wird und Sie einem Roboter im Grunde nur sagen, was zu tun ist. Eine einfache 10-Zeilen-Funktion kann den Roboter dazu bringen, viel zu tun, und hat ein sehr visuelles und leicht zu verfolgendes Ergebnis.
Vielleicht ist Robocode selbst nicht für die Aufgabe geeignet, aber so etwas ist eine gute Möglichkeit, geschriebenen Code mit visuellen Aktionen auf dem Computer in Beziehung zu setzen, und es macht Spaß, darauf zu achten, wenn Sie Beispiele nennen müssen.
quelle
Eines Tages entschied ich, dass ich genug hatte. Ich würde Klavier lernen. Als ich Leute wie Elton John sah, die die Tastatur so gut beherrschten, versicherte ich mir, dass ich das tun wollte.
Klavier zu lernen war eine große Enttäuschung. Selbst nach Abschluss von acht Klassen Klavierunterricht war ich immer noch nicht beeindruckt, wie sehr sich mein mentales Bild vom Klavierspielen von meiner ursprünglichen Vision, die Aktivität zu genießen, unterschied.
Was mir jedoch sehr gut gefallen hat, waren meine nur drei Stufen der Musiktheorie. Ich habe etwas über den Aufbau von Musik gelernt. Endlich konnte ich von der Welt der schriftlichen Musik zum Schreiben meiner eigenen Musik übergehen. Anschließend konnte ich anfangen zu spielen, was ich spielen wollte.
Versuchen Sie nicht, neue Programmierer zu blenden, insbesondere junge Programmierer. Die ganze Vorstellung von "weniger als zehn Zeilen einfachen Codes" scheint eine Stimmung von "Zeig mir etwas Kluges " hervorzurufen .
Sie können einem neuen Programmierer etwas Kluges zeigen. Sie können dann demselben Programmierer beibringen, wie diese "Leistung" repliziert wird. Aber das ist es nicht, was sie von der Programmierung begeistert. Bringen Sie ihnen die Grundlagen bei und lassen Sie sie ihre eigenen cleveren zehn Codezeilen synthetisieren.
Ich würde einem neuen Programmierer den folgenden Python-Code zeigen:
Ich weiß , dass ich nicht zu assign brauchen
line
zuedited_line
. Dies dient jedoch nur dazu, die Dinge klar zu halten und zu zeigen, dass ich das Originaldokument nicht bearbeite.In weniger als zehn Zeilen habe ich ein Dokument ausführlich beschrieben. Stellen Sie natürlich auch sicher, dass Sie dem neuen Programmierer alle verfügbaren Zeichenfolgenmethoden anzeigen . Noch wichtiger ist, dass ich drei grundlegend interessante Dinge gezeigt habe, die ich tun kann: Variablenzuweisung, Schleife, Datei-E / A und Verwendung der Standardbibliothek.
Ich denke, Sie werden mir zustimmen, dass dieser Code nicht blendet. In der Tat ist es ein wenig langweilig. Nein - eigentlich ist es sehr langweilig. Zeigen Sie diesen Code jedoch einem neuen Programmierer und prüfen Sie, ob dieser Programmierer nicht jeden Teil dieses Skripts innerhalb der Woche, wenn nicht des Tages, für etwas viel Interessanteres verwenden kann. Sicher, es wird Ihnen unangenehm sein (vielleicht verwenden Sie dieses Skript, um einen einfachen HTML-Parser zu erstellen), aber alles andere braucht nur Zeit und Erfahrung.
quelle
Wie die meisten anderen Kommentatoren begann ich, Code zu schreiben, um mathematische Probleme zu lösen (oder um Grafiken für wirklich schreckliche Spiele zu erstellen, die ich entwerfen würde - Dinge wie Indiana Jones gegen Zombies).
Was mich (sowohl in Bezug auf Mathematik als auch in Bezug auf Programmierung) wirklich dazu gebracht hat, war, von textbasierten Spielen für Spiele im Abenteuerstil zu mehr grafikbasierten Spielen zu wechseln. Ich fing an, Millimeterpapier zu färben und Pixel zu zeichnen, bis ich mich mit Geometrie beschäftigte ... und entdeckte, wie man Gleichungen verwendet, um Kurven und Linien, Kästchen usw. zu zeichnen.
Mein Punkt ist, ich hätte wirklich in so etwas wie Verarbeitung ( http://processing.org/ ) geraten können, wo ein typisches Programm ungefähr so aussieht:
Für mich ist dies das "Logo" der Zukunft.
Es gibt einfache "Hallo Welt" -Beispiele, mit denen jemand schnell Code zeichnen und ändern kann und sieht, wie Dinge kaputt gehen und welche seltsamen "Unfälle" entstehen können ... bis hin zu fortgeschrittener Interaktion und fraktaler Erstellung ...
quelle
Sie können ein mit AutoIt geschriebenes Skript verwenden , das die Grenze zwischen der Verwendung einer herkömmlichen Anwendung und der Programmierung verwischt.
ZB ein Skript, das den Editor öffnet und seinen eigenen Computer dazu bringt, sie darin und über ein Meldungsfeld zu beleidigen, und dann keine Spur seiner Aktionen hinterlässt:
quelle
Ich erinnere mich, als ich anfing, Loops zu programmieren, hat mich das immer beeindruckt. Sie schreiben 5 bis 10 Codezeilen (oder weniger) und drucken Hunderte (oder wie viele Sie auch angeben) Zeilen aus. (Ich habe zuerst in PHP und Java gelernt).
quelle
Ich denke, ein guter Ort für einen Studenten, um loszulegen, könnte Greasemonkey sein . Auf userscripts.org gibt es Tausende von Beispielskripten, sehr gutes Lesematerial, von denen einige sehr klein sind. Greasemonkey-Skripte wirken sich auf Webseiten aus, mit deren Verwendung die Schüler bereits vertraut sind, wenn sie sie nicht bearbeiten. Greasemonkey selbst bietet eine sehr einfache Möglichkeit, Skripte während des Testens zu bearbeiten und zu aktivieren / deaktivieren.
Hier ist als Beispiel das Skript "Google Two Columns":
quelle
Dies ist ein sehr rudimentäres textbasiertes c # -Programm, das die Drehaktion eines Spielautomaten simuliert. Es beinhaltet keine unterschiedlichen Gewinnchancen oder Barauszahlungen, aber das könnte eine schöne Übung für die Schüler sein.
Entschuldigung, dass es mehr als 10 Zeilen sind.
quelle
Mit Tcl haben Sie einen einfachen Texteditor mit einer Schaltfläche zum Speichern in etwa 12 Codezeilen (aber kein Öffnen, das würde weitere 8 Zeilen dauern). Es funktioniert auf allen Standardplattformen:
Mir ist klar, dass das Ziel 10 Zeilen waren. Wenn Sie also 10 Zeilen oder weniger beibehalten möchten, besteht ein einfacher Texteditor ohne Laden oder Speichern nur aus zwei Zeilen. Das ist nicht zu schäbig.
Führen Sie einen der oben genannten Codeblöcke mit " Wunschdateiname " auf der Plattform Ihrer Wahl aus. Wish kommt mit den meisten * nix's und dem Mac, aber Sie müssen es manuell für Windows installieren.
Um noch einen Schritt weiter zu gehen, kann dieses zweizeilige Skript auch in Python geschrieben werden, obwohl es acht Zeilen benötigt, immer noch unter dem Ziel von 10 Zeilen:
quelle
Wie wäre es mit einem Lesezeichen? Es würde ihnen zeigen, wie sie etwas manipulieren können, das sie jeden Tag benutzen (das Internet), ohne Entwicklungswerkzeuge zu benötigen.
quelle
Wenn Sie sich die Hardware leisten können, wird die Verwendung einer Arduino-Karte + -Verarbeitung einige ziemlich coole Dinge hervorbringen, obwohl sie für Leute, die möglicherweise überhaupt nicht an Programmierung interessiert sind, etwas fortgeschritten sein kann.
quelle
Ich habe darüber kürzlich in einem Artikel geschrieben: "Das kürzeste und nützlichste Programm, das ich je geschrieben habe."
Zusammenfassung: Ich habe 1996 eine dreizeilige VB6-App geschrieben, die ich immer noch jeden Tag benutze. Sobald die Exe im Ordner "Senden an" abgelegt ist. Sie können mit der rechten Maustaste auf eine Datei im Explorer klicken und den vollständigen Pfad dieser Datei an die Zwischenablage senden.
quelle
Clipboard.Clear
? Es entfernt alle Inhalte aus der Zwischenablage, auch Nicht-Textdaten (z. B. Bilddaten). Dies ist im Allgemeinen überhaupt nicht das, was Sie wollen.Es ist interessant, dass Sie das Mandelbrot-Set erwähnen, da das Erstellen von Fraktalen mit GW-BASIC meine Liebe zum Programmieren in der High School (um 1993) geweckt hat. Bevor wir anfingen, über Fraktale zu lernen, haben wir langweilige Standardabweichungsanwendungen geschrieben, und ich hatte immer noch vor, in den Journalismus einzusteigen.
Aber als ich sah, dass dieses lange, schwer zu schreibende BASIC-Programm "fraktales Terrain" erzeugt, war ich begeistert und habe nie zurückgeschaut. Es veränderte die Art und Weise, wie ich über Mathematik, Naturwissenschaften, Computer und das Lernen nachdachte.
Ich hoffe, Sie finden das Programm, das die gleichen Auswirkungen auf Ihre Schüler hat.
quelle
wxPython Erste Schritte
simple.py frame http://zetcode.com/wxpython/images/simple.jpg
quelle
Ich bin mir sicher, dass daraus mehr als 10 Codezeilen werden würden, aber haben Sie eine formularbasierte App in Betracht gezogen, bei der durch Drücken der Tasten beispielsweise die Farbe des Hintergrunds oder die Größe des Texts geändert wird? Dies würde ihnen zeigen, wie interaktive Programme funktionieren. Es würde ihnen auch zeigen, dass sie als Programmierer die vollständige Kontrolle darüber haben, was der Computer (das Programm) tut.
Hoffentlich würde es sie dazu bringen, Vorschläge für andere Dinge zu machen, die sie ändern könnten, und dann für andere Dinge, die sie vielleicht tun möchten.
quelle