30 Minuten, um einem 15-Jährigen die Programmierung zu erklären [geschlossen]

100

Ich habe mich freiwillig gemeldet, um nächste Woche mit einem 15-jährigen Praktikanten über das Leben und die Arbeit eines Entwicklers zu sprechen.

Die Fänge sind das

  • Ich habe nur eine halbe Stunde und
  • Ich werde nur eine der Personen sein, die mit ihr sprechen - andere Personen in verschiedenen Rollen im Geschäft werden den ganzen Tag über die Elemente ihrer Arbeit mit ihr durchgehen.

Was soll ich abdecken und was in aller Welt kann ich hoffen, sie in nur einer halben Stunde zu unterrichten?

Ich gehe davon aus, dass sie wahrscheinlich keine Erfahrung mit Entwicklung oder Programmierung hat.

Dexter
quelle
158
Es ist bedrückend, wie bevormundend viele dieser Antworten für Kinder sind - sie haben kurze Aufmerksamkeitsspannen, sie verstehen Dinge nicht, wenn sie nicht visuell sind, sie können mit nichts Kompliziertem umgehen. Wir sprechen hier von einem Fünfzehnjährigen. Fünfzehnjährige sind durchaus in der Lage, komplizierte Dinge zu verstehen und zu tun, Stunden damit zu verbringen, sich intensiv auf etwas einzulassen und abstrakte Gedanken zu haben. Ich würde einen klugen Fünfzehnjährigen über jeden von euch herfallen lassen!
Tom Anderson
8
@tom Auf der anderen Seite habe ich persönlich erlebt, wie mühsam die meisten Erwachsenen sogar etwas anderes als die Grafik auf einem Computer finden. Das hängt vom Kind ab und davon, wie sehr es sich für Computer interessiert.
jhocking
6
@jh: Heh! Ich nehme an, die Frage ist nicht, ob diese Person fünfzehn ist, sondern ob sie intelligent und neugierig ist. Wir mögen jetzt alle (außer Maxpm) alte Trottel sein, aber wir waren alle einmal fünfzehn, und ich bezweifle eher, dass diejenigen von uns, die intelligente und neugierige Erwachsene sind, stumpfe und desinteressierte Teenager waren.
Tom Anderson
33
"Zuerst gehe ich kurz nach 10 Uhr zur Arbeit, trinke viel Kaffee, jage ihn mit Mountain Dew und Energy Drinks runter. Die nächsten 2 Stunden verbringe ich damit, meine Mails zu checken und Rezepte mit der einzigen Entwicklerin in der Stadt auszutauschen Das ganze Gebäude, dann ein kurzes Nickerchen nach dem Mittagessen. Steh auf, checke die E-Mails noch einmal, surfe auf YouTube nach Katzenvideos, informiere dich über die neuesten Dilbert- und Smbc-Comics Ich kann nicht viel machen, aber 100 Programmierer machen 3 Jahre lang jeden Tag dasselbe. Nun, so werden Videospiele geboren. "
Juliet
5
@Tom: genau. Viele Programmierer haben vor dem 15. Lebensjahr angefangen, daher verstehe ich die Herablassung nicht.
Neil G

Antworten:

130

Ich habe viel mit Schülern zu tun, deshalb beantworte ich diese Frage ziemlich oft. Denken Sie daran, dass 15-Jährige die Programmierung viel einfacher erklären können als 50-Jährige - Sie müssen also keine Dummheiten anstellen oder weit hergeholte Analogien verwenden.

Normalerweise beginne ich mit Beispielen für folgende Programme:

  • Apps wie iTunes, Photoshop, Chrome und Spiele, einschließlich Konsolenspiele.
  • Betriebssysteme wie Windows, Mac OS, iPhone iOS, Android. (Vertrau mir, sie werden wissen, wovon du sprichst.)
  • Programme, die Zahlen knacken oder wirklich komplizierte mathematische Probleme lösen - Wettersimulationen, biologische Simulationen, Berechnung von Pi, AI, Sprachverarbeitung usw.
  • Bei den meisten anspruchsvollen Websites muss auch programmiert werden.
  • Transit-Fahrkartenautomaten und Geldautomaten, Mikrowellen- und Kühlschrankuhren, Autonavigation.

Danach erkläre ich normalerweise, dass wir Programme in einer formalen Sprache codieren, die der Computer erkennen kann. Oft schreibe ich sie in etwas so Einfaches wie Notepad. Die Sprachen sehen aus wie eine Mischung aus Mathematik und Englisch. Sie beschreiben Konzepte und geben Formeln und Anweisungen, denen der Computer folgen soll.

Dann fragen sie normalerweise, ob ich die ganze Zeit am Computer bin, warum ich immer auf Facebook bin und warum meine Augen noch nicht schlecht geworden sind. Jungs fragen, ob ich weiß, wie man Leute "hackt", und Mädchen fragen, ob es gutes Geld ist oder wie viele Mädchen im Informatikunterricht sind.

Danach beginnen sie, wenn sie immer noch interessiert sind, bestimmte Fragen zu stellen, die viel einfacher zu beantworten sind (oder zumindest im Wiki): Dinge wie das Erstellen eines Spiels, die Funktionsweise von Windows Messenger usw.

Wenn Sie einen Computer in der Nähe haben, können Sie einen Code anzeigen und mitteilen - etwas, das greifbare Auswirkungen hätte, wie einen Button-Click-Handler im Einstellungsdialogfeld von Firefox, die Hauptschleife oder den Physik-Code in einer Spiel-Engine, einige JavaScript-Quelle von einer Website etc ..

Rei Miyasaka
quelle
73
Vielen Dank, dass Sie mich daran erinnert haben, dass es möglicherweise einfacher ist , einem Kind das Programmieren zu erklären, als es einem Erwachsenen zu erklären. Ich vergesse immer wieder , dass sie noch nie nicht von Computern umgeben ist.
jhocking
12
hahaha ich bekomme das die ganze Zeit, wenn du weißt, wie man Leute "hackt" hahahahaha
John Connelly
3
@jhocking Ich denke auch, dass viele von ihnen heller sind als die meisten der Idiotenkistengeneration. Abgesehen von der Qualität wird die Menge an Text, die sie lesen, sicherlich etwas Gutes bewirken.
Rei Miyasaka
4
@rei: Nun, ich habe fortgeschrittene soziale Fähigkeiten, und ich fand es erschreckend, wie viel Aufmerksamkeit die wenigen Frauen in diesen Klassen erhielten ... Es war gut gemeint, aber ... alarmierend. Wenn ich es gewesen wäre, wäre ich schreiend weggelaufen. Von einer Horde verschwitzter Mundatmer umgeben zu sein, ist für jeden normalen Menschen eine Ablenkung. Entweder müsste man die Aufmerksamkeit mögen, oder man müsste Comp-Sci wirklich wirklich mögen. Es hat mich also nicht überrascht, dass es so wenige Frauen gab. Ich stelle mir vor, dass es an kleineren Schulen nicht so schrecklich ist.
Satanicpuppy
4
Nun, ich komme im Allgemeinen mindestens fünfzehn Minuten zu spät, ähm, ich benutze die Seitentür - so kann Lumbergh mich nicht sehen, ähm - und danach sortiere ich nur noch eine Stunde lang Platz aus. Ja, ich starre nur auf meinen Schreibtisch. aber es sieht so aus, als würde ich arbeiten. Das mache ich wahrscheinlich noch eine Stunde nach dem Mittagessen. Ich würde sagen, in einer bestimmten Woche mache ich wahrscheinlich nur ungefähr fünfzehn Minuten wirklicher, tatsächlicher Arbeit.
Teambob
73

Ich erklärte es meinem Fünfjährigen mit den folgenden Worten:

Ich: "Weißt du, wie Menschen in Geschichten magische Worte sagen und Dinge in der Welt verändern?"
Sie: "Jaaa?"
Ich: "Das ist Computerprogrammierung."
Sie (leise): "Wow."

15 bis 30 Minuten reichen nicht aus, um etwas Reales zu erklären, und die Erklärung der zugrunde liegenden Komplexität ist ein sicherer Weg, um sie zum Schreien zu bringen. Du arbeitest jeden Tag daran, du vergisst, wie verdammt cool es ist. Kein anderer Beruf auf der Welt schafft funktionale Dinge aus nichts als Worten ... Irgendwann muss jeder andere in die Welt des Fleisches gehen und anfangen, mit einem Hammer auf Dinge einzuschlagen. Nur so können sie ihre Idee in eine funktionierende Sache verwandeln.

Nicht wir.

Satanicpuppy
quelle
77
lol @ Lehre dein Kind, dass du ein Zauberer
bist
23
"Kein anderer Beruf der Welt schafft funktionale Dinge aus nichts als Worten" - das tun Vertragsanwälte und Gesetzgeber.
Tom Anderson
48
@Tom Wahrscheinlich schränken sie funktionale Dinge mehr ein als sie erschaffen.
Maxpm
16
@tom: Nein, tun sie nicht. Ein juristischer Auftrag ist nicht mehr eine funktionale Sache als eine Geschichte oder ein Gedicht. Ein Gesetz ist wie eine Blaupause: Es stellt eine Idee auf, aber dann muss jemand in die Welt des Fleisches gehen und sie durchsetzen. Aber Code? Ich könnte ein Programm schreiben, um Aktien zu kaufen oder zu verkaufen, basierend auf seiner eigenen internen Logik. Ich könnte einen schreiben, der die Schleusentore regelt, den Strom umleitet und die Lichter je nach Tageszeit ein- oder ausschaltet. Es ist einzigartig unter den Berufen.
Satanicpuppy
15
@Satanicpuppy: Nein, Sie konnten kein Programm schreiben, das eines dieser Dinge tun würde. Ein Elektronikingenieur könnte jedoch einen Computer bauen, der das kann. Wenn Sie nett gefragt haben, könnte er es vielleicht in die Welt des Fleisches entlassen und Ihre Programme durchsetzen.
Tom Anderson
56

Ein 15-jähriger Mensch kann jedes Konzept verstehen. Ich selbst habe mit 14 angefangen zu programmieren (in der Schule vor vielen, vielen Jahren)

30 Minuten reichen für eine Demo. Zeigen Sie ihr die Magie des Programmierens mit etwas, das so weit verbreitet ist wie ein Browser.

  1. Suchen Sie einen mit dem Internet verbundenen PC. (mehr Spaß, wenn es nicht deine ist, und noch mehr, wenn es ihre ist)
  2. Gehen Sie zu http://api.jquery.com/jQuery.getJSON/
  3. Blättern Sie auf der Seite nach unten und suchen Sie den HTML-Code für das Katzenbeispiel .
  4. Wählen Sie den HTML-Code aus und kopieren Sie ihn.
  5. Gehen Sie zu http://jsdo.it und klicken Sie auf Codierung starten .
  6. Eröffnen Sie ein Konto mit Ihrer OpenID. (ein schritt prozess)
  7. Wählen Sie die Registerkarte HTML im linken Bereich aus und fügen Sie sie dort ein.
    • in einer Sekunde erscheint ein Haufen Katzen auf der rechten Seite
  8. Schneiden Sie das Javascript aus und fügen Sie es in die Registerkarte JavaScript ein . (zur Syntaxhervorhebung)
    • in einer Sekunde werden die Katzen auf der rechten Seite automatisch aktualisiert
  9. Suchen Sie im Javascript nach der Eigenschaft tags und ändern Sie sie in dog.
    • ein Haufen Hunde erscheint
  10. Lassen Sie sie den Vorgang mit anderen Tags ihrer Wahl selbst wiederholen.
    • Schlagen Sie ihr vor, es mit zwei durch Komma getrennten Tags zu versuchen
  11. Ändern Sie die Zeile "if (i == 3)" in "if (i == 5)"; lass sie das erkennen
    • jetzt gibt es 6 bilder und vorher waren es 4
    • Es wäre besser, wenn die Nummer im Code mit der Nummer auf der Seite übereinstimmt
  12. Beheben Sie den Fehler gemeinsam (tauschen Sie diese und die vorherige Zeile aus).
  13. ...
Ando
quelle
1
Oder Sie könnten jsfiddle verwenden, ohne sich anmelden zu müssen: jsfiddle.net/WXVra
rjmunro
Beste! codecademy.com
jhocking
26

Schritte

Als fast 15-Jähriger kann ich Ihnen zuversichtlich sagen, dass Sie einen spektakulären Start haben sollten.

  1. Erklären Sie, was Programmierer machen. (Spiele, Simulatoren.) Zeigen Sie etwas Cooles, das Sie gemacht haben. (Auf dem Computer. Bitte keine Befehlszeile - das scheint alle zu erschrecken.)
  2. Erklären Sie, wie Sie es schaffen.

    • Sagen Sie ihnen, dass Sie nicht den 10101010ganzen Tag tippen . Sagen Sie ihnen, dass Sie nicht einmal wissen, wie man das macht. ( Lie. Sie tun wissen , was 10101010bedeutet, nicht wahr;)) Sagen Sie ihnen, dass vor Jahren war.
    • Starten Sie Ihre IDE. Stellen Sie sicher, dass es cool aussieht - MSVS2010, QtCreator und NetBeans sind alle gut. Stellen Sie sicher, dass Sie einige der zusätzlichen Elemente entfernen, damit es weniger einschüchternd aussieht (weniger Menüs), aber behalten Sie die visuellen Effekte bei.
    • Zeigen Sie ihnen ein Beispiel für einen Pseudocode. Machen Sie es einfach zu verstehen:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      Gehen Sie das Schritt für Schritt durch. Sagen Sie ihnen, dass Code nicht so aussieht. Code sieht aus wie English + Math. Es ist jedoch nicht schwer, die "Sprache" (sprich: Syntax) zu lernen, in der Sie sprechen.

    • Zeigen Sie ihnen ein Beispiel mit etwas mehr "Mathe".

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      Erklären Sie, dass dieser Code wie ein Taschenrechner zwei Zahlen addiert. Zeigen Sie ihnen den "echten" Code dafür. (Stellen Sie sicher, dass Sie den Großteil der Benutzeroberfläche und andere Elemente in einer separaten Datei ablegen, und halten Sie die angezeigte Datei kurz und einfach.) Ändern Sie sie in ein Subtraktionsprogramm (indem Sie das Vorzeichen von +nach ändern -), direkt vor ihren Augen.

  3. Erklären Sie, was Sie wissen müssen, um programmieren zu können. (Auf verschiedenen Ebenen.)

    • Grundlegende Algebra-Fähigkeiten, wie wenn x + 1 = 2, dann x = 1.
    • Problemlösende Fähigkeiten.
    • ["Advanced"] Höhere Mathematikstufe. Dies ist für Programmierer gedacht, die an Orten wie der NASA arbeiten.

Begriffe, die Sie verwenden können

Wir wissen mehr als Sie denken.

  • Facebook, Twitter, Social Networking
  • Windows, Mac, Linux
  • Entwerfen, schneller, testen, starten / laufen

Begriffe, die Sie erklären sollten

Ja, wir müssen noch ein paar Sachen erklären.

  • Compiler: Konvertiert Code (wie im Beispiel in Schritt 2) in 10101010.
  • Programmiersprache: Sieht aus wie im Beispiel in Schritt 2.

Begriffe, die Sie nicht verwenden können

Einige von uns kennen dieses Zeug, aber bitte sagen Sie es trotzdem nicht.

  • Jede Art von "System" außer dem Betriebssystem
  • Optimierung, Analyse (oh oh)
  • Eingabe / Ausgabe (wenn Sie dies benötigen, versuchen Sie es so einfach wie möglich zu machen)
muntoo
quelle
Auf der Suche nach einer "coolen" IDE? Suchen Sie nicht weiter als Xcode.
Alan Zeino
2
@ Alan Zeino du meinst Emacs.
Rightfold
Diese Antwort gefällt mir am besten. Ich denke, dass jemand, der diesen Kurs einnimmt, mehr erreichen würde, als jemand, der an den anderen (auch qualitativ hochwertigen) Antworten auf diese Frage arbeitet.
TehShrike
17

Wenn Sie anfangen, über Dinge wie Prozesse, Muster, Anforderungen und dergleichen zu sprechen, wird sie sofort heruntergefahren. Kinder sind heute grafisch und visuell motiviert, daher würde ich etwas einbringen, um diese Art von Stimulus zu fördern. Zeigen Sie ihr etwas Schickes im Web und beschreiben Sie ihr dann auf hohem Niveau, was DAS möglich macht. Ich würde sogar vorschlagen, Ihren Entwicklungs-Laptop mitzunehmen und etwas "Cooles" auf dem Bildschirm geschehen zu lassen - ändern Sie den Code vor ihr und beobachten Sie, wie er sich auf dem Bildschirm ändert. In diesem Alter sind sie SEHR klug und alles Visuelle wird das Interesse wecken.

Catchops
quelle
oh ja, visuelle darstellungen sind eine großartige idee. Bei der Gefahr, dass dies zu sehr einer Klasse ähnelt, würde ich sehr wahrscheinlich Diagramme auf das Whiteboard zeichnen, um alles zu veranschaulichen, was ich sage.
jhocking
1
Apropos Bildmaterial, wie wäre es, ihr ein kleines Video oder Programm zu zeigen Alice?
Carlos Campderrós
9
@Carlos Als 15-Jähriger kann ich persönlich bezeugen, dass ich Alice mit der brennenden Leidenschaft von tausend Sonnen hasse. Das liegt wahrscheinlich daran, dass ich bereits programmieren kann. Ich bin mir nicht sicher, wie total Anfänger es sehen.
Maxpm
1
+1 für "Ändere den Code vor ihr und beobachte ihn dann auf dem Bildschirm" - zeige ihr zunächst eine direkte Verbindung zwischen dem "echten" Ding und dem Code dahinter. Etwas mäßig Tiefes, wie das Sortieren oder Abfragen einiger Daten, nicht nur das Optimieren von JSP oder das Formatieren von Zeichenfolgen. Stellen Sie diese Verbindung her und bauen Sie sie dann aus.
Tom Anderson
1
Die Möglichkeit, das Erscheinungsbild eines Programms mit nur wenigen Codezeilen zu ändern, hat mich vor vielen Jahren zum Programmieren veranlasst - danke für den Vorschlag
Dexter,
13

Es gibt zwei großartige Analogien, auf die ich mich bei der Erläuterung der Arbeit von Programmierern stütze. Eins ist ein Rezept; Diese Metapher ist nützlich, um in kleinem Maßstab zu erklären, was jede Codezeile tut. Die Arbeit eines Programmierers schreibt das Rezept, und der Computer ist der Koch.

Die andere Analogie ist, dass ein großes Programm wie eine große Firma ist. Es gibt eine ganze Reihe verschiedener Abteilungen, die sich auf verschiedene Bereiche konzentrieren und Botschaften hin und her senden, und das Ganze erreicht letztendlich die Ziele des Unternehmens. Die Arbeit eines Programmierers besteht darin, die Organisation einzurichten, und der Computer ist die Gesamtheit der Mitarbeiter im Unternehmen.

schockierend
quelle
8

Ich würde sagen, halte es allgemein. Programmierung und viele andere Berufe beschränken sich auf das Lösen von Problemen. Zeigen Sie ihr, wie Sie täglich Probleme lösen. Sie könnten ihr von einem Projekt erzählen, an dem Sie gearbeitet haben, und wie es Ihren Kunden helfen wird. Geben Sie auch an, warum Sie (vermutlich) Ihren Job mögen.

In meinem Fall habe ich eine Website mit Lernvideos entwickelt, auf der andere Mitarbeiter Lernprogramme veröffentlichen. Ich erläutere die Motivation für das Projekt (andere fernunterrichten, ohne dass man sich an Menschen binden muss), die Probleme, mit denen ich konfrontiert war (ich muss diese nicht unbedingt als harte Probleme ansehen) und wie ich sie gelöst habe. Ich spreche auch darüber, warum ich in erster Linie gerne programmiere: Ich schaffe gerne Dinge und den Beitrag der Programmierung zur modernen Welt.

Peter Smith
quelle
8

Geben Sie ihr Beispiele für Software, an der Sie gearbeitet haben. Haben Sie einen Kunden, der Ihre Software öffentlich nutzt? Entwickeln Sie eine Inhouse-App, die Sie ihr zeigen könnten? Zeigen Sie ihr das Endergebnis Ihrer Arbeit, was der Endbenutzer sieht und verwendet.

Erklären Sie dann, dass Sie beim Schreiben geholfen haben. Gehen Sie die Teile durch, die Sie geschrieben haben. Zeigen Sie Code, wenn Sie können. Beschreiben Sie, wie diese Codezeilen einen Teil der Anwendung zum Laufen bringen.

Sprechen Sie darüber, wie viel Spaß Sie haben, wenn Sie sehen, wie Ihr Code von Menschen verwendet wird.

So erklärte ich es trotzdem meinem 14-jährigen Cousin. Er war ziemlich beeindruckt und beschloss, im nächsten Semester einen Programmierkurs zu belegen.

Tyanna
quelle
5
Es funktioniert gut, wenn Sie an Software arbeiten, die für Nicht-Programmierer cool aussieht. Viele meiner letzten Projekte befinden sich in einer Datenbank und "sehen" wie eine Befehlszeile aus (und selbst diejenigen, die sich nicht in einer Web-App befanden, sahen sehr langweilig aus - aber solange die Daten in Ordnung verarbeitet wurden, kümmerte sich niemand darum). Für einen Nicht-Programmierer ist es eine blinkende Eingabeaufforderung, die alle paar Minuten eine Textzeile ausgibt und dann stoppt. So langweilig anzuschauen ... Seufzer :(
FrustratedWithFormsDesigner
1
Nehmen Sie eine größere Sicht auf "Endergebnis Ihrer Arbeit". Das bedeutet nicht nur die Software, an der Sie gearbeitet haben. Dies können auch die verschiedenen Clientanwendungen sein, die von der von Ihnen bearbeiteten Back-End-Software aktiviert werden.
jhocking
Zumindest sind Sie kein SharePoint-Entwickler wie ich, @FrustratedWithFormsDesigner. Ich bin sicher, ich finde in all meinen spitzen Klammern etwas, das cool aussieht!
Dexter
4
@FrustratedWithFormsDesigner Als ich 15 Jahre alt war, ging ich zu einem "Überreden wir Schulkinder, es lohnt sich, sich für CS zu bewerben" -Tag, zusammen mit mehreren anderen klugen Kindern aus meiner Schule. Kommandozeilen-Zeug GESEHEN COOL. Es sah für uns super kraftvoll aus und das machte es COOOOOL. Gehen Sie nicht davon aus, dass 15-jährige Mädchen das Universum nicht beherrschen wollen :)
testerab
Sicherlich haben Sie in Ihrer Freizeit etwas programmiert, das Sie zeigen können. Ich habe ein Tetris-Spiel, einen Fraktal-Viewer und einen Sudoku-Löser programmiert. All dies macht Spaß zu zeigen.
Carra
7

Kennen Sie das Brettspiel Robo Rally?

Ich habe festgestellt, dass es die perfekte Analogie zum Programmieren ist. Sie programmieren Ihren Roboter im Grunde genommen mit einfachen Befehlen (meistens mit Pfeilen), um eine bestimmte Stelle auf dem Spielbrett vor den anderen zu erreichen.

Mann, ich wünschte, ich hätte noch meine BigTrak ...

System aus
quelle
4
Wir spielen dies halbjährlich in unserem Spieleabend (bis zu 8 Personen, die meisten sind Mathematik- oder CS-Studenten). Es ist gut zu zeigen, wie Multithreading schief gehen kann :-p
Paŭlo Ebermann
@Paulo - LOL Habe noch nie so darüber nachgedacht, aber du hast recht!
System Down
6

Zeigen Sie etwas Einfaches, aber Nützliches. Ein gutes Beispiel, denke ich, wäre das Folgende:

  1. Holen Sie sich einen Ordner voll oder Bilder (genug, dass sie nicht alle auf einen Bildschirm in Ihrem Ordner-Explorer passen)
  2. Sagen Sie ihnen, dass Sie die Größe der Bilder ändern möchten (vielleicht können Sie sie per E-Mail an Freunde senden oder irgendwo online posten, was auch immer).
  3. Zeigen Sie, wie Sie die Größe eines Bildes in GIMP / Photoshop / whatever ändern
  4. Weisen Sie jetzt darauf hin, dass dies mindestens 30 Sekunden gedauert hat und Sie viele Bilder haben. Sie möchten dafür keine Stunde aufwenden
  5. Schreiben Sie ein Shell-Skript, um alle mit ImageMagick in der Größe zu ändern
  6. Lassen Sie sich überraschen, dass das Ändern der Größe aller Bilder mit Ihrem einfachen 3-Zeilen-Programm schneller war als das Ändern der Größe eines einzelnen Bildes in Photoshop

Die Gründe, warum ich diesen Ansatz mag, sind:

  • Sie müssen ihnen nicht sagen, warum das Programmieren nützlich ist, sie haben einfach gesehen, warum
  • Sie können das gesamte Programm in ein paar Sekunden schreiben, während sie es ansehen (ich rate, es vorher zu versuchen, da Demonstrationen immer schief gehen).
  • Du nimmst nicht an, dass sie Idioten sind oder irgendeine Art von "Kind" -Beispiel brauchen - Dies ist ein einfaches Beispiel, aber es hat reale Anwendungsmöglichkeiten .

Sie können sich vielleicht bessere Beispiele vorstellen, aber ich denke, der Stil ist hilfreich für ein "erstes Intro".

Brendan Long
quelle
5

Die meisten 15-Jährigen haben "heutzutage" viel Erfahrung mit Computern. Ich würde mehr Hand anlegen. Ich würde ihr ein bisschen Code zeigen (nicht versuchen, ihn detailliert zu erklären, aber vielleicht die extremen Grundlagen des "Flusses" behandeln) und ihr zeigen, was das Ergebnis ist. Sogar HTML wird für diese Art von Beispiel funktionieren. Sagen Sie dann "Jeden Tag mache ich das im Grunde ... außer mit Zehntausenden von Codezeilen und einem sehr großen und komplexen Programm".

Erklären Sie dann, welche Probleme Sie mit der Programmierung lösen und warum Sie das gerne tun. Zum Beispiel würde ich sagen, dass ich gerne programmiere, weil ich es liebe, wenn mein Code als Anwendung im Computer zum Leben erweckt wird.

Earlz
quelle
4

Erstens haben Sie Konkurrenz, die Sie entlarven müssen.

Filme, Popkultur und sogar Leute auf dem Gebiet ( und diese Frage auch ) versuchen, die Programmierung (und den Großteil des Gebiets der Informatik) als irgendeine Art von Magie darzustellen. Es ist keine Magie.

Beim Programmieren werden einfach Aufgaben beschrieben und dann kombiniert, um ein Problem zu lösen. Wenn Sie versuchen, eine Parallele zu finden, verwenden Sie Mathe. Ein Computer ist wie ein Mathematiklehrer, bei dem Sie alle Ihre Arbeiten zeigen müssen .

Aus physikalischer Sicht sind Computer nicht schlau - sie wissen nur so viel, wie wir ihnen sagen. Wenn ein Computerprogrammierer ein Programm erstellen möchte, das beispielsweise Musik von einer CD abspielt, muss er dem Computer lediglich mitteilen, wie die auf der CD gespeicherten Daten gelesen und anschließend in Schallwellen umgewandelt werden sollen , wie diese Schallwellen von Ihren Lautsprechern ausgegeben werden.

Wenn Sie diese Idee auf die nächste Ebene heben, erfahren Sie, wie die Programmierung Aufgaben aufeinander aufbaut. Genau wie er / sie Rechnen lernen musste, bevor er / sie Algebra in Mathematik lernen konnte, muss dem Computer auch erklärt werden, wie er / sie die Grundlagen erledigt, bevor er / sie lernen kann, wie komplexere Aufgaben zu erledigen sind. Im Laufe der Jahre war es Informatikern und Programmierern möglich, Computer so weit zu "unterrichten", dass wir viel näher an der Art und Weise, wie wir miteinander sprechen, mit ihnen "sprechen" können.

Zurück im wirklichen Leben fordert Sie Ihr Mathematiklehrer vielleicht auf, "15 hoch 3" zu lösen, aber Sie wissen nur, wie Sie das tun sollen, weil Ihnen zuvor beigebracht wurde, dass "X hoch Y" in die Aufgaben von zerfällt "Multipliziere X mit X und mache es Y- mal" [technisch gesehen Y -1-mal, aber eh.]

Ähnlich wie in Ihrem Mathematikunterricht haben die Programmierer eine Basis von 'bekannten' Aufgaben aufgebaut, sodass wir uns nicht auf die Details der kleinen Dinge konzentrieren müssen und unsere Zeit der Lösung der eigentlichen Probleme widmen können und nicht so sehr, wie die zugrunde liegenden Aufgaben ausgeführt werden sollen aufgaben - wir können jetzt davon ausgehen, dass ein Computer die grundlegenden Dinge versteht.

Colinross
quelle
3

Ich würde tun, was mich süchtig machte, als ich ungefähr 9 war. Nimm den C64 aus dem Loft und mache:

10 PRINT "YOU SMELL"

20 GOTO 10

(Danke Vater).

Dann, wenn der Spaß vorbei ist. Ich würde ihr das Zahlenspiel zeigen. Ja, alles in BASIC. Eine moderne Sprache ist nicht unbedingt erforderlich, um einen Computer zu zeigen, der Anweisungen entgegennimmt.

Martin Blore
quelle
2
Gut. Du triffst den Nagel auf den Kopf. Mach es wirklich einfach und mach es lustig. Und dafür ist BASIC perfekt.
Mike Dunlavey
1
Einverstanden, BASIC ist großartig und GOTO ist das beste Sprachkonstrukt für den Anfang. Mein erstes Programm war sehr ähnlich.
Tomas Andrle
Ich werde nicht sagen, dass ich total dagegen bin, aber ich habe erst nach ein paar Jahren Programmieren von C ++ etwas über goto gelernt. Seitdem habe ich noch nie einen einzigen Tippfehler in meinem Leben gemacht. Gut oder schlecht, ich werde nicht beurteilen - ich wollte nur wissen, dass goto nicht unbedingt ... äh ... notwendig ist.
31eee384
3

Es könnte hilfreich sein, mit etwas zu beginnen, das sie routinemäßig tut, wie Facebook, und ihr zu erklären, wie ein einfacher Aspekt wie das Anmelden sehr kompliziert sein kann.

Sie könnten von hier aus in Datenbanken, Anwendungsdesign und dann in einige Aspekte der Sicherheit verzweigen, was etwas Hilfreiches ist, das sie mitnehmen kann.

Du kannst sie sogar fragen: "Wenn es eine Sache mit Facebook gäbe, die du ändern könntest, was wäre das?" Führen Sie sie dann durch, wie Sie die Änderung vornehmen könnten und wie viele Personen beteiligt wären.

Ich lernte zuerst Pascal zu programmieren und war total begeistert, dass mein Programm meine Eingabe akzeptierte, damit herumspielte und etwas anderes druckte. Ich war von dort süchtig. Manche Leute klinken leicht.

client09
quelle
Die Verwendung von Facebook ist ein guter Vorschlag, danke @ client09
Dexter
2

Ich hoffe, sie hat ein Praktikum an einem Ort absolviert, an dem vermutlich Software entwickelt wird, für die sie ein gewisses Interesse haben muss.

Es gibt keine gesetzte Antwort, ich würde sie 5-10 Minuten lang befragen, was sie weiß, dann versuche einfach, so gut du kannst darauf aufzubauen.

Anonym
quelle
Ich bin mir nicht sicher, ob @Chris - in einem Technologieunternehmen gibt es viele verschiedene Rollen, von der Buchhaltung über die Personalabteilung bis hin zur Entwicklung und Beratung. Wir geben ihr einen kurzen Vorgeschmack auf viele verschiedene Rollen, daher glaube ich nicht, dass ich diese Annahme machen würde
Dexter,
Um fair zu sein, haben Sie nie angegeben, warum es sich um eine Art Unternehmen handelt. : p Man kann mit Sicherheit sagen, dass sich jemand für Gitarren interessiert, anstatt ein Gitarrenbauer zu sein, wenn er ein Praktikum in einem Gitarrengeschäft absolviert.
Anonym
2

Beginnen Sie auf hoher Ebene. Erklären Sie vielleicht, dass es bei der Computerprogrammierung um Problemlösung geht: Nehmen Sie ein Problem und entwickeln Sie eine Lösung, die als eine Reihe von Anweisungen geschrieben ist, die eine Maschine verwenden und verstehen kann.

Der schwierige Teil könnte darin bestehen, Beispiele zu finden, die ein 15-jähriges Mädchen interessant und relevant finden würde . Da ich noch nie in dieser Situation war und sie nicht kannte, bin ich mir nicht sicher, was ich dafür empfehlen soll. Vermeiden Sie Codebeispiele bis kurz vor dem Ende und mit Ausnahme sehr einfacher oder interessanter Fälle, wie z etwas einfaches und grafisches (zeichnen Sie einige Formen in ein Fenster, verfolgen Sie eine Maus, etc ...).

FrustratedWithFormsDesigner
quelle
Ich glaube nicht, dass ich jemandem das Programmieren beibringen könnte, ohne ihm zumindest einige Beispiele des Codes zu zeigen, an dem ich arbeite.
Dexter
@Dexter: In 30 Minuten bin ich mir nicht sicher, ob ich zu viel darüber nachdenken möchte, wie Code aussieht. Ich wollte nichts zeigen, aber da Sie nicht viel Zeit haben, denke ich nicht, dass Code im Mittelpunkt stehen sollte. Es könnte sehr trocken und langweilig werden. Sprechen Sie mehr über Ideen und Konzepte, wenn Sie können. Wenn Sie können ein einfaches Beispiel finden (vielleicht weniger als 10 Zeilen) , die leicht zu verstehen, und auch interessant, denn es gehen!
FrustratedWithFormsDesigner
Ich bin einverstanden, aber ich denke, anstatt auf ein einfaches Beispiel für Kapitel 1 einzugehen, zeige ich lieber ein Programm, das ich entwickelt habe, und schalte ein paar Codezeilen ein, um ein Ergebnis zu zeigen. Letztendlich glaube ich nicht, dass ich es bin Ich werde ihr das Programmieren beibringen können, aber vielleicht kann ich sie dazu inspirieren, mehr herauszufinden.
Dexter
2

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!

Jeremy Murray
quelle
2

Machen Sie ein einfaches Programm. Nein, nicht "Hallo Welt!"

Ich würde sagen, dass es viele Arten von Programmiersprachen gibt - solche, die Spiele machen, solche, die Roboter steuern -, aber Sie werden mit HTML arbeiten.

Erstellen Sie eine Webseite ohne Inhalt und fügen Sie ein Formular hinzu, mit dem eine E-Mail an ihre E-Mail-Adresse gesendet wird. Vermutlich hat sie ein Handy, mit dem der Eigentümer benachrichtigt werden kann, dass eine neue E-Mail vorliegt. Sie können ihr also sagen, dass dies eine großartige Möglichkeit für ihre Freunde und Familie ist, mit ihr in Kontakt zu treten. Wenn sie in Zukunft eine eigene Website erhält, können Sie ihr mitteilen, dass sie das Formular auf ihre Website stellen kann, damit ihre Kunden und Geschäftspartner mit ihr Kontakt aufnehmen können.

Alternativ, wenn sie ein bisschen schelmisch ist, erzähle ich Ihnen, was mich zum Programmieren gebracht hat: Hacken. Damals machte ich das beste Programm, das ich je für AOL gemacht hatte (abgesehen von einem Programm, das mein Programm in nur einem von Dutzenden von Dingen übertroffen hat) - im Alter von 14 bis 15 Jahren. Auf der White-Hat-Seite habe ich auch eines der ersten Spam-Entfernungsprogramme erstellt (1995). Ich konnte mein Online-Erlebnis viel angenehmer gestalten, und wir werden es dabei belassen. Alles, was ich an einem Computer machen wollte, war ein Abenteuer oder Puzzle, das ich herausfinden musste, und die Dinge, die ich an einem Computer machen wollte, waren endlos. Sicher, es zum Laufen zu bringen, bereitete manchmal Kopfschmerzen, aber ein Programm zu schreiben, das Dinge besser und schneller vollbrachte, als jeder Mensch es könnte. oder Dinge zu tun, die für die breite Öffentlichkeit einfach unmöglich waren, glich dem Bau einer feinen Maschine, auf die man stolz sein konnte. Wahrscheinlich möchten Sie nichts Ernstes scheuen, aber es wäre äußerst einfach, in Visual Basic etwas zu erstellen, das beim Start gestartet werden könnte (auf der Seite des Bildschirms oder der Taskleiste), und von dort aus Sie könnten damit ihre Lieblingswebsites, ihre Lieblingsprogramme usw. starten. Sie könnten ihr die Befehle zum Starten einer Exe und einer Website vorstellen und sie dann bitten, einige Schaltflächen zu erstellen und den Code zu diesen Schaltflächen hinzuzufügen , indem Sie ihre Lieblingswebsites (Facebook, Twitter usw.) und -programme (iTunes, Textverarbeitung usw.) eingeben. Wenn sich ihr Computer in ihrem Zimmer befindet, können Sie auch einen Wecker darauf werfen, um zusätzliche Funktionen zu erhalten. Na sicher, 30 Minuten sind zu kurz, um sie durch das Ganze zu führen, also müssten Sie es schon erledigen. Am Ende mailen Sie ihr ein kleines 2-3-seitiges Benutzerhandbuch, den Code und die EXE-Datei es ist nicht so schlimm, es wird im Leben äußerst nützlich sein und wird dabei helfen, ihr analytisches Denken zu entwickeln.

Michael
quelle
2

Früher unterrichtete ich 18-jährige College-Studenten, und ich nehme an, 15-jährige sind ungefähr gleich. Erwarten Sie keinen Erfolg ohne Übung. In meiner ersten Klasse habe ich einige Wochen gebraucht, um "eingebrochen" zu werden.

Das Größte, was ich lernen musste, war, dass das, was ich für so einfach und offensichtlich hielt, dass ich befürchtete, ich könnte die Zeit nicht ausfüllen, für die Schüler überhaupt nicht so war. Ich habe gelernt, dass Sie in kleinen Schritten gehen müssen - sonst ist es nur "gee whizz" Magie.

Wie du das in 30 Minuten anpasst, weiß ich nicht genau, aber als erstes zeigte ich ihnen einen kleinen selbstgebauten Computer, der so programmiert war, dass er durch Klicken eines Lautsprechers ein wenig Musik spielt. Ich erklärte, dass es eine Note spielen könnte, indem es einen Zähler dekrementiert, um als Verzögerung zwischen den Klicks zu wirken. Ich habe den Pseudocode einfach wie ein Rezept an die Tafel geschrieben. Dann gab es einen kleinen Kondensator, den ich unter einen Draht haken konnte, der das Ganze ungefähr 1000-mal langsamer laufen ließ. Dann hörten sie Klicken - Warten - Klicken - Warten ... Dann, als ich den Kondensator aushängte, platzte er mit der kleinen Melodie heraus.

Das Ziel dabei war es, herauszufinden, dass Computer nur einfache Aufgaben ausführen und diese nacheinander ausführen. Sie beginnen nicht jeden Schritt, bis der vorherige Schritt abgeschlossen ist. (Ja, ja, ich weiß - Pipelining und so weiter, aber wir sprechen mit Neulingen .) Nur die elektronische Geschwindigkeit lässt sie alles auf einmal tun, was Neulinge gerne annehmen (zusammen mit Gedankenlesen). . Das ist eines der wirklich grundlegenden Konzepte, ohne die man Programmierung und Computer nicht verstehen kann. Für uns ist dies so uneinheitlich, dass wir nicht einmal merken, dass wir es wissen, aber Anfänger wissen es nicht.

Mike Dunlavey
quelle
1

Ich weiß, dass es keine Programmiersprache ist, aber ich denke, HTML ist ein guter Anfang. Weil Sie sofort Ergebnisse erhalten ... beginnen Sie mit

Hallo Welt

Dann mach:

Hallo <b> Welt </ b>

Usw.

Mike Jones
quelle
1

Wenn ich es wäre, würde ich ihr sagen, dass es beim Programmieren darum geht, eine Aufgabe so in kleine Aufgaben aufzuteilen, dass Sie sie leichter lösen können. und dann diese kleinen Aufgaben in einer Sprache ausdrücken, die von einem idiotischen Computer nicht missverstanden werden kann. Man muss es aber auch so machen, dass es auch andere Programmierer leicht verstehen können - und das ist nicht dasselbe.

Das heißt, zusätzlich zu dem, was alle anderen gesagt haben ...

Andy
quelle
1

Dies ist mehr meine persönlichen Erfahrungen als eine einfache "Antwort".

Warum habe ich mich dafür interessiert? Meine Eltern kauften 1984 einen IBM PC XT (ich wurde 1984 geboren). Es hat 640kb RAM und 20MB HDD und ein 5 "FDD und lief MS-DOS v3.2. Ich durfte es nicht berühren, bis ich im 5. Standard war und als ich es endlich benutzen durfte, habe ich alle meine Jahre gegossen der angehäuften Neugier hinein.

Meiner Schwester hingegen war es gestattet, denselben PC und einen Quadra 610-Mackintosh zu benutzen, wann immer sie wollte.

Unterrichten meiner Schwester ... Ich habe versucht, meiner Schwester die Programmierung in BASIC beizubringen. Ich habe sie dazu gebracht, alles richtig zu machen, vom Starten des Computers über das Eintippen und Ausführen des Programms. Es war als Linienprogramm.

10 PRINT "CAT"
20 END

Das dauerte eine halbe Stunde. Als sie es schließlich ausführte, druckte es das Wort "CAT" und sie war wütend. Sie hatte erwartet, dass ein Bild von einer Katze auftauchen würde. Sie stürmte aus dem Raum und das war das Ende der Programmierung für immer!

Moral: Der Output sollte proportional zu Zeit und Aufwand sein.

Unterrichten von Highschool-Kindern Labview und Lego NXT Ich war ein Jahr lang Mentor für FIRST Robotics und musste die Kinder bei der Programmierung des Roboters in NI Labview unterstützen. Ehrlich gesagt lag die Programmierkenntnis weit über dem Niveau eines Schülers. Aber der Wettbewerb sollte Kinder für das Ingenieurwesen begeistern und die Messlatte höher legen, wenn es darum geht, Herausforderungen anzunehmen. Solange die Programme nur eine if-Anweisung und eine Schleife hatten, war alles in Ordnung. Die Leute verließen den Programmierbereich des Roboters, als sie das Codediagramm sahen, das ich für den Roboter erstellt hatte, den wir im Vorjahr gebaut hatten.

So sehr die Leute behaupten, dass 15-Jährige komplexe Dinge tun und eine Aufmerksamkeitsspanne von Stunden haben können, fand ich einen seltsamen Mangel an Motivation in ihnen, dies zu tun. Sie wollten einfache Dinge tun, die ihren Verstand nicht belasteten. Sie zogen CAD und Frästeile auf der Drehmaschine dem Schreiben von Programmen vor.

Lord Loh.
quelle
1

Was ist CS?

Ich denke, bevor Sie sich mit Demos befassen, ist es hilfreich, kurz Ihren Platz in der Welt von CS einzuschätzen. Ich mochte Hal Abelsons Beschreibung von CS im Verhältnis zu Mathe: Während Mathe Ihnen hilft, die Welt in Begriffen von Gesetzen zu beschreiben, hilft CS Ihnen, zu beschreiben, wie man Dinge tut. Sein Beispiel war die Quadratwurzelfunktion: math definiert sie, hilft Ihnen jedoch nicht, sie für eine bestimmte Eingabe zu finden. CS wird. Auf einer niedrigeren Ebene legten Elektrotechnik und Physik den Grundstein für die Hardware, die das Internet ermöglichte, ließen jedoch die Fragen offen, wie Menschen dazu gebracht werden sollten, es zu nutzen.

Wie ist es, Programmierer zu sein?

Dann stellt sich die Frage, wie es ist, Programmierer zu sein. Was mich angesprochen hat, war, dass es eine schnellere Abwicklung von Versuchen, Testen und Reparieren gibt als jedes andere technische Gebiet. Es ist eine ununterbrochene Problemlösung, während in anderen Bereichen die Bearbeitungszeit für eine einzelne Schleife Monate betragen kann. Es ist auch für fast jedes andere technische Gebiet nützlich, was mehr ist, als für die meisten anderen technischen Gebiete gesagt werden kann. Wenn Sie also (wahrscheinlich) noch nicht wissen, was Sie tun möchten, ist es eine gute Sache, früh gut zu werden. Im College werden Sie für mehr Professoren durch wenige Dinge nützlicher als durch die Möglichkeit, ihre Experimente zu programmieren.

Augensüßigkeit, gebunden an Code

Dann vergessen Sie natürlich nicht die Demos. Es könnte cool sein, eine Kopie von Quake (Open Source) zu erhalten, eine Änderung in einer Zeile vorzunehmen (z. B. die Schwerkraft zu ändern) und beispielsweise neu zu kompilieren. Schauen Sie sich auch den Code an. Versichern Sie ihr, dass sie nicht erwarten sollte, viel zu verstehen, es mag jetzt wie Kauderwelsch wirken, aber auch Zeitungen in Fremdsprachen, die sie noch nicht gelernt hat. Sie können sagen, dass sie trotzdem sehen kann, dass Dinge den Dingen zugewiesen werden, dass Objekten gesagt wird, was zu tun ist, und hier setzen wir die Schwerkraft usw.

SuperElectric
quelle
1

Ich habe mit 14 Jahren angefangen zu programmieren. Während die meisten (47 der 50 eingeschriebenen Studenten) entweder Mitte des Jahres abbrachen oder einfach beschlossen, im nächsten Jahr nicht in den Aufbaukurs einzusteigen, blieb ich dabei und lernte etwas sehr Wichtiges:

Das Programmieren gibt Ihnen die Möglichkeit, etwas aus dem Nichts zu erschaffen. Sie haben die Macht, Wörter in ein nützliches Werkzeug zu verwandeln, das eine Notwendigkeit erfüllt, eine unterhaltsame Aktivität für Sie und Ihre Freunde oder einfach etwas, das Sie Ihren Freunden zeigen und sagen können: "Schauen Sie, was ich getan habe."

Zunächst wurde uns "Hello World" beigebracht, aber ich hatte kein Interesse, bis ich meinen Code mit dem Benutzer interagieren lassen konnte . In dem Moment, in dem wir gelernt hatten, Input mit "cin" zu lesen, machte ich mich daran, ein Mad-Lib-Programm zu entwickeln, das wir im Unterricht spielen konnten. Meine erste Hürde war das Lesen von Eingaben mit Leerzeichen, gefolgt vom Formatieren von Ausgaben. Später wollte ich in der Lage sein, diese Geschichten in einer Datei zu speichern, und so musste ich Datei-E / A lernen. Das Überwinden von Hindernissen, um meine eigenen Ziele zu erreichen, hat mich beschäftigt.

Später im Jahr stellten wir fest, dass die Netzwerkadministratoren unsere Verwendung von "Net send" und des Novell SendMessage-Clients, mit dem wir während des Computerkurses kommunizierten, protokollierten und deaktivierten, nachdem die Schüler einen Test damit betrogen hatten. Also habe ich einen Chatroom geschrieben, um den zu ersetzen, den die Admins deaktiviert haben. Es war das erste wirklich nützliche Ding, das ich geschaffen hatte. Ich habe es dem Chat-System von Battle.Net nachempfunden. Es enthält eine Benutzerregistrierung, Moderatoren und sogar ein grundlegendes Verschlüsselungs- und Schattendateisystem, um Manipulationen durch Benutzer zu verhindern Zugang und Benutzung des Programms). Dies waren keine Konzepte, die mir bereits bekannt waren, sondern Lösungen, die ich selbst gefunden habe, um ein Problem zu lösen. Für mich war das die Freude am Programmieren.

Um die Frage richtig zu beantworten, ist eine interaktive Demo, abgesehen von der Diskussion darüber, was es bedeutet, Software zu entwickeln, wahrscheinlich eine großartige Idee. Am liebsten etwas, das ein Problem löst, das sie hat, wie das automatische Ändern der Größe all dieser riesigen Bilder von ihrer Kamera. Etwas komplizierter mag es sein, dass sie Spaß mit einer einfachen Webseite zum Hinterlassen einer Nachricht hat, die sie mit ihren Freunden teilen kann. Sie können jederzeit eine E-Mail an jemanden senden, wenn eine neue Nachricht veröffentlicht wird, und den Code bearbeiten lassen, damit er an Ihre E-Mail-Adresse anstatt an Ihre gesendet wird. Lassen Sie die Seite außerdem die letzte X-Anzahl von Kommentaren anzeigen, und veranlassen Sie sie, diese Anzahl ebenfalls anzupassen, und überprüfen Sie die Ergebnisse.

vsTerminus
quelle
1

Wo ich früher arbeitete, kamen manchmal Kinder mit Berufserfahrung. Einige interessierten sich für Computer, andere nicht. Früher haben wir sie dazu gebracht, sich vor einen Computer zu setzen und ein Ratespiel zu schreiben. (Der Computer wählt nach dem Zufallsprinzip eine Zahl aus, und der Benutzer erhält eine Rückmeldung, ob seine Vermutung zu hoch / niedrig war.) Das ist einfach und ein wirklich unterhaltsames Ergebnis. Nichts ist mächtiger, als ihnen greifbar zu machen, was SIE hervorbringen können.

user30241
quelle
1

Wenn Sie jemandes Aufmerksamkeit erhalten und behalten wollen, dann fragen Sie, sagen Sie es nicht. Fragen Sie, wie sie eine einfache Aufgabe ausführen würden, z. B. ein Glas Wasser zu sich nehmen. Zeigen Sie ihnen dann, wie das Befolgen der Anweisungen, die sie gegeben haben (z. B. "Gehen Sie den Flur hinunter"), die Probleme, wann Sie links abbiegen, rechts abbiegen, anhalten usw., nicht bewältigt der Programmierung! Dann können Sie zeigen, wie eine "do-until" -Schleife die Situation "Gehen bis zur Wand" bewältigen kann, um aus dem einen Fuß-vor-dem-anderen-Schritt Meta-Aufgaben zu machen zu Fuß.

Brian
quelle
1

Ich bin nicht sicher, ob dies eine Legende oder eine wahre Geschichte ist, aber ich habe gelesen, warum der Glückliche eines Tages steif wird. Ein Teil der Geschichte war, wie er einem Kind (oder vielleicht sogar Kindern), das er in einem Zug getroffen hatte, das Programmieren zeigte.
Wie einige von Ihnen vielleicht wissen, war Ruby ein Typ (und Ruby ist auch ziemlich freundlich zu normalen Menschen). Er arbeitete an einem Spiel in Ruby, während ein Kind auf ihn zukam, um zu sehen, was er tat. Er zeigte ihnen zuerst das Ergebnis - das Arbeitsspiel. Dann zeigte er das Kind , wie er kann ändern Dinge im Code , um das Ergebnis zu ändern. Dann ließ er das Kind spielt mit dem Code und modifizierte Ergebnis.
Ich denke, dass dies Ihr allgemeiner Arbeitsablauf sein sollte - resultieren, modifizieren, spielen. Sie sollten ein Projekt (Spiel wäre die beste Wahl) in menschenfreundlicher Sprache finden und es dem Kind zeigen.

Wie ich traurig bin, habe ich keine Ahnung, ob diese Geschichte wahr ist oder nicht. Es ist immer noch sehr cool.

Auch noch eine Sache. Ich erinnere mich an meine ersten Erfahrungen mit der Programmierung - MessageBoxin Delphi. Es war cool, weil ich den Computer dazu bringen konnte, das zu tun, was ich wollte und sofort das Ergebnis sah.
Dann erschienen Mikrocontroller. Sie waren sogar noch besser, weil mein Code die reale Welt verändern könnte. Ich meine, das Zuweisen von Werten zu Variablen war nicht mehr so ​​abstrakt, da eine Spannung am Ausgangsanschluss auftrat, die dann dazu führte, dass sich mein Motor bewegte. Es war cool. Vielleicht möchten Sie diesen Weg wählen - zeigen Sie dem Kind etwas wie Arduino.

Ich denke, es geht darum, das Ergebnis zu verändern und zu sehen.

Dr. McKay
quelle
0

Zeigen Sie ihr das Endergebnis einiger der Dinge, die Sie getan haben. Sprechen Sie allgemein über Ihre Rolle in den Projekten. Vielleicht helfen Sie ihr sogar dabei, eine Hallo-Welt zu machen, wenn sie interessiert scheint.

SoylentGray
quelle
0

Meine liebste Analogie zum Programmieren ist Zauberei (Harry-Potter-Stil) wie Satanicpuppy. Ich benutze dies sowohl für nicht-technische Kollegen als auch für Kinder, es scheint ziemlich gut zu funktionieren und vermittelt definitiv die Kraft, die Computer uns geben.

Computer sind unsere Zauberstäbe. Sie ermöglichen es uns, mit der richtigen Bewegung des Handgelenks und Beschwörungsformeln zu zaubern. Als Programmierer haben wir Zugriff auf Zauberbücher (Bibliotheken), die von unseren Vorgängern bearbeitet und verfeinert wurden. Wir können neue Zaubersprüche und Beschwörungsformeln erstellen oder mit vorhandenen arbeiten. Manche sind einfach, manche erfordern mehr Übung, um sie wirklich effektiv einzusetzen, es gibt oft Kompromisse und viele verschiedene Möglichkeiten, um dasselbe Problem zu lösen (sollte ich einen guten Trank oder eine Beschwörung verwenden?).

Diese erweiterte Metapher kann wirklich gut ausgedehnt werden und ermöglicht es mir oft, meine Leidenschaft für das Programmieren auf eine Weise zu vermitteln, die für Leute außerhalb des Feldes zugänglich ist.

Grantismo
quelle
0

Der beste Weg, Kinder zu verstehen, ist, zuerst ein Kind zu sein ..! Als Kind hasste ich es, Hausaufgaben, Auferlegungen usw. zu machen! Es gibt also Einstiegspunkte, an denen Sie ihre Aufmerksamkeit auf sich ziehen können. Obwohl wir nicht alles erklären können, können wir in 30 Minuten versuchen, ihnen eine Art von Belichtung zu geben, bei der interessierte Kinder sie als Inspiration finden. Beginnen Sie mit verwandten Themen wie Hausaufgaben usw. Erklären Sie ihnen, wie ein Computer in wenigen Sekunden Impositionen usw. erstellen kann.

Ich wünsche dir alles Gute.. ! Gut gemacht

Ratna Dinakar
quelle