Was soll ich mit einer Gruppe von 16- bis 17-Jährigen tun, um sie für Informatik zu interessieren?

40

Ich werde in ein paar Wochen an einer Art Tag der offenen Tür an meiner Universität teilnehmen. Als Teil dieser Zeit bekomme ich (zusammen mit einem Kollegen) zwei Stunden lang eine ganze Gruppe von Schülern und ein Computerlabor, das groß genug ist, um sie alle aufzunehmen, und ich muss eine Art von tun Aktivität oder eine Reihe von Aktivitäten mit ihnen, um sie zu ermutigen, Informatik zu machen (idealerweise an meiner Universität, aber im Allgemeinen auch). Ich bin absolut ratlos, was hier zu tun ist, und begrüße alle Vorschläge.

Koz Ross
quelle
Ich bin kein Lehrer oder Experte, aber ich empfehle Ihnen, ihnen das Programmieren eines kleinen Puzzlespiels beizubringen (wählen Sie eines aus, dessen Verallgemeinerung NP-vollständig ist). )
Vor
1
Ich mochte die Weihnachtsvorträge der Royal Institution 2008 . Vielleicht möchten Sie ähnliche Aktivitäten / Demos ausprobieren.
Melhosseiny

Antworten:

21
  • Sie können Bilder mithilfe der kontextfreien Grammatik zeichnen. Kontextfreie Kunst Dies funktioniert auch für Menschen, die noch nie zuvor programmiert haben und sich an erfahrene Programmierer anpassen. Die Grundsprache lässt sich in einer halben Stunde leicht erklären.
  • Das Erlernen der Geometrie mithilfe von Turtle-Grafiken sollte ebenfalls hilfreich sein. Das Logo wurde für Kinder entwickelt, sodass Schüler kein Problem haben sollten. Es gibt nette Videos über Kinder, die Logo auf youtube benutzen
  • Wenn Sie einige MindStorms-Roboter in die Finger bekommen, macht das Programmieren viel Spaß.
  • Es gibt eine Vielzahl von Programmierspielen, in denen Sie Roboter programmieren, um sich gegenseitig zu bekämpfen, oder Assembly-Programme, die versuchen, sich in einer virtuellen Maschine gegenseitig zu überschreiben. Wikipedia zum Thema , verwandte Stackoverflow-Frage
  • Sie können auch über eine Art Hardwareprojekt nachdenken. Wenn Sie einen Mikrocontroller zum Blinken bringen, hängt dies beispielsweise von der Anzahl der ungelesenen E-Mails in Ihrem Posteingang ab.
  • Lassen Sie sie verschiedene Labyrinth-Generierungsalgorithmen implementieren und versuchen Sie, Kriterien zu finden, die Labyrinthe "für den Menschen schwierig" machen. Wenn es die Zeit erlaubt, erweitern die Algorithmen nicht nur die Korridore, sondern auch die Räume.
  • Kaufen Sie ein paar Arduinos und LEDs. Lassen Sie sie die Blitzlichter programmieren.
adrianN
quelle
1
Vielleicht möchten Sie der Liste die Links zu den Computer-Programmier-Tutorials der Khan Academy hinzufügen: Es ist eine wirklich coole / interaktive Ergänzung zu den obigen. Zum Beispiel: khanacademy.org/cs/intro-to-animation/830742281
PhD
+1 auch für die CFGs - eine andere Version desselben Begriffs, die zu versuchen und anzuwenden wäre, wäre zu versuchen, mit einem iterierten Funktionssystem Busch zu zeichnen; Lassen Sie sie mit einem Rechteck beginnen, richten Sie mehrere weitere Rechtecke ein und wiederholen Sie dann den 'Inhalt' des ersten Rechtecks ​​(einschließlich aller Unterrechtecke) in jedem der Unterrechtecke. Sie können zu Vergleichszwecken eine digitale Version einrichten.
Steven Stadnicki
13

Schauen Sie sich Computer Science Unplugged an . Von ihrer Website:

CS Unplugged ist eine Sammlung von kostenlosen Lernaktivitäten, die Informatik durch packende Spiele und Rätsel lehren, bei denen Karten, Schnüre, Buntstifte und viel herumlaufen.

Die Aktivitäten führen die Schüler in grundlegende Konzepte wie Binärzahlen , Algorithmen und Datenkomprimierung ein , getrennt von den Ablenkungen und technischen Details, die wir normalerweise mit Computern sehen.

CS Unplugged eignet sich für Menschen jeden Alters , von der Grundschule bis zu Senioren und aus vielen Ländern und Hintergründen. Unplugged wird seit über fünfzehn Jahren weltweit in Klassenzimmern, Wissenschaftszentren, Privathäusern und sogar für Urlaubsveranstaltungen in einem Park eingesetzt!

Pål GD
quelle
1
Dies ist ein netter Vorschlag, aber ich vermute, dass das OP etwas will, das tatsächlich das Computerlabor nutzt, das beiseite gelegt wurde.
András Salamon
Gutes Argument. Es sollte ein Robocode-Projekt für Leute geben, die keine Programmierkenntnisse haben.
Pål GD
11

Die meisten Informatik-Studenten, die ich kenne, betrachten das Erlernen des Programmierens als den schmerzhaftesten und demoralisierendsten Teil ihrer Ausbildung. Ich würde mich daher von allem fernhalten , was mit der Programmierung selbst zu tun hat. Wie Scphantm bereits betont hat, werden Sie wahrscheinlich auch keine Zeit dafür haben.

Was Sie suchen, ist eine zweistündige Übung, die zwei Ziele erfüllt:

  • Es ist aufregend genug, Abiturienten zwei Stunden lang zu interessieren.
  • Es wird ihnen einen Einblick in die Informatik geben und sie hoffentlich interessieren.

Das erste Ziel ist ziemlich unabhängig von dem, was Sie tatsächlich zeigen werden, und hat viel mehr damit zu tun, ein guter Lehrer / Moderator zu sein. Gute didaktische Praxis, dh das Publikum auf Trab zu halten, kleine Dinge in Gruppen ausprobieren zu lassen, alle 15 Minuten eine Verschnaufpause einzulegen und so weiter.

Das zweite Ziel ist etwas knifflig, und ich denke, dass es hier am besten funktioniert, ein Problem aufzugreifen, das mit dem aktuellen Wissen erklärt werden kann, zu zeigen, wie Sie die Lösung algorithmisch beschreiben können, und dann zu zeigen, wie diese Lösung analysiert werden kann und verbessert.

Ein gutes Beispiel ist das Problem des kürzesten Pfades in Diagrammen, das auch als GPS-Navigationssystem bezeichnet wird. Keine Erklärung nötig. Sie können ihnen eine kleine Karte mit eingezogenen Kantengewichten / -längen und einer Reihe von Buntstiften geben, um den Algorithmus tatsächlich so auszuführen, wie Sie ihn beschreiben.

Sie können dann eine Diskussion darüber beginnen, wie Sie einen kürzesten Weg finden würden, und so weiter. Lassen Sie sie versuchen, ihn als Algorithmus usw. zu formulieren. Dann beschreiben Sie den Dijkstra-Algorithmus und lassen sie die Knoten als besucht , vorläufig und farbig kennzeichnen nicht besuchte Sets. Bam. Du hast einen Algorithmus!

O

PNP

Pedro
quelle
9

Wenn Sie nur 2 Stunden Zeit haben, werden Sie nicht viel programmieren. Nur die Syntax zu lernen wird in dieser Zeit schwierig sein, aber es gibt viele Dinge, die stattdessen getan werden können.

Versuchen Sie als Anregung, ihnen die Steuerung des Flusses und die Wichtigkeit der Spezifität beizubringen:

  1. Teilen Sie die Klasse in 2, "Roboter" und die anderen "Programmierer".
  2. Überlegen Sie sich eine geeignete Herausforderung, für die eine einfache Logik, eine Schleife usw. erforderlich ist. Unten finden Sie ein Beispiel.
  3. Lassen Sie die "Programmierer" eine Liste mit Anweisungen schreiben, die den "Robotern" gegeben werden.
  4. Lassen Sie die "Roboter" die Anweisungen ausführen, aber lassen Sie die "Roboter" wissen, dass sie, wenn die Anweisungen verwirrend sind, anhalten, sich irren oder auf andere Weise verhalten dürfen, bis der "Programmierer" sie anhält und Fehler behebt. Garantiert, wenn eine Chance zum Spielen gegeben wird, wird ein Gymnasiast.

Als Beispielaufgabe stellen Sie einige Wannen mit verschiedenfarbigen Kugeln mit entsprechenden farbigen Papierstreifen an einer anderen Stelle und genügend kleinen Eimern für jedes Roboter / Programmierer-Paar auf. Die Aufgabe besteht darin, den Roboter dazu zu bringen, den Eimer mit Bällen zu füllen. Zu diesem Zweck können jedoch nur Bälle aufgenommen werden, die zu einem bestimmten Papierstreifen passen. Befinden sich in einer Wanne keine Bälle dieser Farbe mehr, muss der Roboter seinen Papierstreifen zurückgeben und einen neuen einsammeln.

Diese Aufgabe erfordert bedingtes Verzweigen, Schleifen, Fehlerbehandlung und prozedurales Denken. Alle Dinge, in denen ein Programmierer gut sein muss, unabhängig von der Sprache oder Aktivität.

Führen Sie so etwas zweimal aus, damit die "Roboter" und "Programmierer" tauschen können. Geben Sie zwischendurch eine kleine Lektion zu den oben genannten Denkmustern, und sie werden in der zweiten viel besser abschneiden, und schließen Sie mit einem kleinen Gespräch über die großen Ereignisse beim Programmieren ab - Besiegen der Nazis, Auf den Mond gehen, das Internet und Sie werden einen Raum mit potentiellen und engagierten Programmierern haben!


quelle
1
Warum kann ich das nicht mit +10 bewerten? Das ist eine großartige Idee.
Xynariz
@Xynariz danke! Ich habe es ein paar Mal mit wirklich kleinen Gruppen gemacht, und es wird im Allgemeinen zu gleichen Teilen lustig und frustrierend - aber die Frustration ist, dass sich "Roboter" schlecht benehmen und nicht Computer, die die Kinder noch nicht verstehen.
Manchmal scheinen die Leute nicht zu verstehen, dass Computer sehr, sehr gut darin sind, genau das zu tun, was Sie ihnen sagen. Nicht mehr und nicht weniger. Es gibt sogar eine CyberChase-Episode darüber ... (versteckt)
Xynariz
7

Ich habe viele Programmierer ausgebildet. Wenn Sie nur 2 Stunden Zeit haben, müssen Sie ihnen nicht das Codieren beibringen. Auch ein Computerraum ist nicht erforderlich. Um von Null auf Hallo Welt zu gelangen, verlierst du die Hälfte des Unterrichts und verbringst 45 Stunden deiner 2 Stunden mit Störungen und erledigst nichts.

Vielleicht haben Sie mehr Glück, wenn Sie ihnen zeigen, wie es ist, wie ein Programmierer zu denken. Geben Sie jedem von ihnen einen Block Papier und einen Stift und fordern Sie sie auf, ein Programm in ihrer eigenen Sprache zu schreiben, in dem sie lernen, wie sie ihr Handy vom Schreibtisch nehmen und einen Anruf tätigen können. Gehen Sie ihre Antworten durch. Wenn Ihnen ein Code nicht gefällt, können Sie die Programme durchgehen und ihnen sagen, wie sie besser werden und wie Sie die Details berücksichtigen können, die Sie benötigen. Bitten Sie sie dann, ein Programm mit eigenen Worten zu schreiben, um etwas anderes zu tun. Zieh deine Hose an, putze deine Zähne, öffne eine Tür, was auch immer. Machen Sie dasselbe mit diesem Programm.

Geben Sie ihnen einen Vorgeschmack darauf, wie es ist, wenn man wie ein Programmierer denkt. Sie werden mit Sicherheit mehr davon haben, als wenn Sie versuchen, ihnen in 2 Stunden Python beizubringen.

scphantm
quelle
6

Du könntest es mit Alice versuchen . Es ist eine IDE und API für 3D-Animation. Es verfügt über alle möglichen eingebauten Objekte (Kaninchen, Außerirdische, Bäume, Gebäude, ...), die Sie in einer Anfangsszene mit sehr hochstufigen Methoden platzieren können: wie walk(north)(die Arme und Beine animieren, während sich die Figur bewegt). und say("my name is Winky")was dazu führen könnte, dass eine Comic-Blase aus dem Mund des Charakters kommt.

Sie können Tastatur- und Mausereignisse einbinden, um interaktive Aktionen auszuführen.

Die zugrunde liegende Programmiersprache ist Java, aber die IDE bietet Ihnen eine grafische Variante, bei der Sie Teile von Ausdrücken in ein Editorfenster ziehen und dort ablegen. (Sie können keinen Syntaxfehler erstellen.)

Ich denke, Sie könnten alles mit einer Szene voreinstellen, so dass jemand ohne Programmiererfahrung in nur wenigen Stunden etwas Interessantes tun kann.

Wandering Logic
quelle
1
Ich würde zögern, diesen Ansatz zu verwenden; es könnte für jüngere Schüler funktionieren, aber Schüler an Hochschulen sehen es eher als kindisch an. Das heißt, dies ist ein schneller Weg, um etwas in der Frist von 2 Stunden
abzuschließen
6

Selbst die Codierung in einer Spielzeug- oder Grafiksprache scheint innerhalb einer Stunde weit hergeholt zu sein. Zur Hölle, ich bin mir nicht sicher, ob ich Alice in 2 Stunden wieder abholen und alles tun könnte, was sich lohnt. Vielleicht ein Wochenende, aber keine 2 Stunden.

Ich würde vorschlagen, CS auf das Wesentliche zu reduzieren: Problemlösung und Analyse. Teilen Sie die Gruppe in Teams auf. Nehmen Sie sich 10 Minuten Zeit, um einige allgemeine Rechenprobleme zu beschreiben. Dies sollten einfache Probleme sein, die Menschen mit wenig mathematischem oder CS-Hintergrund leicht erklärt werden können. Beispiele beinhalten:

  1. Listen sortieren
  2. Suche nach minimalen Bäumen
  3. Berechnen der (ungefähren) Wurzeln von ganzen Zahlen
  4. usw.

Nehmen Sie sich weitere 10 Minuten Zeit, um die Aufgabe zu erläutern. Jeder Gruppe wird ein Problem zugewiesen, für das Brainstorming-Lösungen erstellt werden sollen. Das Team hat eine halbe Stunde Zeit, um gemeinsam eine oder mehrere Lösungen für das ihm zugewiesene Problem zu finden. Nehmen Sie sich dann eine Stunde Zeit, um die Lösungen in der gesamten Gruppe durchzugehen, und lassen Sie die Kinder herausfinden, ob sie funktionieren oder nicht, ob es einen schnelleren / besseren Weg gibt, das Problem zu lösen usw.

Wenn die Kinder nicht auf einer richtigen / optimalen Lösung landen, ist das in Ordnung. Geben Sie die Antworten aber nicht einfach weg - das ist absolut kritisch. Der Grund, warum Kinder kein STEM mehr machen, ist, dass Pädagogen den Eindruck erwecken, dass bereits alles herausgefunden wurde. Es wird sehr reife Berater brauchen, damit die Kinder versuchen können, diese Probleme zu lösen und selbst erfolgreich zu sein oder zu scheitern. Auf die richtige Antwort kommt es nicht an. Es geht darum, den Kindern interessante Probleme zu geben und ihnen zu zeigen, worum es in der Informatik geht: Probleme zu lösen und Lösungen auf Richtigkeit und Effizienz zu evaluieren. Den Kindern eigene Antworten zu geben, gibt ihnen ein Gefühl der Eigenverantwortung und hilft ihnen, sich verlobt zu fühlen.

Wenn die Kinder fragen, ob sie eine richtige / gute / bekannteste Antwort erhalten haben, sagen Sie ihnen natürlich die Wahrheit. Aber geben Sie die Antworten nicht einfach weiter, es sei denn, sie kommen aus der Diskussion über die Lösungen der Schülerinnen und Schüler heraus. Zusammenfassen:

  1. Geben Sie Kindern leicht zu verstehende, aber dennoch reiche Probleme zu erforschen.
  2. Lassen Sie die Kinder ihre eigenen Lösungen entwickeln und geben Sie ihnen nur genügend Hilfestellung, um sicherzustellen, dass die Kinder das vorliegende Problem verstehen.
  3. Besprechen Sie die Richtigkeit / Effizienz in einer Gruppe und geben Sie den Gruppen die Möglichkeit, ihre Lösungen zu erläutern. Als Berater können Sie die Diskussion über Korrektheit / Effizienz so weit führen, wie Sie es für rentabel halten.
  4. Stellen Sie unter keinen Umständen Ihre eigenen oder bekannte Lösungen für das Problem vor, es sei denn, diese stimmen im Wesentlichen mit denen der Schüler überein. Lassen Sie es nicht so aussehen, als ob CS ein Bereich ist, in dem die Leute bereits alle Antworten herausgefunden haben.
  5. Wenn möglich, sollten die Kinder das Gefühl haben, etwas gelernt zu haben, aber dennoch Fragen zu haben: Haben sie die besten Antworten gefunden? Können sie ihre anderen Fragen auf ähnliche Weise lösen? Sie können ihnen sogar ein unentscheidbares Problem in einem leicht verdaulichen Format liefern, um ihnen anschließend etwas zu geben, an dem sie arbeiten können.
Patrick87
quelle
Sie könnten sogar in Betracht ziehen, Teams in einem Freundschaftswettbewerb gegeneinander auszuspielen. Geben Sie zwei Teams das gleiche Problem und sehen Sie, wer die bessere Lösung findet.
Patrick87
1
Wettbewerbe dieser Art entmutigen schüchterne Menschen und stärken nur das Ego derer, die das Zeug bereits kennen. Dies stärkt nur das Image von CS als "nur für die Nerds".
AdrianN
6

Ich bin jetzt 17 und fing mit dem Programmieren an, als ich 16 wurde. Ich erzähle meine Geschichte und mache dann ein paar Vorschläge: Mein Interesse am Programmieren begann, als ich einem Computertechniker zusah, den ich mit meinen Registern und der Eingabeaufforderung herumgespielt hatte ( obwohl er wollte, dass 500 $ meine BSODs reparierten und ich nicht bezahlte, reparierte ich sie selbst) Also googelte ich "Eingabeaufforderungssprache" und fand heraus, dass es etwas gab, das "Quellcode" genannt wurde und das es Ihnen ermöglichte zu programmieren . Zu der Zeit hatte ich noch keine Ahnung, was C ++ ist. Ich glaube nicht, dass ich jemals davon gehört habe. Also ging ich zu cpp.com (sehr schlechte Tutorials, Sie werden schlechte und veraltete Praktiken lernen) und fing an, die Grundlagen zu lernen. Mein Verstand wurde verrückt und ich erfuhr tatsächlich, dass der Virus, mit dem ich infiziert war und der meine Probleme verursachte, in c ++ geschrieben war, was mich weiter interessierte. Ich fing später an zu lesen, Assembler und andere Hochsprachen zu lernen. Ich wollte zuerst etwas über Malware und Grafikprogrammierung lernen und das tat ich auch.

  1. Das mag sich schlecht anhören, aber viele Leute in meinem Alter interessieren sich tatsächlich für die destruktive Seite des Programmierens. Die erste Frage, die ich von meinen Freunden bekomme, wenn ich ihnen erzähle, dass ich ziemlich gut mit c ++ umgehen kann, ist: "Kannst du Viren machen, Noten ändern oder Spiele hacken?" Dort. Vielleicht könnten Sie sich etwas in der Art von Malware einfallen lassen, das nicht gefährlich oder illegal, aber dennoch interessant ist. (Vielleicht erhalten Sie die Anmeldeinformationen eines Schülers vom Schulserver.) Sie können mit ihnen darüber sprechen, wie Viren und schädliche Software ebenfalls funktionieren.
  2. Entwickle ein kleines Spiel nach dem Vorbild von pokemon und beschreibe ihnen, wie Spiele und Game Engines funktionieren. Viele Leute wären wahrscheinlich überrascht zu wissen, dass sich in vielen 2D-Spielen wie diesem der Charakter nicht wirklich bewegt, der Hintergrund ist und der Charakter nur eine Animation verwendet, über Zufallszahlen usw. sprechen. Überlegen Sie sich auch einige 3D-Demonstrationen.
  3. Versuchen Sie, nicht zu erklären, was der Code tut, und versuchen Sie, ihnen das Programm mitzuteilenselbst verzichtet darauf, zu viel über den Code zu reden. Nach meiner Erfahrung ist dies eine einfache Möglichkeit, die Aufmerksamkeit der Menschen zu verlieren, insbesondere wenn sie die Grundlagen der Sprache nicht verstehen. Tatsächlich würde ich versuchen, den Quellcode nicht vollständig herauszubringen, da es für jemanden ziemlich entmutigend sein könnte, 500 Codezeilen zu betrachten und nichts davon zu verstehen. Auch wenn Sie jemanden haben, dem Sie das demonstrieren, wird er wahrscheinlich eine Reihe von Fragen stellen, weil er neugierig ist. Das heißt: Du redest über Zufallszahlen, sie fragen, wofür Zufallszahlen sind und woher sie kommen ... dann musst du ihnen über elektronisches Rauschen erklären und wie es zufällig ist und alles, dann wirst du dich wahrscheinlich in einer Situation befinden, in der du bist Genau wie "Ich weiß nicht".
  4. Lego Mindstorms ist eine großartige Idee. Wenn Sie nicht den langen Weg gehen und eine Hauptsprache verwenden möchten, steht Ihnen eine Programmiersprache im Blockstil zur Verfügung. Ich habe die Sprache in ca. 30-40 Minuten herausgefunden, alles steht an, wenn du darüber nachdenkst

  5. Sie können schnell eine App entwickeln und sie vorführen. Sprechen Sie mit ihnen über die Vorteile der App-Entwicklung.

moonbeamer2234
quelle
4

Einige meiner Favoriten

  • Fraktale erzeugen . Sie haben eine starke Verbindung zu tiefer Mathematik und Computergrafik und eignen sich natürlich auch für Parallelität. Es veranschaulicht die Komplexität und das aufkommende Verhalten , insbesondere wenn Sie auf beliebige Maßstäbe zoomen, und ist eng mit der Wissenschaft und den Naturphänomenen verbunden. Es ist nicht schwer, parallelen fraktalen Code zu schreiben, der auf mehreren Computern ausgeführt wird. Ein Experiment besteht darin, dass jede Maschine die von ihr verarbeiteten zufälligen Zeilen anzeigt (z. B. "Slave" -Maschinen, die Zeilen aus einer Warteschlange verarbeiten) und dann eine zentrale Maschine die kombinierten Ergebnisse anzeigt.

  • Lego-Robotik (oder andere Robotik-Kits, z . B. Stempel ). Mindstorms ist ein Spielzeug, aber es kann ein sehr fortgeschrittenes sein, das als greifbare Demonstration abstrakter Konzepte dient. Die Software, die auf ihnen ausgeführt werden kann, kann sehr komplex sein und sie können komplizierte Sense-Think-Act-Schleifen / -Algorithmen aufweisen. Es gibt viele gute Bücher über Konstruktionen. beeindruckend sind auch die Rubiks-Würfel-Löser , die kürzlich den Weltrekord gebrochen haben.

  • Himbeer-Pi ist eine neue kostengünstige Plattform, die viel Interesse und Verwendung findet. Es kann verwendet werden, um Linux-Programmierung, Robotik usw. zu demonstrieren und hat HD-Ausgabe usw. Siehe z. B. Southhampton Himbeer-Pi-Supercomputer mit einem Lego-Rack.

  • Das in der anderen Antwort erwähnte Logo ist ein alter Klassiker. Ein weiterer neuer Aspekt ist das Programmieren von Spielen, z. B. mit einer neuen populären Sprache namens Scratch (erfunden am MIT ). Es kann viele natürliche / fortgeschrittene CS-Themen vermitteln.

vzn
quelle
2

Hier ist ein anderer Winkel. Es gibt so viele interessante offene Probleme oder aufkommende Technologien in der Informatik an den Grenzen des wissenschaftlichen Verständnisses, die Neugier / Staunen auslösen können, dh die Erforschung des nahen Terra Incognita . Wenn Sie die Probleme ansprechen und die Klasse dann an einer Diskussion über die Konsequenzen von Lösungen teilnehmen lassen, kann dies erhebliches Interesse / Inspiration hervorrufen. [Da Sie die Verfügbarkeit des Computerraums erwähnen, ist es auch möglich, auf kreative Weise einige praktische Computerübungen zu erstellen, die sich auf diese Bereiche beziehen.]

dies kann ein sci-fi-gefühl annehmen, aber in CS wird das, was einst scifi war, wie in keinem anderen bereich in kurzer zeit zur realität. Sie können auch kontrovers und aktuell sein und mit den heutigen Schlagzeilen in Verbindung gebracht werden. Die Schüler können beginnen zu begreifen, wie allgegenwärtig CS in unserer Welt / Gesellschaft ist und wie wichtig es ist, wenn man es breit interpretiert. hier sind ein paar große:

  • DNA-Protein-Faltungsproblem . Gibt es einen Algorithmus, um es genau zu berechnen?

  • künstliche Intelligenz im Allgemeinen. ist es möglich? Gibt es Ethik?

  • Robotik hat verschiedene aufstrebende Schlüsselbereiche. z.B autonome Autos / Fahren . es ist am nahen Horizont. Wie wird sich das auf die Gesellschaft auswirken? Das Video des DARPA-Wettbewerbs von vor nicht allzu langer Zeit ist beeindruckend. Kurzweil's Schreiben hat eine Menge zu tun. Drohnen sind ein kompliziertes Thema, das selten offen diskutiert wird und zunehmend im Inland eingesetzt wird. Die Mars Rover sind eine außergewöhnliche Technologie und es gibt erstaunliche Geschichten dahinter, wie die Systeme aus der Ferne getestet werden mussten - interplanetarisch, wenn sie versagten.

  • IT-basierte Überwachungssysteme zur Aufdeckung von Verbrechen / Terrorismus sind in letzter Zeit weit verbreitet.

  • das Higgs-Boson konnte nicht entdeckt werden und der Supercollider kann ohne große CS-basierte Systeme zur Analyse der "Big Data" überhaupt nicht funktionieren.

  • Moores Gesetz . Wie weit geht es weiter? Wie sehr hat es bereits die Gesellschaft / die Menschheit beeinflusst?

  • Quantencomputer . sind sie möglich werden sie schneller sein? Werden sie günstig oder immer unfreundlich sein? Dwave ist eine farbenfrohe Fallstudie, es gibt einen großartigen SciAm - Artikel von Aaronson usw

  • Der Google-Pagerank-Algorithmus ist eines der milliardenschweren Wunder der modernen Informatik. wird es verlängert? Wie funktioniert die Spam-Filterung? Das Unternehmen scheint sich auf die Analyse von Bildern usw. zu konzentrieren.

  • Der algorithmische / hochfrequente Handel bewegt jetzt enorme Mengen des Handelsvolumens / -werts. ist es gut / schlecht nimmt es zu / ab? Wird es in Zukunft reguliert? Um welche Art von rechnerischem Wettrüsten handelt es sich?

  • Supercomputer sind riesig, lösen erstaunliche Probleme und werden immer größer. gibt es grenzen Was berechnen sie und was werden sie in Zukunft berechnen? etwas verwandt, Big Data und Data - Mining .

  • Social-Networking-Sites hatten in weniger als einem Jahrzehnt des Wachstums enorme Auswirkungen. sie sind in Betankung Volksaufstände zB beteiligt arabischen Frühling und Occupy wall st . Was ist ihre Zukunft?

vzn
quelle
2

Ich habe einen Vorschlag, dass

  • konzentriert sich auf Computer die Computerwissenschaft (nicht oder Hilfs Programmierung),
  • beginnt mit einer Prämisse, die die meisten Kinder kennen und kennen
  • wurde tatsächlich ausprobiert und funktioniert.

Wir haben kleine Workshops mit Schülern über Minesweeper abgehalten . Der Workshop würde ungefähr so ​​ablaufen:

  1. Lass uns das Spiel ein bisschen spielen (die meisten wissen es).

  2. Was haben wir gerade gemacht? Was ist das Problem, das wir zu lösen versuchen? Können wir allgemeine Regeln formulieren?

    Dies dauert normalerweise eine Weile. Kinder sind nicht daran gewöhnt, Probleme in Bezug auf Eingabe und Ausgabe zu formulieren, damit keine allgemeinen Regeln für deren Lösung gelten. Diejenigen, die zuvor programmiert haben, werden den Aufwand zu schätzen wissen. das referenzieren von "spaghetti code" kann helfen. Trotzdem sind die Regeln die meiste Zeit einfach, wenn nur eine Zelle gleichzeitig betrachtet wird.

  3. Zeigen Sie Probleme mit den Regeln.

    An dieser Stelle möchten Sie einen Minesweeper-Simulator einführen . Die von Bayer, Snyder und Chouiery ist nicht perfekt, aber Sie können sorgfältig gestaltete Szenarien zeigen.

  4. Verbessern Sie den Regelsatz, um mehr Szenarien abzudecken.

    Dies wird die Schüler in der Regel dazu veranlassen, immer mehr Zellen gemeinsam zu untersuchen. Sie können sie auch anstoßen, um "alle" Ansätze wie das Ausdrücken der vorliegenden Informationen als lineares Gleichungssystem zu lösen. Dies wird erreicht, wenn Sie versuchen, die verfügbaren Informationen in mathematischen Begriffen auszudrücken. Die Studierenden wissen bereits, wie solche Systeme zu lösen sind!

  5. Beachten Sie die Einschränkungen.

    Erstens gibt es Szenarien, die keine (deterministische) Lösung haben. Darüber hinaus können wir Brute-Force-Strategien gegenüberstellen. Können wir Geschwindigkeit und Leistung gegeneinander austauschen? Wenn der Gleichungssystemansatz auftaucht, beachten Sie, dass wir dies nur effizient über den Real lösen können, aber wir brauchen binäre Antworten. Es ist nicht allzu schwer, Szenarien zu erstellen, die zu enormen Laufzeiten führen (wir haben Computeralgebra verwendet, um dies zu veranschaulichen).

Je nach Gruppe können mit diesem Ansatz auf natürliche Weise mehrere Prinzipien der Informatik abgedeckt werden: Problemdefinition, Beschreibung allgemeiner Algorithmen, iteratives Lösen von Problemen sowie Fragen der Berechenbarkeit und Komplexität können angesprochen werden.

Das Feedback der Studenten war insgesamt positiv. Sie fühlen sich engagiert und zeigen Interesse an den Konzepten. Es ist wichtig, dass sie den größten Teil der Arbeit erledigen und sie nur vorsichtig in die gewünschte Richtung schubsen, indem sie gezielte Fragen stellen.

Raphael
quelle
1

Sie haben eine Menge zu tun ... aber eine Sache, die so aufregend "Geld" zu sein scheint, so präsentieren Sie die "P ≠ NP" -Frage und den Sieben-Jahrtausend-Preis, als ich in der Mittelschule war, habe ich darüber gelesen, obwohl ich Ich wusste nicht, dass die Notizen das einzige sind, was ich verstehe: Es gibt einen großen Preis und eine große Frage! andere Dinge würden die Verbindung von Mathematik und Informatik darstellen wie: Gleichungen lösen, Lösungen mit Computern überprüfen.

Ich würde auch vorschlagen, Alan als "Vater der Informatik" vorzustellen und seine Geschichte zu erzählen. das letzte, was ich vorschlage, sind null Beweise und das Spiel "wo ist waldo?" und ohne Betrug und Kryptographie und Cyber-Angriffe zu spielen.

Fayez Abdlrazaq Deab
quelle
-2

Mach irgendetwas mit Facebook, sie lieben es. Vielleicht ist dies für Anfänger zu schwierig, aber Sie sollten sie Anschlussgraphen zeichnen lassen, die zeigen, wie ihre Profile miteinander verbunden sind. Ich würde Javascript als Programmiersprache empfehlen.

user8836
quelle