Ein Freund von mir hat mich neulich gefragt, ob ich mir beim Programmieren nur Zahlenlisten anschaue oder wie es funktioniert. Ich habe versucht zu erklären, dass es im Allgemeinen eher mathematischen Formeln ähnelt, in die das eine oder andere englische Wort geworfen wird, und dass es im Allgemeinen größtenteils lesbar ist. Aber das ist eine sehr vage Erklärung, und sie erklärt einem Nicht-Programmierer nicht viel.
Aber ich musste darüber nachdenken, was ein gutes Beispiel wäre. Nicht weil ich ihr Programmieren oder so beibringen möchte, sondern nur um ihr eine Vorstellung davon zu geben, wie Programmcode "aussieht".
Und das brachte mich dazu, mich zu fragen, was eigentlich als gutes Beispiel funktionieren würde. Und das ist überraschend schwierig.
Mein erster Gedanke war offensichtlich ein einfaches "Hello World" -Programm. Aber es zeigt wirklich nichts Nützliches. Es zeigt nicht wirklich, wie wir Funktionen oder Variablen verwenden oder Flussstrukturen steuern if
oder while
ein Programm erstellen, das tatsächlich etwas tut . Es gibt keine Logik. Das Programm reagiert auf nichts.
Vielleicht wäre so etwas wie die Berechnung von Primzahlen ein besseres Beispiel. Aber andererseits könnte das zu theoretisch und unpraktisch sein ... (Was nützt das? Was hat es mit dem Schreiben "echter" Programme zu tun?) Und wieder gibt es keine signifikante Kontrollflusslogik. Es ist nur eine gerade Abfolge von Mathematik.
Und welche Sprache sollte auch verwendet werden?
Im Idealfall denke ich nicht, dass es eine sehr "saubere" Sprache sein muss. Vielmehr sollte es wahrscheinlich die Struktur klar machen. Wenn dies der Fall ist, kann ein gewisses Maß an Rauschen und Unordnung in Ordnung sein. Vielleicht wäre so etwas wie C ++ aus diesem Grund tatsächlich ein besseres Beispiel als Python. Die expliziten geschweiften Klammern und Typspezifizierer sind offensichtliche "Haken", um zu erklären, wie das Programm aufgebaut ist, oder um hervorzuheben, dass es nicht nur einfache Aussagen sind, die fast als Englisch ausgelesen werden können.
Aber mit C ++ geraten wir auch in eine geradezu seltsame Syntax. Warum wird std::cout << x
x ausgedruckt? Warum nicht eine "normale" Funktionsaufrufsyntax? Und printf
ist nicht viel besser, mit seiner Zeichenfolge im arkanen Format und mangelnder Erweiterbarkeit (möchte ich das Programm durch die Verwendung char*
von Zeichenfolgen komplizieren ? Oder verwende std::string
und begnüge ich mich damit, das scheinbar Unnötige aufzurufen s.c_str()
, um eine Zeichenfolge zu erhalten, mit der gedruckt werden kann printf
?
Vielleicht wäre eine höhere Sprache doch besser. Aber welcher? Und warum?
Ich weiß, dass es hier viele ähnliche Fragen gibt, welche Sprache / welches Beispielprogramm zum Unterrichten von Programmierung verwendet werden soll. Aber ich denke, die Anforderungen hier sind unterschiedlich. Wenn wir Programmieren unterrichten, wollen wir vor allem Einfachheit. Wir wollen alles vermeiden, was noch nicht gelehrt wurde. Wir möchten sicherstellen, dass der Schüler alles auf dem Bildschirm verstehen kann .
Ich bin nicht an Einfachheit an sich interessiert. Sondern indem man einem "Außenseiter" eine Vorstellung davon gibt, "wie ein Programm aussieht". Und Programme sind nicht einfach. Aber sie zeigen im Allgemeinen eine bestimmte Struktur und Methode für den Wahnsinn. Welche Sprache / welches Programm würde das am besten hervorheben?
Bearbeiten
Vielen Dank für alle bisherigen Vorschläge. Einige von Ihnen hatten einen etwas anderen Blickwinkel als beabsichtigt.
Vielleicht ist ein Beispiel angebracht. Ich kann kein Flugzeug fliegen, aber ich habe ein grundlegendes Verständnis dafür, wie das Cockpit aussieht und was ein Pilot beim Fliegen "tut".
Und ich bin kein ausgebildeter Zimmermann, aber ich kenne eine Säge oder einen Hammer, wenn ich einen sehe.
Wenn Sie jedoch beispielsweise etwas mit der Programmierung in Filmen zu tun haben, sind dies normalerweise nur mit Müll gefüllte Bildschirme (wie im grünen Text in der Matrix). Es sieht nicht so aus, als ob ein normaler Mensch dies tatsächlich tun kann . Darin ist nichts erkennbar. Jemand, der kein Programmierer ist, denkt einfach, es sei schwarze Magie.
Ich möchte ihr nicht das Fliegen beibringen oder Software programmieren. Aber ich möchte ihr einen grundlegenden Bezugsrahmen geben. Nur eine Idee von "ah, damit arbeiten Sie also. Es sind also nicht nur zufällige Symbole und Zahlen auf dem Bildschirm". Selbst eine einfache if
Aussage zu zeigen, wäre eine Offenbarung im Vergleich zu den zufälligen Symbolen und Zahlen im Matrix-Stil.
Einige von Ihnen haben vorgeschlagen, einen Algorithmus zu erklären oder Pseudocode zu verwenden, aber das möchte ich vermeiden. Ich möchte etwas, das einfach zeigt, wie der eigentliche Code aussieht, genauso wie Sie kein Tischler sein müssen, um eine Säge zu betrachten und eine grundlegende Vorstellung davon zu bekommen, was sie ist und wie sie funktioniert.
Als ich ein Kind war, haben wir einmal Urlaub in Italien gemacht. Auf dem Weg nach unten ließ mich der Pilot ins Cockpit des Flugzeugs. Natürlich habe ich nicht gelernt, wie man das Flugzeug fliegt. Aber ich habe einen Blick in die Welt des Piloten geworfen. Ich habe eine Vorstellung davon, wie sie das Flugzeug zum Laufen bringen, was der Pilot tatsächlich tut.
Das ist wirklich alles was ich tun möchte. Meine Freundin hat kein Interesse daran, Programmieren zu lernen, und ich möchte sie nicht zwingen, den Quellcode zu verstehen. Aber sie war neugierig, mit welchen Werkzeugen oder Entitäten ich arbeite. Sind es Symbole im Matrix-Stil, die über den Bildschirm scrollen? Reine Mathematik? Englisch in Prosaform?
Alles, was mich vermitteln möchte, ist das sehr hohe Verständnis von "Wie sieht es aus, wenn ich arbeite".
Antworten:
Um Ihre Frage direkt zu beantworten - wie Programmierung „aussieht“ , würde ich ihnen einen Ausdruck einer großen Anwendung zeigen. Spielzeug-Apps oder süße Dinge wie qsort in haskell geben wirklich die falsche Idee.
quelle
make
Ausgaben gesehen und behauptet haben, sie könnten nicht einmal das für ihr Leben verstehen?BASIC
Update: Als ich 12 war, brachte mein Cousin (er war 14) Turbo Pascal 7.0 und installierte es auf meinem Computer.
Er programmierte ein Tic Tac Toe-Spiel von Grund auf neu (im BGI-Modus für diejenigen, die es wissen).
Ich habe Schritt für Schritt beobachtet / beobachtet, wie sich ein Programm entwickelt, bis es zu einer vollständigen Anwendung wird.
Bis dahin wusste ich nur, wie man Strings in BASIC: -B druckt
Sie können eine ähnliche Sache tun. Paar-Programmierung. Nun, eigentlich wird deine Freundin eine Beobachterin sein, aber sie wird eine Idee bekommen;)
quelle
Warum nicht eine Sprache in Betracht ziehen, die es nicht gibt (oder gibt, wenn Sie so glauben) und Pseudocode verwenden ? Ich denke, je nachdem, was Sie erreichen möchten, würde ich das Beispiel einer Aufgabe betrachten, die der Person vertraut ist, aber in ein Pseudocode-Beispiel zerlegt wurde.
Ich finde die Idee des "Kochens" oder "Rezepts" im Allgemeinen gut geeignet, wenn ich Nicht-Programmierern Dinge erkläre.
Ich bitte die Person, sich vorzustellen, sie hätte ein ziemlich komplexes Rezept - z. B. ein Curry- und Reisgericht. Ich schlage dann vor, dass sie versuchen sollten, es für jemanden aufzuschreiben, der absolut keine Ahnung hat, was sie tun, damit sie es kochen können.
Es gibt ganz bestimmte Phasen:
Ich bin sicher, Sie können sehen, wohin das führt ...;)
Es gibt viele Ähnlichkeiten mit Kochen und Programmieren (wie bei vielen Dingen, aber mehr Menschen haben ein Verständnis für Kochen als für den Bau eines Hauses). Es gibt Stufen / Ähnlichkeiten (wie ich es sehe):
Grundsätzlich denke ich, dass das Unterrichten von Programmieren ein allgemeines Thema ist - ich würde nicht unbedingt aus einer Sprache unterrichten, es sei denn, Sie hätten einen zwingenden Grund dafür . Lehren Sie stattdessen zunächst aus dem Abstrakten, bis sie zumindest die Grundlagen verstehen, wie Dinge zusammenfallen könnten. Dann fällt es ihnen möglicherweise leichter, wenn sie vor einem Monitor und einer Tastatur sitzen.
Ich denke, es gibt möglicherweise keine "richtige Antwort" für diese. Aber ich denke, vielleicht ein paar wirklich gute Ideen, von denen man vielleicht etwas nehmen könnte.
quelle
Ich würde erklären, dass die Programmierung detaillierte Anweisungen enthält, damit der Computer komplexe Aufgaben ausführen kann.
Wie macht man zwei Tassen Kaffee?
Wasser kochen
Kaffee in der Tasse
Milch hinzufügen
Wiederholen Sie 3 bis 6
quelle
Es sieht ein bisschen so aus. Manchmal.
quelle
Vielleicht konzentriert sich jeder zu sehr auf den Code und nicht auf Werkzeuge. Möglicherweise ist es am besten, ihr ein Projekt in einer IDE zu zeigen und wie es verschiedene Quelldateien und möglicherweise einige schematische Dinge wie ein Datenbankschema oder einen visuellen Benutzeroberflächendesigner enthält. Visual Studio, Eclipse oder Xcode sind weit entfernt von dem mentalen Bild der meisten Menschen, schnell blinkende grüne Symbole auf schwarzem Hintergrund zu scrollen.
quelle
Ich denke, Sie sollten eine große Win32-Anwendung herunterladen, die in der Assemblersprache AT & T geschrieben ist, und sie ihr im Notizblock zeigen und ihr sagen: "Wie Sie sehen, braucht ein Übermensch wie ich, um zu programmieren."
quelle
Codieren Sie etwas, das für einen Nicht-Programmierer einen nachvollziehbaren Wert hat. Wenn ich meiner Mutter Quicksort demonstrieren würde, wäre es nicht von Nutzen.
Fragen Sie die Person nach ihren Interessen. Wenn er / sie zum Beispiel an der Börse ist, hacken Sie ein Skript zusammen, das einige Aktienstatistiken von einer geeigneten Webseite liest und sie zu einem Excel-Blatt (verwenden Sie csv, um schwere Hirnschäden zu vermeiden ^^) oder vielleicht zu einem schönen Diagramm zusammenstellt .
Wenn die Person Twitter verwendet, codieren Sie etwas, das die Follower ihrer Follower zählt, oder ähnliches.
Diese Aufgaben sind einfach genug, um in sehr kurzer Zeit erledigt zu werden, und sie verwenden bereits viele der grundlegenden Tools, die wir Programmierer verwenden, wie Schleifen, Bibliotheken (für alle beteiligten http-Inhalte), möglicherweise Rekursion.
Nachdem Sie fertig sind oder während Sie programmieren (noch besser), können Sie erklären, wie Ihr Programm seine Magie ausübt.
Halten Sie es einfach und sprechen Sie in menschlicher Sprache. Wenn Sie ihnen Megabyte Code zeigen und über Dinge wie die prototypische Vererbung sprechen, schüchtern Sie sie einfach ein und sie verlieren sofort das Interesse.
quelle
Um meiner Frau eine Vorstellung davon zu geben, was ich tue, um einen Gehaltsscheck einzubringen (Es ist echte Arbeit! Ich verspreche! Wir surfen nicht nur den ganzen Tag im Internet!), Setzte ich mich eines Abends mit Python zu ihr und zeigte ihr ein paar Die Grundkonzepte: Aufrufen einer Funktion (Drucken), Zuweisen und Lesen einer Variablen sowie Funktionsweise einer if-Anweisung. Da sie Lehrerin ist, habe ich das Konzept der Bedingungen mit der Arbeit mit Vorschulkindern verglichen :)
IF you hit Jonny THEN you're in time out OTHERWISE you can have a snack.
Nachdem ich einige der sehr hochrangigen Konzepte durchgesehen hatte, zeigte ich ihr den Code für ein einfaches Zahlenschätzspiel und ließ sie ihn spielen, während sie den Code durchgesehen hatte.
Abgesehen von dem etwas abstrakten Konzept des "Imports" ist dies ein sehr einfaches Beispiel, das leicht zu befolgen und mit dem, was auf dem Bildschirm passiert, "verbunden" ist, ganz zu schweigen davon, dass es tatsächlich etwas Interessantes und Interaktives bewirkt. Ich glaube, meine Frau hat sich von der Erfahrung verabschiedet, die durch das gesamte Konzept etwas weniger verwirrt war, ohne wirklich viel über Code wissen zu müssen.
Ich denke, der Schlüssel ist, dass jemand den Code sehen kann UND das Endergebnis nebeneinander.
quelle
Es gab ein CLI-Grafikpaket namens LOGO , das am besten für Turtle Graphics bekannt ist und zum Zeichnen von Formen auf dem Bildschirm mit Befehlen wie
LT 90, RT 105
usw. verwendet wird. Wenn Sie das finden, wäre es eine schöne Erfahrung, etwas von mittlerer Komplexität zu zeichnen.LOGO - Logikorientierte grafikorientierte Programmiersprache.
Weitere Informationen finden Sie unter Logothings oder Wikipedia, die auch Links zu modernen Logo-Interpreten enthalten.
quelle
Dann: (Quelle: markharrison.net )
Jetzt:
quelle
Als meine 5-jährige Tochter mir die Frage stellte, ließ ich sie das Programm für einen kleinen Pfeil "Roboter" "entwickeln", der ihn mit Hilfe von Flussdiagrammen in die obere linke Ecke des Bretts bringt, die Bewegungen, Drehungen und Bewegungen anzeigen Bedingungen. Ich denke, das gilt auch für Erwachsene.
Ich beanspruche die Erfindung dieser Antwort jedoch nicht.
Über Ihre Bearbeitung : Ich fürchte, Programmierer haben noch weniger Ahnung von der Idee, die andere über das Programmieren haben. ;-) Die Leute denken, dass das Programmieren eine matrixartige Korruption der grünen Grafikkarte ist, genauso wie sie denken, dass Spione alle mit James Bonds High-Tech-Spielzeug ausgestattet sind. Und jeder Fachmann auf irgendeinem Gebiet ist normalerweise irritiert, wenn er sich den Film über seinen Job ansieht. Weil der Filmemacher keine Ahnung hat! Wissen wir andererseits , wie man die Programmierung im Film richtig darstellt ? ;-);
quelle
Ich habe festgestellt, dass der beste Ansatz, um "jemandem beizubringen, was Programmieren ist, ohne ihm das Programmieren beizubringen", darin besteht, einfach alles fallen zu lassen, was mit einer bestimmten Programmiersprache zusammenhängt.
Stattdessen (vorausgesetzt, sie sind tatsächlich interessiert) würde ich sie durch die Implementierung einer Funktion in einem Programm wie einer einfachen Bankkreditanwendung ansprechen (die meisten Menschen mussten sich irgendwann mit Krediten befassen, wenn sie über einem bestimmten Alter sind). und dann Löcher in alle Annahmen stechen.
Was soll passieren, wenn der Benutzer einen negativen Kreditbetrag eingibt? Was ist, wenn sich der Benutzer das Darlehen nicht leisten kann? Wie würde der Kreditantrag das wissen? Wie würde der Kreditantrag wissen, welches Bankkonto zu überprüfen ist und welche Zahlungshistorie zu überprüfen ist (dh wer ist der Benutzer tatsächlich)? Was passiert, wenn der Benutzer versucht, seinen Namen in das Feld Darlehensbetrag einzugeben? Was ist, wenn der Benutzer versucht, den Kredit über 75 Jahre aufzunehmen? Sollten wir die Auswahl auf eine Liste der verfügbaren Längen beschränken?
Und am Ende: Beim Programmieren werden alle diese Regeln übernommen und in einer Sprache geschrieben, die der Computer versteht, sodass diese Regeln genau eingehalten werden. Wenn es notwendig erscheint, würde ich an dieser Stelle einen einfachen Code herausziehen, damit die Gesamtsprache betrachtet werden kann, und dann möglicherweise eine der Regeln in dieser Sprache ausschreiben.
Bonuspunkte, wenn Sie Ihren Freund dazu bringen können, darauf zu reagieren: Aber was ist, wenn wir etwas vergessen haben? Nun, dann haben wir Fehler und jetzt wissen Sie, warum kein Softwareprogramm auch fehlerfrei ist :)
quelle
Definitiv etwas entweder mit Grafiken oder Fenstern in einer höheren Sprache.
Warum? Ein Nicht-Programmierer ist normalerweise auch kein Nicht-Mathematiker, deshalb bekommt er nicht die Schönheit des Sortierens. Es kann jedoch Wunder wirken, wenn etwas auf einem Bildschirm gezeichnet wird ("Schau, ein Fenster!", "Schau, so wenig tippen und wir haben eine rotierende 3D-Box!").
quelle
Wie sieht es aus, wenn du arbeitest?
Es sieht aus wie Tippen.
Im Ernst, das Programmieren ist so, als wäre Legos Text, und um ein großes Lego-Haus zu bauen, musste man viel Text genau richtig eingeben und die richtigen Stifte mit den richtigen Löchern verbinden. So beschreibe ich es allgemein.
quelle
Es ist wirklich schwer zu verstehen, wie Programmierung nur anhand eines Quellcodebeispiels aussieht, weil es so abstrakt ist.
Es ist nichts Falsches daran, mit der Hallo Welt zu beginnen, solange Sie zeigen können, was der Computer tatsächlich damit macht. Sie können dann jeweils ein Konstrukt einführen. So ist Programmieren - inkrementelle Änderungen vornehmen und die Ergebnisse sehen.
Sie haben also ein Hallo-Welt-Programm. Ändern Sie es jetzt in
dann das if-Konstrukt
Zeigen Sie dann, dass das letzte Programm fehlschlägt, wenn es eine andere Antwort als "Ja" oder "Nein" erhält, und wie Sie es beheben würden ....
und so weiter. Ich glaube nicht, dass Sie sich mit tiefen Konzepten wie Rekursion oder sogar Funktionen befassen müssen.
Es spielt keine Rolle, welche Programmierung Sie dafür verwenden, solange Sie auf einem Computer das Ergebnis dieser verschiedenen Programme anzeigen können. (obwohl diese Pseudocode-Beispiele wahrscheinlich ziemlich nahe daran sind, eine gültige Python zu sein)
quelle
Robotik ist großartig, um das Programmieren zu erklären, denke ich, denn selbst einfache, erfundene Beispiele sind praktisch. Das Robotik-Äquivalent von Hello World oder das Drucken einer Liste von Zahlen kann dazu führen, dass sich der Roboter in einer Linie bewegt oder in einem Kreis dreht. Für einen Nicht-Programmierer ist es leicht zu verstehen, dass ein Roboter, um ALLES Nützliche zu tun, sich zuerst bewegen und positionieren muss. Auf diese Weise können Sie die einfache Programmstruktur und Flusskontrolle erläutern.
Sie möchten, dass sich der Roboter vorwärts bewegt, aber nur, wenn nichts seinen Weg blockiert. Dann soll es sich drehen und wieder bewegen. Dies ist eine einfache Routine mit grundlegender Flusskontrolle, und die von Ihnen aufgerufenen Funktionen sind ziemlich einfach zu verstehen (wenn Ihre Plattform ohnehin anständige Abstraktionen aufweist).
Möglicherweise funktionieren auch Grafiken. Alles, was sofortige Ergebnisse hat. jQuery sogar, weil jeder mit rotierenden Bildern und Webanimationen vertraut ist. Selbst erfundene Beispiele wie das Herumschieben von Elementen im DOM haben einen leicht erkennbaren Effekt, und die meisten Leute werden verstehen, was und warum die Anweisungen im Programm tun.
Dinge wie Robocode und LOGO sind wahrscheinlich wirklich gut dafür.
quelle
(Quelle: wikimedia.org )
Vielleicht könnte eine Metapher die eines Komponisten sein, der eine Partitur schreibt. Die Aufgabe eines Komponisten ist die intellektuelle Tätigkeit des Musikschaffens. Mit einer Partitur sagt der Komponist dem Pianisten, was er spielen soll, und er tut dies anhand präziser Anweisungen (Noten, Pausen usw.). Wenn die "Anweisungen" nicht präzise genug sind, spielt der Pianist etwas anderes.
Die Aufgabe eines Softwareentwicklers ist die intellektuelle Aktivität zur Lösung von Problemen (Probleme, die mit der automatisierten Verarbeitung von Daten zu tun haben). Mit dem Quellcode teilt der Entwickler dem Computer mit, was zu tun ist, und er tut dies anhand präziser Anweisungen. Wenn die Anweisungen nicht präzise genug sind, führt der Computer etwas anderes aus und löst das Problem nicht richtig.
quelle
Ich würde einfach etwas in Pseudocode schreiben, das zeigt, wie man einen Computer benutzt, um ein alltägliches Problem zu lösen. Vielleicht bestimmen, in welchem Geschäft eine bestimmte Einkaufsliste oder eine solche billiger ist.
quelle
Warum nicht einfach das Zeitraffervideo Ein Tag im Leben eines Scrum-Teams zeigen ?
quelle
Ein Programmierer schreibt Anweisungen für die Ausführung durch den Computer.
Das Ausführen des Programms führt dazu, dass der Computer diese Anweisungen tatsächlich befolgt.
Ein Beispiel ist, dass ein Koch einem Rezept folgt, um einen Laib Brot zu backen. (auch wenn es in ihrem Kopf ist) ... das ist Programmierung. Im Gegensatz zu meiner Frau folgt der Computer jedes Mal genau dem Rezept. Meine Frau macht es in ihrem Kopf und es wird jedes Mal anders, aber lecker ;-)
Wenn Sie dies genauer lehren möchten, ist Pseudocode leicht zu verstehen.
z.B
Das Schöne am Pseudo-Code ist, dass fast jeder ihn verstehen kann, und genau darum geht es.
quelle
Möchten Sie ihr zeigen, wie Programmierung aussieht? Pop einfach ein Terminal und
quelle
Überrascht ist dies noch offen und überrascht, dass noch niemand diese Antwort gegeben hat. (Ich denke. Ich habe möglicherweise versehentlich eine der 40 Fragen übersprungen, die sowieso niemand lesen wird.)
Ihre Antwort ist in Ihrer Frage
Das ist alles was du tun musst. Wählen Sie eine kurze Übung aus einem Tutorial . Eine etwas längere Benutzeroberfläche könnte aufgrund der hinzugefügten Grafik ebenfalls von Vorteil sein. (Spiele könnten die Länge etwas verlängern.) Und lassen Sie sie Ihnen beim Codieren zuschauen . Das ist es. Es ist dasselbe wie Ihr Pilotbeispiel.
Es gibt auch eine Reihe von Online-REPLs , mit denen Sie Ihren Code noch unmittelbarer beobachten können.
quelle
Ich sage, zeig ihm Blasensorte.
Es ist ein einfacher, verständlicher Trick, der in eine formale Sprache umgewandelt wurde.
Darum geht es in unserem Job. Unsere Ideen in einer strengen, formalen Sprache ausdrücken, die selbst eine Maschine verstehen kann. Ein bisschen ähnlich wie beim Entwerfen von Verfahren für das Organisationsdesign.
quelle
Codieren Sie schnell etwas, das Börsenkurse liest und in eine Excel-Tabelle schreibt. Dies ist mit wenigen Minuten einfach genug und beeindruckt nicht-technische Typen sehr schnell, da sie den praktischen Wert erkennen.
quelle
Meine übliche Wahl ist es, eine Reihe von Kundendatensätzen aus einer Datenbank abzurufen. Bei Verwendung von C # und LINQ in Visual Studio dauert das Erstellen einer Webseite und das Speichern der "Northwind" -Datenbankkunden in einem Raster höchstens 10 Minuten. Das Schöne ist, dass eine "Kundenliste" etwas ist, das fast jeder verstehen kann.
quelle
Hängt völlig von der Höhe ihres Interesses ab (oder von Ihrem Interesse an ihr ). Die meisten Leute stellen diese Frage als müßiges Gespräch und wollen es nicht wirklich wissen.
Programmieren ist mehr als Algorithmen (wie "Wie man eine Tasse Kaffee macht"), es ist auch grundlegend in der Mathematik verwurzelt. Die meisten Menschen werden schnell durch die subtile Verwendung mathematischer Begriffe (was ist eine "Funktion"?) Stolpern.
Um wirklich Programmieren zu unterrichten, kann es hilfreich sein, an Ihre eigenen ersten Programmiererfahrungen, Ihren ersten Programmierlehrer, Ihre erste Programmiersprache zurückzudenken. Wie hast du gelernt? Welche Fähigkeiten hatten Sie beim Lernen bereits im Kopf (dh Kalkül)? Was hat Sie motiviert zu verstehen, was eine Variable ist oder warum es drei verschiedene Arten von Schleifen gibt?
Sprachlich: Verwenden Sie so etwas wie Python. Wirklich hohe, nicht lockige Klammer wahrscheinlich besser.
quelle
Alice, die bei Carnegie Mellon entwickelt wurde.
quelle
Im Pseudocode:
Dies demonstriert das Konzept von Funktionen, Objektorientierung und Zeichenfolgen in einer C-ähnlichen Syntax (wenn ich C-ähnliche Syntax sage, beziehe ich mich auf die seltsamen Zeichen).
Es zeigt auch, wie Code wiederverwendet werden kann. Beachten Sie, dass ich mich nicht wundern würde, wenn es eine Sprache gäbe, die diese Syntax akzeptiert, obwohl es sich um Pseudocode handelt (vielleicht erlaubt JavaScript dies?).
Sie können dieses Beispiel auch an Schleifen anpassen. Ich hoffe, dies hilft dieser Person zu zeigen, wie ein Programm aussieht (da es eine realistische Syntax ist und relativ leicht zu verstehen ist).
quelle
Ich unterrichte seit vielen Jahren Programmieren und habe herausgefunden, dass die Anzahl der Erklärungsmöglichkeiten der Anzahl der Schüler entspricht. Eine Methode, die meistens funktioniert, ist folgende:
Der gesamte Code ist nur eine Abkürzung für natürliche Sprache. In vollem Englisch geschrieben scheinen die meisten Programme trivial zu sein.
Ein guter Algorithmus ist eine andere Geschichte. Es ist traurig zu sehen, dass viele Informatikkurse keine Algorithmen mehr lehren oder darüber streichen.
quelle