Mir wurde angeboten, ein neuartiges TCS-Highschool-Programm zu unterrichten, für das ein Lehrplan erstellt werden muss. Ich würde sehr gerne Meinungen und Vorschläge dazu hören.
Erstens, kennt jemand Hochschulen, an denen ein TCS-Programm erfolgreich (oder erfolglos) unterrichtet wurde?
Die Idee ist ein 3-jähriges Programm (10.-12. Klasse, 16-18 Jahre), ungefähr 8 Wochenstunden, für ausgewählte herausragende Studenten, was bedeutet, dass es anspruchsvoll sein kann und sollte. Im Gegensatz zum Standardprogramm "Computer" sollte sich dieses Programm nicht auf die Programmierung konzentrieren, sondern auf ausgewählte Themen in CS, hauptsächlich in TCS. Die Themen, die wir bisher im Auge haben, sind im Großen und Ganzen:
- Asymptotische Analyse
- Grundlegende Datenstrukturen und Algorithmen (Listen, Arrays)
- Graph-Algorithmen, auch als Demonstration von Greedy-Algorithmen gegen dynamische Programmierung.
- Andere Algorithmen (zB probabilistisch)
- Berechenbarkeit - das Konzept eines TM, Reduktion, Entscheidbarkeit.
- Komplexität - NP, P, vielleicht PSPACE und NL. Vollständigkeit.
- Automatentheorie
Grundsätzlich umfasst dies den TCS-Teil der ersten zwei Jahre eines B.Sc in CS. Wir müssen jedoch bedenken, dass diesen Schülern die mathematischen Grundlagen fehlen, die für den größten Teil dieses Materials erforderlich sind. Insbesondere werden Dinge wie Mengenlehre, Kombinatorik, Wahrscheinlichkeit und modulare Artihmetik (leider) nicht in der High School unterrichtet.
Um es zusammenzufassen und präzise Fragen zu stellen:
- Kennt jemand ein ähnliches Programm irgendwo?
- Gibt es Vorschläge für konkrete / allgemeine Themen, die Ihrer Meinung nach zusätzlich / anstelle der oben genannten Themen vermittelt werden können und sollten, während das Programm interessant sowie wichtig und direkt relevant bleibt (z. B. Gruppentheorie ist wichtig und interessant, aber nicht relevant genug)? die Zeit zu rechtfertigen, die es dauern wird)
- Ich hätte das maschinelle Lernen gerne in irgendeiner Form eingeführt, da es heutzutage ein sehr heißes Thema ist. Anregungen, wie maschinelles Lernen ohne Hilfsmittel wie Maßkonzentrationssätze dargestellt werden kann, sind willkommen.
Antworten:
Viele Länder organisieren Sommerschulen für ihre IOI-Teams (bestehend aus Schülern im Alter von ungefähr 16 Jahren). Die, die wir im Iran haben, hatten die folgenden Kurse:
Ich denke, die Computer Science Teachers Association von ACM hat einen K12-Lehrplan auf ihrer Seite mit Lehrplanressourcen, obwohl er für talentierte Teenager wahrscheinlich viel zu leicht ist.
Ich denke, Programmierung muss definitiv Teil des Lehrplans sein. Python sollte eine gute Muttersprache sein.
Möglicherweise möchten Sie auch einige zugängliche Themen mit Anwendungen abdecken (die Freude am Erstellen von etwas Coolem kann einen großen Einfluss auf deren Interesse haben). Ich denke, Andrew Ngs ML-Kurs über Coursera sollte für talentierte Studenten zugänglich sein (insbesondere für diejenigen in Ländern wie Ihrem, in denen es einen ernsthafteren K12-Mathematiklehrplan gibt).
Ein nicht standardmäßiges Thema, das Sie in Betracht ziehen sollten, ist die kombinatorische Spieltheorie. Mit 16 Jahren ist es vielleicht nicht sehr interessant (ich habe keine Erfahrung damit), aber meiner Erfahrung nach funktioniert es ziemlich gut für ein bisschen jüngere Schüler.
Ich persönlich denke, das zentrale und verbindende Thema sollte Algorithmen sein, ich denke, es würde besser funktionieren als die Automatentheorie, da das zentrale Thema und wohl die algorithmische Perspektive (nicht Turing-Maschinen, Automaten usw.) die Essenz der Informatik ist.
quelle
Seltsamerweise gibt es jemanden, der argumentiert, dass maschinelles Lernen einzigartig istUnter den Informatik-Themen ist es eines der wenigen Unterfelder, in denen Sie durch grundlegende Mathematik genügend Verständnis für die wichtigen Herausforderungen erlangen können. Ich bin mit dieser Behauptung nicht einverstanden - grundlegende Algorithmen (z. B. zum Suchen, Sortieren) können als Rätsel dargestellt werden, und Sie können sehr schnell zu sehr einfachen Aussagen gelangen, aber grundlegende offene Probleme wie "können mit im Wesentlichen der gleichen Anzahl von Operationen multipliziert werden als Addition "oder Sortieren von ganzen Zahlen in linearer Zeit oder Factoring (Ich gehe davon aus, dass das Konzept der Primzahlen für die ausgewählte Gruppe von Schülern nicht neu wäre?). Andererseits wäre viel maschinelles Lernen ohne ein gutes Maß an Erfahrung mit Statistik und Wahrscheinlichkeitstheorie schwer zu verstehen. Dennoch,
In Bezug auf ein Lehrprogramm gibt es ein ausführlicheres von Essinger und Rosen bei Drexel.
Darüber hinaus könnte man versuchen, einige der übergeordneten Ideen der Lerntheorie zu skizzieren:
Ein weiterer Vorschlag ist, Schaltkreise einzuführen und eine Skizze von Shannons Untergrenze zu versuchen. Kommt darauf an, wie gut die Schüler mit dem Zählen umgehen können. Wenn dies zu schwer ist, kann es dennoch hilfreich sein, das Argument zu führen, während die Schüler das Zählen der Schaltkreise selbst anhand des Glaubens durchführen. Ich denke, die Idee "Die meisten Probleme erfordern große Schaltkreise, weil es zu viele Probleme und zu wenige kleine Schaltkreise gibt" wird auffallen. Diese Idee ist wichtig und durchdringend in ihrer Komplexität.
quelle
Hier ist eine vielversprechende Richtung, um dies zu tun. AP / NSF kündigte kürzlich eine neue CS-Programminitiative für Fortgeschrittene an. Die Verwendung eines solchen Programms bietet viele Vorteile, z. B. einen standardisierten Stundenplan, eine Hochschulakkreditierung usw.
Es befindet sich derzeit in der Entwicklung und soll für 2016 fertig sein. Der vorläufige Lehrplan und die Materialien sind online verfügbar. (Für akademische Experten könnte es an dieser Stelle sogar eine Möglichkeit geben, den zukünftigen Inhalt über eine Zusammenarbeit vom Typ "kollektive Intelligenz" zu beeinflussen.)
Das bestehende Programm heißt AP Computer Science A und das neue Programm heißt AP Computer Science Principles. Die bestehende Klasse gibt es schon seit vielen Jahren und sie ist auch als Modell für Lehrkräfte hilfreich, die Lehrpläne entwickeln.
quelle
Eine Idee, mit der ich mich in letzter Zeit beschäftigt habe, ist, HS-Studenten den Begriff der Reduktion zwischen Problemen beizubringen. Ich fand dies eines der interessantesten und zugleich herausforderndsten Themen, als ich in die Komplexität eingeführt wurde, da es (zumindest anfangs) ziemlich schwierig ist, sich darüber hinwegzusetzen, dass ein Problem wie 3-SAT "genauso schwer" ist als Vertex-Cover.
Das Beispiel, das ich mir ausgedacht habe, war eine Reduzierung zwischen Vertex Cover (VC) und Independent Set (IND-SET), die wie folgt lautet:
"Sie sind der Direktor eines Museums und haben die Aufgabe, Sicherheitspersonal für die Bewachung der Gänge einzustellen. Wenn Sie sich an einer Kreuzung von Gängen befinden, kann ein Wachmann ALLE ihm benachbarten Gänge im Auge behalten. Wie viele Wachen sind mindestens erforderlich? das ganze Museum patrouillieren? "
"Ein wenig später beschließen einige Kinder, im Museum ein Versteckspiel zu spielen. Ihr Ziel ist es, sich so zu verstecken, dass kein anderes Kind sie sehen kann. Die Wachen wollen jedoch nicht, dass sie im Museum herumlaufen Flure, so dass sie in den Kreuzungen "versteckt" werden. Was ist die größte Anzahl von Kindern, die sich im Museum verstecken können, ohne sich zu sehen? "
quelle