Hier ist meine Sichtweise nach ein paar gescheiterten und ein paar ziemlich guten Versuchen:
Programmierung ist Problemlösung.
Beginnen Sie mit konkreten Dingen, die so programmiert sind, dass sie jeden Tag verwendet werden - Internetbrowser (Facebook), Handy, Registrierkasse usw. Lassen Sie sich von ihnen viele Beispiele geben. Stellen Sie fest, dass in all diesen Dingen eine Art Computer enthalten ist. Das Herz eines Computers ist der Prozessor.
Der Prozessor ist wie ein sehr schneller, aber sehr dummer Arbeiter. Wenn Sie ihm Anweisungen geben, werden sie genau so ausgeführt, wie Sie es sagen. Es wird nichts extra tun und es wird dir nicht sagen, ob etwas, was du ihm befohlen hast, falsch war. Dieser Prozessor erledigt jedoch alles - wenn Sie ihm genau mitteilen, wie es geht, kann er einen Anruf tätigen oder ein Bild in eine E-Mail einfügen.
Fragen Sie sie, wie sie einem sehr schnellen, aber sehr dummen Arbeiter sagen würde, er solle eine Dose Soda von einer Soda-Maschine kaufen. Wie sie beginnt, die Schritte zu beschreiben ("Geld in den Automaten stecken und den Knopf drücken"), beginnen Sie, es wie ein Programm zu zerlegen ("Was ist Geld? Wie stecke ich es in den Automaten? Wenn ich Geld in den Automaten stecke und drücke." gleichzeitig die Taste, passiert nichts. "). Wenn Sie ein Whiteboard haben, beginnen Sie links mit ihren ersten Anweisungen. Platzieren Sie die neue größere Liste auf der rechten Seite, während sie sie überarbeitet. Wenn Sie eine gute Anleitung haben, beginnen Sie mit der Verallgemeinerung der Stücke ("Nehmen Sie das Geld aus der Tasche und entfernen Sie das Soda aus dem Tablett. Was sind die gleichen / unterschiedlichen Teile?"). Nehmen Sie die Verallgemeinerungen und legen Sie sie in die Mitte und kreuzen Sie die Stücke ab, die sie jetzt umfassen. Versuchen Sie schließlich, die Teile so zusammenzubinden, dass sie mit ihren ursprünglichen Anweisungen übereinstimmen, ähnlich wie Funktionsaufrufe. Andere gute Übungen: Briefe verschicken, durch eine Tür gehen, einen Kreis / ein Quadrat / ein Dreieck zeichnen.
Programmierung ist also Problemlösung: Aufteilen von Problemen in Teile, Identifizieren gemeinsamer Teile und Zurückgruppieren dieser Teile, um Probleme zu lösen. Bald stellen Sie fest, dass einige Teile für viele Probleme gleich sind, und dann fangen Sie an, Teile zusammenzusetzen, um Probleme zu lösen, von denen Sie nicht einmal wussten, dass Sie sie hatten.
Okay, zu diesem Zeitpunkt kann sie verstehen, aber sie ist wahrscheinlich gelangweilt. Im Anschluss finden Sie einige coole Programmierbeispiele. Shader und zugehöriger visueller Code sind einfach zu demonstrieren - Sie können ein Bild erstellen und mit sehr kleinen Codeänderungen Änderungen daran vornehmen. Wenn sie Interesse an Facebook bekundet hat, zeigen Sie, dass Sie über REST mit Facebook gesprochen haben, um Freunde von Freunden (6 Grad ihrer Daten) zu sehen. Wenn sie Videospiele mag, zeigen Sie ein paar Open-Source-Spiele-Demos zusammen mit ein paar Ausschnitten ihres Codes und wie sie das Spiel unterstützen. Beenden Sie den Vorgang, indem Sie ein paar kostenlose Tools und Ressourcen zeigen, die sie zu Hause untersuchen könnte. (Python, C # usw.)
Meine fehlgeschlagenen Versuche: Versuch, die Pi-Berechnung zu erklären (sie fragten), das C-Jump-Brettspiel http://c-jump.com/ (sie haben es nicht verstanden und die Anweisungen waren fehlerhaft) und Live-Codierung einer 2d Spiel (konnte einfach kein Interesse wecken, egal wie klein meine Schritte zwischen den Demos waren).
Viel Glück!