Was ist ein gutes Beispiel, um einem Nicht-Programmierer zu zeigen, wie Programmierung „aussieht“?

75

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 ifoder whileein 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 << xx ausgedruckt? Warum nicht eine "normale" Funktionsaufrufsyntax? Und printfist 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::stringund 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 ifAussage 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".

jalf
quelle
44
Ich vermute, dass sie nicht mehr interessiert ist und dass Sie als besessen davonkommen, wenn Sie versuchen, es noch einmal genauer zu erklären.
Bretonischer
17
Aber wenn Sie zum Beispiel etwas mit dem Programmieren in Filmen zu tun haben, sind es normalerweise nur mit Müll gefüllte Bildschirme : Das ist auch eine ziemlich gute Zusammenfassung der echten Programmierung, nicht wahr?
Nur jemand
15
Was, du sagst mir, dass ihr nicht programmiert, indem ihr den ganzen Tag nur Zahlen im Stil einer grünen Matrix betrachtet? Mann, kein Wunder, dass C # so schwer zu fassen war.
Lasse V. Karlsen
15
"Jemand, der kein Programmierer ist, denkt einfach, es sei schwarze Magie." - Bitte ruinieren Sie diese Illusion nicht. wir müssen irgendwie unser Geld verdienen. :)
Jeff
18
Als meine Frau mich eines Tages von zu Hause aus arbeiten sah, war sie sehr enttäuscht zu entdecken, dass die 'Insektenjagd' nicht so aufregend ist, wie es sich anhört ...
Paddy

Antworten:

36

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.

anon
quelle
Ja, das könnte tatsächlich der beste Ansatz sein. Lassen Sie sie einfach einen Blick auf den aktuellen Code werfen, mit dem ich gerade arbeite
20.
39
Wenn sie anfängt, Ihren Einrückungsstil oder Ihre schlechte Verwendung von STL-Algorithmen zu kritisieren, werden Sie diesen Ansatz möglicherweise bereuen.
6
Haha, wenn sie das tut, kann sie das Debuggen der Rennbedingungen übernehmen, die ich in der letzten Woche verfolgt habe ... Das wird sie lehren! ;)
Jalf
Aber stellen die Leute diese Fragen normalerweise nicht, nachdem sie einen Bildschirm voller makeAusgaben gesehen und behauptet haben, sie könnten nicht einmal das für ihr Leben verstehen?
Michael Krelin - Hacker
1
Das ist es, was ich letztendlich getan habe. Eigentlich schaffte ich es endlich, den Fehler zu beheben, den ich gejagt hatte, als sie das erste Mal gefragt hatte, und zeigte ihr einfach die falsche Linie und was ich durch sie ersetzt hatte. Wie auch immer,
ich
51

BASIC

10 PRINT "Sara is the best"
20 GOTO 10

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;)

Nick Dandoulakis
quelle
12
Eigentlich denke ich, dass dies die bisher beste Idee ist.
3
Es ist sicherlich die beste Sara :).
Liran Orevi
Vorausgesetzt, wie oft sie jetzt gelobt wird ... (die Antwort wurde laut SO vor 37 Minuten eingereicht)
Michael Krelin - Hacker
3
+1 für die Paarprogrammierung und die Tatsache, dass Sie sie Schritt für Schritt durch die Show führen und ihr zeigen können, dass die Ausgabe ziemlich cool klingt!
Melaos
3
+1 zumindest für die Erwähnung von BGI :) --- Als Randnotiz war meine Oma sehr stolz, als sie ihren Namen in einem meiner ersten Grundprogramme sah - Else.
Peterchen
41

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:

  • Sammeln Sie die Zutaten und Werkzeuge für den Job.
  • Bereiten Sie die Zutaten vor. Das ist komplex. z.B
    • Holen Sie sich 3 kleine rote Paprika.
    • Für jeden roten Pfeffer, den Sie haben, hacken Sie ihn in Stücke von etwa 1 cm im Quadrat.
    • Legen Sie die roten Pfefferstücke für später in eine Schüssel.
  • Rufen Sie dazu die Funktion "Reis vorbereiten" auf und lassen Sie diese asynchron im Hintergrund arbeiten, während Sie mit dem Kochen fortfahren.

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):

  • Sammeln : (Erklärung, was erforderlich ist, um das Ziel zu erreichen und zusammenzubringen).
  • Vorbereitung : Zerhacken der Zutaten oder Vorbereiten der Datenverbindungsobjekte usw. für den ersten Gebrauch.
  • Asynchron : Die Fähigkeit, eine Sache laufen zu lassen, während eine andere läuft.
  • Funktionen : Die Reisherstellung, das Hühnerkochen und das Currykochen erfordern separate Prozesse und erst am Ende können Sie die Funktion makeCurry (Hühnerfleisch, Reis) verwenden.
  • Testen : Stellen Sie sicher, dass Sie im Laufe der Zeit keine Teile verpassen und dass alles reibungslos verläuft - z. B. um sicherzustellen, dass das Huhn gekocht wird, bevor Sie zur nächsten Stufe übergehen.
  • Müll : Sobald Sie fertig sind, müssen Sie sicherstellen, dass Sie aufräumen. ;)
  • Grundsätze für bewährte Verfahren : Es gibt effiziente Methoden, um Dinge wie das Kochen zu erledigen. Anfängliche Programmierer müssen zusätzlich zum Code lernen - manchmal kann es schwierig sein, sich zurechtzufinden. zB TROCKEN, wie man effizient mit einem Messer hackt & kein rohes Huhn isst;)

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.

Amadiere
quelle
9
Gute Antwort. Endlich konzentriert sich jemand eher auf die Prinzipien des Programmierens als auf geekige Dinge, die für Nicht-Programmierer fast bedeutungslos sind.
CesarGon
5
In vielen Fällen würde ich zustimmen, aber in diesem Fall denke ich, dass es das geekige Zeug ist, das am relevantesten ist. Ihre Frage war nicht "Wie schreibt man ein Programm?", Sondern einfach "Wie sieht es aus? Starren Sie nur auf einen Bildschirm voller Zahlen?" Ich denke, die beste Antwort ist, einen tatsächlichen Code zu zeigen und zu zeigen, dass darin eine tatsächliche Bedeutung und Struktur verborgen ist. Was es tatsächlich bedeutet, ist weniger relevant. Es spielt keine Rolle, ob sie den Code lesen kann, aber ob sie erkennen kann, dass er aus einigen englischen Wörtern besteht (wenn, während), und kleine mathematische Ausdrücke (x = y + z) geben einen grundlegenden Bezugsrahmen.
Jalf
3
Dem kann ich überhaupt nicht zustimmen. Diese Art von Kommentar ergibt sich aus einem grundlegenden Missverständnis darüber, wie Lernen funktioniert. All diese abstrakten Konzepte haben das Programmieren für Sie möglicherweise verständlicher gemacht , aber nur, weil Sie bereits Hunderte konkreter Beispiele und wahrscheinlich einige Erfahrungen mit dem Programmieren hatten. Was sich jemand völlig neu sehnt, sind diese konkreten Beispiele für das tatsächliche Programmieren mit echtem Code, ansonsten gibt es nichts, worauf man diese abstrakten Konzepte beziehen könnte, keine persönliche Erfahrung, für die es relevant ist. Es ist auch viel zu viel.
Bretonischer
Entschuldigung, mein Kommentar war an CesarGon und Amadiere gerichtet, nicht an Jalf
Breton
Ich halte an meinem Kommentar fest, dass Pseudocode für das, was die Person erreichen möchte, ausreichen würde. Es sieht ausreichend nach Code aus, um eine codierte Struktur anzuzeigen, und bietet gleichzeitig wichtige Details. Wenn sie Programmieren lernen möchte, sind Sprachen mit Sicherheit erforderlich. Aber um jemandem zu zeigen, was Sie erwarten könnten, anstatt 1 & 0s - Pseudocode (imho) ist ideal. Wenn Sie jedoch beabsichtigen, einen tatsächlichen Code anzuzeigen, würde ich ihr etwas zeigen, das Sie kennen und das Sie gut genug erklären können (und ich würde von einer großen Länge abraten).
Amadiere
35

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?

  1. Füllen Sie den Wasserkocher
  2. Wasser kochen

  3. Kaffee in der Tasse

  4. Gießen Sie auf Wasser
  5. Zucker hinzufügen
  6. Milch hinzufügen

  7. Wiederholen Sie 3 bis 6

jbochi
quelle
9
Dies ist zwar nützlich, um die Disziplin des Programmierens zu beschreiben, vermittelt jedoch keine Vorstellung davon, wie Programmcode "aussieht". Jalfs Freundin fragte, ob er sich beim Programmieren nur Zahlenlisten ansieht: Sie möchte visualisieren, mit welchen Entitäten Jalf arbeitet. Ich denke, er möchte zB Funktionen, Klassen und Variablen zeigen: die Kessel und Tassen der Programmierung , nicht der Kaffeezubereitung.
Itowlson
5
Code ist nur eine Schritt-für-Schritt-Anleitung. Ich denke, dies ist ein perfektes Beispiel dafür, wie Programmierung "aussieht", ohne das ziemlich beängstigende Arsenal an Terminologien und Sprachen anzuzeigen. Und soweit wir wissen, wird die Programmierung eines Tages so sein.
Kowsheek
1
Ich mag dieses Beispiel, wirf ein 'wenn der Wasserkocher leer ist' zu 1. Dann hast du eine Programmierstruktur.
Qwark
1
Ich wollte das nur vorschlagen, als ich diesen Beitrag sah. Ich sage immer neugierigen Leuten, dass Codierung wie das Schreiben von Lebensmittelrezepten ist. Es ist eine anständige Analogie für das, was ein Algorithmus ist.
1
Ich denke, dass das Beispiel wirklich schlecht ist, aber vielleicht weil ich noch nie eine Kaffee-App geschrieben habe. Sie programmieren nicht außerhalb der Arbeit, oder?
Kapitel
24

Ein Junior-Programmierer bei der Arbeit

Es sieht ein bisschen so aus. Manchmal.

Stephen C.
quelle
6
+1 für die LOLs. (Und weil ich dieses Programm schon einmal getestet habe!)
Toji
15

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.

Reich
quelle
Ja, das habe ich auch gedacht. Führen Sie sie einfach für einige Momente in Ihrer Arbeitsumgebung herum, wie ich hier klicke, um sie auszuführen, hier, um Dateien zu öffnen, hier bearbeite ich den Text usw.
Fabian Steeg
13

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."

Carson Myers
quelle
7
+1. Wenden Sie schließlich die Maxime an: "Ihr Benutzer ist 22 Jahre alt und befindet sich in einem Studentenwohnheim. Wie wird diese Software ihn verlegen?" Überlauf stapeln. Du bist ein Revolutionär, Mann.
Adrian Petrescu
Küken graben Unix-Gurus? Verdammt dieser Fluch der MS, der meine Rechnungen bezahlt!
Jason D
1
LOL @ Carson Myers 'Kommentar ... Ein bisschen so, wie ich eine Pfütze mit Erbrochenem aufräumte, NOCH MEHR als zwei Pfützen aufzuräumen. :)
j_random_hacker
(
Ich
10

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.

selfawaresoup
quelle
1
Ich liebe die Idee, Twitter einzubeziehen. Vielleicht machen Sie es mit HTML und JS / jQuery: Auf diese Weise können Sie etwas aufpeppen, das sie auch auf ihrem Computer sehen können. Verdammt, wirf es in die Interwebs. "Und jetzt kann jeder dies nutzen, indem er auf example.com/myawesomestuff geht. Wie cool ist das?"
Samir Talwar
9

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.

# Guessing Game
import random

print("Guess a number between 1 and 100: ")

target = random.randint(1, 100)
guess = 0
guess_count = 1

while guess != target:
    guess_count += 1
    guess = int(input())

    if guess == target:
        print("Correct!")
    if guess < target:
        print("Higher...")
    if guess > target:
        print("Lower...")

print("Congratulations! You guessed the number in " + str(guess_count) + " guesses!")

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.

Toji
quelle
8

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 105usw. verwendet wird. Wenn Sie das finden, wäre es eine schöne Erfahrung, etwas von mittlerer Komplexität zu zeichnen.

LOGO - Logikorientierte grafikorientierte Programmiersprache.

REPEAT 360 [FD 1 RT 1] -- draws a circle, etc.

Weitere Informationen finden Sie unter Logothings oder Wikipedia, die auch Links zu modernen Logo-Interpreten enthalten.

Robert Paulson
quelle
Dies muss meine erste Einführung in die Programmierung gewesen sein. Es hat genug Grundlagen, damit die Leute verstehen, worum es beim Programmieren geht, ohne sie zu Tode zu langweilen.
Robert Paulson
6
dann kann dein Freund auf SO eine Frage stellen, wie man die Schildkröte im Logo bewegt ...
Antony
+1 Antonius. Ich würde mich auslachen, wenn ich hier eine LOGO-Frage sehen würde ... von der ich seit Jahrzehnten kein LOGO mehr gemacht habe ... es war ein bisschen ... na ja ... uninteressant für mich ... sogar bei Alter 12 ...
Jason D
Das wurde in meiner Grundschule unterrichtet! Ich kann nicht sagen, dass es jetzt etwas mit meinem Interesse zu tun hat. war vor langer Zeit. Sie könnten coole Dinge damit machen, ich erinnere mich, dass wir einige (relativ) beeindruckende Spiele zusammengestellt haben.
Nona Urbiz
@ Jason D: Vielleicht solltest du dir das mal ansehen. stackoverflow.com/questions/1003841/…
Samir Talwar
8
  1. Der Computerprogrammierer schreibt Programme.
  2. Während er nicht programmiert, nervt der Computerprogrammierer attraktive Frauen an seinem Arbeitsplatz.

Dann: (Quelle: markharrison.net )


Jetzt:

Mark Harrison
quelle
3
Sie sagen also, dass alle Programmierer sozial unfähige Männer sind. Es macht mich traurig zu sehen, wie Menschen dieses negative Stereotyp fördern. Ich gebe dir [1] wie vorgeschlagen zu lesen und lasse es dabei. [1] sas.upenn.edu/~nathanen/files/cbi-gender.pdf
Steve Landey
1
Ich bin ein Computer-Programmierer. Ich habe viele gekannt, die dem oben abgebildeten Stereotyp entsprechen ... und viele, die dies nicht tun. Ich habe immer noch ein gutes Lachen dabei.
Jason D
Steve, lass es dir gut gehen, es ist lustig, weil es als Stereotyp erkannt wird. Die beiden Bilder sind fast ein halbes Jahrhundert voneinander entfernt, aber im Wesentlichen identisch. Ich hatte gedacht, jeder würde den Coulter / SpiffWorld Code Monkey erkennen, aber ich habe dem Bild einen Link hinzugefügt. Probieren Sie es aus, es ist großartig!
Mark Harrison
8
hehe, ich stimme zu, wenn sich Programmierer nicht über Programmierer lustig machen können, über wen können wir uns lustig machen? :)
Melaos
1
Dies ist historisch ungenau. Auf dem oberen Foto war die junge Frau eher die Programmiererin, und der Creep ist eher eine Managerin.
Marcin
7

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 ? ;-);

Michael Krelin - Hacker
quelle
3
Manchmal ähnelt das Programmieren eher RoboRally ( en.wikipedia.org/wiki/RoboRally ) als ist völlig beruhigend.
Itowlson
1
Es gibt eine anfängliche Python-Programmierumgebung namens [Guido van Robot (oder GvR)] [1], die wirklich sehr gut gemacht ist. Überraschenderweise muss man lernen, ein kleines Robotersymbol auf verschiedene Arten um ein Gitter zu fahren. [1]: gvr.sourceforge.net
Peter Rowell
itowlson, ich kannte die Technik vom Vorläufer des jetzt verfügbaren russischen Programms KuMir (kann mich nicht an seinen Namen erinnern) in der Schule Ende der 80er Jahre ;-)
Michael Krelin - Hacker
Peter, zuerst dachte ich, es wäre bequemer, wenn es weder Computer noch die Sprache gäbe. Es stellte sich jedoch heraus, dass das Schreiben von Schritten wie in Programmiersprachen eine akzeptable Technik ist, da sie 5 Jahre und 4 Monate alt ist, als wir
Michael Krelin - Hacker
6

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 :)

Lasse V. Karlsen
quelle
5

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!").

Kornel Kisielewicz
quelle
"Schau, so wenig tippen und wir haben eine drehbare 3D-Box!" - Und in welcher magischen Sprache arbeiten Sie, die eine drehbare 3D-Box in "so wenig Tippen" erzeugen kann? Die meisten meiner "Ich kann Haz Box!" Code ist mindestens um 100 LOC. (Erstellen Sie das Fenster, instanziieren Sie die 3D-Bibliothek, richten Sie die Matrizen ein, erstellen Sie die Verticies / Indizes, verschieben Sie sie in den Grafikspeicher, aktualisieren Sie Rotationen, binden und rendern Sie Verticies, SPRECHEN Sie nicht einmal über Texturen oder Beleuchtung ...)
Toji
Hier ist eine 3D-Box, die sich in "einer" Codezeile dreht , die jemand erstellt hat: codegolf.stackexchange.com/a/5168 Verwenden Sie dies nicht als Beispiel :)
1j01
5

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.

Eugene Efremov
quelle
Es ist, als würde man einen Kuchen backen, nur dass die Zutaten Wörter sind, und um ihn zu vereisen, musste man viele Wörter eingeben.
Breton
Es ist wie beim Hockeyspielen, nur dass der Hockeyschläger eine Tastatur ist, der Puck Wörter sind und die Ziele die richtige Syntax haben.
Breton
Es ist, als hätte man Angst vor einem Clown, nur dass die Worte, die Sie sagen, um den Clown zum Verschwinden zu bringen, Worte sind, und der Widerstand des Clowns, amüsant zu sein, ist wie Ihre tägliche Frustration mit dem Management Ihres Unternehmens
Breton
Es ist wie bei einem Burrito, nur dass die Bohnen Wörter sind, die Salsa die Anweisungen des Vorbereiters und die Tortilla der Compiler.
Breton
Es ist wie ein Theaterbesuch, nur dass das Drehbuch aus Worten besteht und Sie 5 Minuten vor der Pause nicht einschlafen.
Breton
5

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

string Name = getLine();
printf("Hello, %s", name);

dann das if-Konstrukt

printf("Do you like cake?");
string answer = getLine();
if(answer == "yes") {
    printf("Yeay! I like cake too!");
} else if(answer == "no") {
    printf("Filthy cake hating pig!");
}

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)

Breton
quelle
Mir hat das Beispiel in dieser Antwort gefallen, +1!
Carl Smotricz
4

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.

Matthew Olenik
quelle
4

Alt-Text
(Quelle: wikimedia.org )

{
   wait for 6/8;
   play F (5), sustain it for 1/4 and a half;
   play E flat (5), sustain it for 1/8;
   play D flat (5), sustain it for 1/8 and a half;
   play F (4), sustain it for 1/16;
   // ...
}

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.

Federico A. Ramponi
quelle
2
Bei der Musik wird vom Interpreten ausdrücklich erwartet, dass er eine künstlerische Interpretation der wörtlichen Noten auf der Seite erstellt, für die es viele mögliche Ausdrücke gibt. Computer haben keine solche Vorstellung. Daher wäre dieser Vergleich mit einem Musiker besonders schlecht.
Phil Miller
Dieser Vergleich würde wahrscheinlich NUR für einen Musiker Sinn machen. Wie viele Leute da draußen finden das Lesen von Musik genauso verwirrend wie das Lesen von Code?
Toji
@ Novelocrat: Natürlich stimme ich zu, dass Interpretation Teil der Geschichte ist, dennoch kann ein Computer auch geringfügige Variationen hinzufügen (nicht mit künstlerischer Absicht). Denken Sie zum Beispiel zufällig (). Außerdem wird viel zeitgenössische elektronische Musik tatsächlich mit Hilfe von "Programmen" geschrieben (in grafischen Programmiersprachen, mit Blockdiagrammen usw.)
Federico A. Ramponi
3

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.

jball
quelle
3

Warum nicht einfach das Zeitraffervideo Ein Tag im Leben eines Scrum-Teams zeigen ?

akuhn
quelle
2
Oh Gott, töte mich jetzt! ;-)
Tall Jeff
1
Das Problem ist, dass sich die meisten Programmierer mit dem identifizieren, was in diesem Video passiert, aber jeder andere wird eine Gruppe von Leuten sehen, die zu spät kommen, viel plaudern, ein langes Mittagessen einnehmen, vermasseln und nur gelegentlich mit den Händen in Richtung a winken Computer. (Ich weiß, was wir tun, aber wir wollen den Menschen jetzt nicht den falschen Eindruck vermitteln, oder?)
Toji
3

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

IF today's date is the 1st of may then
  print to screen "Happy Birthday"
ELSE
  print to screen "It's not your birthday yet"

Das Schöne am Pseudo-Code ist, dass fast jeder ihn verstehen kann, und genau darum geht es.

Matt
quelle
2

Möchten Sie ihr zeigen, wie Programmierung aussieht? Pop einfach ein Terminal und

find / 
gb.
quelle
2

Ü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

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.

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.

Eva
quelle
1

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.

Pavel Radzivilovsky
quelle
1
Aber ist das nicht das, was es zu einem guten Beispiel macht? Sie programmieren einen Computer nicht so, wie Sie einer Person Anweisungen geben. Computer haben keine Intuition; oder die Fähigkeit, eine richtige Verknüpfung zu sehen und zu nehmen. Die Tatsache, dass es sogar eine Blasensorte gibt, erklärt, dass wir überhaupt Programmierer haben. Viele Facetten der Programmierung hängen von der Tatsache ab, dass Computer schnell und nicht intelligent sind.
mmc
3
@ Set Ich schaue sie alle auf einmal und finde die größten. Was ich nicht mache, ist Karte 1 anzusehen, sie mit Karte 2 usw. in einer Schleife zu vergleichen.
3
Wenn ich eine große Anzahl von Gegenständen sortieren muss, beispielsweise wenn ich ungefähr tausend Bücher auspacken und in meinen Regalen ordnen musste, verwende ich eher eine Art Beilage.
Rich
1
Ja, ich würde sagen, die Einfügungssortierung ist ein normaler menschlicher Algorithmus (obwohl wir, wie Neil betonte, normalerweise größere Stapel als 2 Karten gleichzeitig betrachten können, um die größte Karte zu finden. Aber sobald wir die größte haben, haben wir normalerweise mache so etwas wie Einfügungssortierung.)
Jalf
1
@Neil, Vielleicht ist deine Fähigkeit, sie alle auf einmal zu betrachten, eine Abstraktion über den tatsächlichen Sortieralgorithmus deines Gehirns :) Du weißt, dass es einen geben muss.
Carson Myers
1

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.

ennuikiller
quelle
Es geht aber nicht wirklich darum, "zu beeindrucken", sondern ihnen nur eine Vorstellung davon zu geben, wie Code "aussieht". Etwas, das im Grunde "Bibliothek A aufrufen" lautet, ist wahrscheinlich nicht ideal.
Jalf
1
Vielleicht war "beeindrucken" nicht das richtige Wort. Substitue "zeigt den Wert von" stattdessen
ennuikiller
Ja, aber ich möchte ihr wirklich eine Vorstellung davon geben, was es bedeutet, wenn ich sage, dass ich programmiere. Was schaue ich an, wenn nicht nur Tabellen mit rohen Zahlen oder Einsen und Nullen?
Jalf
Dies würde tun, da es Eingabe, Ausgabe und Berechnung beinhaltet (zeigen Sie den Durchschnitt der Aktienkurse oder etwas.
Ennuikiller
1

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.

Zylon Cat
quelle
1

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.

Seth
quelle
1

Alice, die bei Carnegie Mellon entwickelt wurde.

Alice ist eine innovative 3D-Programmierumgebung, mit der Sie auf einfache Weise eine Animation erstellen können, um eine Geschichte zu erzählen, ein interaktives Spiel zu spielen oder ein Video im Web zu teilen. Alice ist ein Lehrmittel für das Einführungscomputing. Es verwendet 3D-Grafiken und eine Drag-and-Drop-Oberfläche, um ein ansprechenderes und weniger frustrierendes erstes Programmiererlebnis zu ermöglichen.

Robert Paulson
quelle
Interessant, und ich habe beschlossen, es herunterzuladen. . . Dies könnte jedoch den falschen Eindruck von der heutigen Programmierung erwecken. . . "Reales Programmieren" ist visuell weit weniger anregend. . .
Jason D
1

Im Pseudocode:

function dealWithPerson(person){
    if(ILike(person)){
        getCookie().giveTo(person);
    }
    else{
        person.tell("You shall receive no cookies!");
    }
}

dealWithPerson(Person.fromName("Nick"));
dealWithPerson(Person.fromName("John"));

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).

luiscubal
quelle
Ich würde sagen, dieser Code ähnelt eher Java als C. . Es sei denn, Java wird als Ableger von C ...
Jason D
Funktion ist ein JavaScript-Schlüsselwort, kein Java / C-Schlüsselwort. Ich denke, dies ist eine JavaScript-ähnliche Syntax ... Aber ich stimme zu, dass der objektorientierte Teil davon weniger C-ish macht. Nicht dass eine nicht-technische Person es wissen würde.
luiscubal
1

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:

  1. Präsentieren Sie ein Flussdiagramm, das den Logikfluss einer einfachen Anwendung zeigt
  2. Schreiben Sie die Anweisungen in voller menschlicher Sprache (z. B. Englisch).
  3. Kürzen Sie jede Anweisung mit der in der Programmiersprache verwendeten Kurzschrift ab
  4. Wählen Sie für Unterrichtszwecke eine weniger kryptische Sprache wie Basic oder Pascal

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.

Square Rig Master
quelle