An einigen Orten auf der Welt haben die Menschen normalerweise keinen Zugang zu Computern (und daher wenig Wissen über diese), und selbst wenn dies der Fall ist, sind Hard- und Software veraltet und die Nutzung wird von Stromausfällen und dergleichen geplagt. Auch der Zugang zu (guten) Büchern fehlt tendenziell. Wie kann ich unter solchen Umständen Informatik unterrichten?
Ich mache mir Sorgen, dass sie, ohne in der Lage zu sein, Experimente durchzuführen und anzuwenden, was sie lernen, überhaupt nicht (gut) lernen, obwohl sie unglaublich motiviert sind und die meiste Zeit ihrer Zeit diesem Hobby widmen. Kann man CS nur theoretisch unterrichten?
Antworten:
Zu fragen, wie man Informatik ohne Computer studieren kann, ist ein bisschen wie zu fragen, wie man Kosmologie ohne Teleskope studieren kann. Klar, es ist schön, sich die Dinge anzusehen, die Sie studieren, und es ist oft sehr hilfreich, mit den Dingen herumspielen zu können. Aber es gibt eine ganze Menge, die Sie ohne Zugang zu einem Computer tun können: Im Extremfall könnten Sie wahrscheinlich fast alle Studiengänge ohne Computer absolvieren.
In der Praxis hilft der Zugang zu Computern dabei, vieles, was Sie in einem Informatikkurs lernen, zu verbessern. Programmierkurse sind natürlich viel natürlicher mit Zugang zu einem Computer. Auf der anderen Seite ermutigt die Notwendigkeit, Code auf Papier zu schreiben, die Leute, über ihren Code nachzudenken und sicherzustellen, dass er wirklich funktioniert, anstatt ihn immer wieder durch einen Compiler zu laufen, bis er kompiliert und dann immer wieder triviale Testfälle ausführt bis die offensichtlichen Fehler verschwinden.
Themen, die ohne Computer am natürlichsten wären, wären die mathematischeren. Alle Hintergrundmathematik, wie Kombinatorik und Wahrscheinlichkeit. Berechenbarkeit, formale Sprachen, Logik, Komplexitätstheorie, Algorithmusdesign und -analyse, Informations- und Codierungstheorie. Alles was mit Quantenberechnung zu tun hat!
quelle
Es gibt die offensichtliche Verwendung von Papier und Bleistift. Als mir die Signalverarbeitung beigebracht wurde, stand uns der spezielle Signalprozessor nicht direkt zur Verfügung, und wir haben nur Papierberichte eingereicht.
Beachten Sie, dass der große Informatiker Dijkstra anscheinend nicht viel mit Computern gearbeitet hat:
Zitiert nach Disjkstra's Memorial
Dies zeigt, dass Sie großartige Informatik auch ohne Computer betreiben können!
Neben Papier und Bleistift können auch Probleme der Informatik "in der realen Welt" gelöst werden, z. B. die Demonstration von Sortieralgorithmen mit Karten oder - ungewöhnlicher - mit Tanz, wie er von der Sapientia-Universität durchgeführt wird .
quelle
Viele Theorien der Informatik sind rein theoretisch und können mit Stift (CIL) und Papier gelöst werden. Um Informationen über sie zu erhalten und sie an die Außenwelt weiterzuleiten, ist ein Computer erforderlich.
quelle
Unter http://csunplugged.org/ finden Sie einige großartige Ideen. Google ist einer der Sponsoren.
Von der Website:
quelle
Sie können, es ist ziemlich offensichtlich, wie Sie es tun würden. Ich bin mir nicht sicher, wie nützlich es für die Leute wäre, aber Sie können.
Aber ich weiß nicht einmal, wie ein Informatiklehrer sich fragen kann, wie man Informatik ohne Computer unterrichten kann.
Denn wenn Sie Informatik unterrichten können, dann wissen Sie wie.
Wenn Sie wissen, dass
Das Studium der Normalisierung, der Struktur von Datentabellen für Datenbanken, kann mit Stift und Papier durchgeführt werden. (Das habe ich nur mit Stift und Papier gemacht, als ich relationale Datenbanken studiert habe.)
Für Informatiklehrbücher ist kein Computer erforderlich.
Wenn Sie jemals ein Informatiklehrbuch in die Hand genommen und es in einer Bibliothek studiert haben, würden Sie wissen, dass Sie keinen Computer benötigen, um es zu verstehen.
Sie sollten sich jedoch darüber im Klaren sein, dass jeder, der in einem Informatikkurs teilgenommen hat, feststellen kann, dass die meisten Menschen nicht programmieren können, sondern nur darüber hinaus. Zu abstrakt für Leute. Das gilt sogar für die Universität.
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
Ich würde hinzufügen, dass es eine Untertreibung ist, wenn man es eine wesentliche Minderheit nennt. Es ist eine kleine Minderheit, die -kann- programmieren.
Ich würde jedoch die Ursache für den Niedergang bemerken, den er miterlebte. Als Computer beispielsweise zwischen 2000 und 2010 populärer wurden (er schrieb das Mitte dieses Jahrzehnts), interessierten sich mehr Wollies für das Studium der 'Informatik'. Vorher waren nur die fanatischeren Leute interessiert. Früher war die Verwendung von Computern technischer, aber da Computer für den Durchschnittsbenutzer einfacher zu handhaben waren und leistungsstärker in den Anwendungen waren, die sie ausführen konnten, verwendeten sie mehr Wollies und mehr Leute, die nur daran interessiert waren, was sie tun konnten anstatt wie sie es tun und wie sie es tun.
quelle
Es WÜRDE möglich sein, die Konzepte der Informatik ohne Computer zu lehren. Was nützt das Erlernen der Informatik ohne Zugang zu einem Computer wirklich?
Als ich in der High School Informatik lernte, umfassten unsere ersten Klassen überhaupt keine Computer. Stattdessen haben wir nach einem Buch namens Karel ++ gearbeitet , in dem objektorientierte Konzepte vermittelt wurden. Die erstellte Sprache kann ziemlich einfach auf einem Whiteboard oder einer Tafel "ausgeführt" werden, da der gesamte Code Aktionen in einem Diagramm ausführt. Unsere ersten Aufgaben waren alle handschriftlich und der Professor zeigte zu Beginn der nächsten Klasse die richtige Lösung an der Tafel.
Als wir anfingen, über Algorithmen zu diskutieren, rief uns unser Professor alle vor den Raum und forderte uns auf, in einer Reihe zu stehen. Er ging ein paar verschiedene Sortieralgorithmen zu demonstrieren - beginnend mit etwas albern er „Affe Art“, wo er zufällig zwei von uns ausgetauscht würden und dann überprüfen , um zu sehen , ob wir jede Iteration sortiert wurden, aber dann durchführen Blasensortierung und Shellsort - durch "Laufen" sie auf uns.
Er zeichnete Diagramme an die Tafel und erklärte die Grundlagen der Arbeitsweise von Computerspeicher und Stapel. Er demonstrierte Variablen und Zeiger (es war eine C ++ - Klasse) und von dort zu verknüpften Listen und Bäumen ...
Ich könnte das wahrscheinlich ergänzen, wenn ich die Notizen aus dieser Klasse durchgehen würde, aber das ist alles, woran ich mich jetzt erinnere. Wenn diese Vorschläge interessant sind, kann ich diese Antwort erweitern.
quelle
Ich habe ein Informatik-Studium absolviert und dachte, wir haben viel Programmieren gelernt (in verschiedenen Sprachen), aber wir haben auch viele mathematische Aspekte gelernt (und auch Hardware).
Die mathematischen Teile waren für das erste Jahr wichtiger - denken Sie an Matrixmathematik, die für 3D-Grafiken unerlässlich ist (wie berechnen Sie eine Flächennormale für die Beleuchtung eines Scheitelpunkts? ). Wir haben viele Statistiken erstellt - überlegen Sie, wie viele Jobs Sie in ein System übertragen können, bevor es verstopft? Das ist für viele zentralisierte Systeme und Netzwerke ziemlich wichtig.
Sie können viele Algorithmen unterrichten. In einem der hier erwähnten Poster wird den Schülern jeweils eine Nummer zugewiesen und sie werden dann dazu gebracht, sich mithilfe verschiedener Algorithmen zu sortieren (die aktiv und informativ sind). In der Tat kann jeder Algorithmus, der in einem animierten Bild im Internet beschrieben werden kann, auf diese Weise gelehrt werden. Ebenso die Grundlagen des Rechnens - Programmzähler, Akkumulator und Registerkann auf die gleiche Weise oder auf Papier unterrichtet werden. Wie wäre es mit schülerbasiertem Multithreading? Stellen Sie einer Gruppe von Schülern in einer klassischen Multithreading-Übung (oder dem Problem mit einem gemeinsamen Löffel) ein Kartenspiel mit einem Stapel dazwischen. Bei den Entwurfsmustern kann ich davon ausgehen, dass die Schultafelarchitektur perfekt ist, damit die Schüler lernen, wie Multiprozesskommunikation implementiert werden kann, oder eine n-Tier-Architektur, die als eine Art Spiel mit chinesischem Flüstern oder als endliche Zustandsmaschinen beschrieben wird, eignet sich für Schüler, die so handeln Module in einem "lebenden Computer". Sie könnten binäre Mathematik oder stapelbasierte (dh umgekehrte) Ausführung unterrichten.
Wenn Sie Zugang zu Elektronik haben, können Sie natürlich einen analogen Computer aus Operationsverstärkern bauen. Sie sind cool.
Leider wird das alles eher nach Mathematik als nach Informatik aussehen, aber vieles davon wird anhalten und eines Tages werden sie verstehen, warum ihnen das beigebracht wurde (vorausgesetzt, sie steigen in die Computerbranche ein). Denken Sie daran, dass alles, was ein Computer kann, auch eine Person kann - es wird einfach viel mehr Zeit und Langeweile dauern , um das gleiche Ergebnis zu erzielen. Sie müssen nur einfache Beispiele nehmen, um zu demonstrieren, was der Computer tun würde, und sich vorstellen, um die Grundlagen des Rechnens auf eine weniger trockene Art und Weise zu beschreiben, wie ich sie vor langer Zeit gelernt habe :)
quelle
Ich antworte meist nur, um auf diese Aussage zu reagieren und weil ich anderen Antworten überhaupt nicht zustimme. Der richtige Vergleich wäre meiner Meinung nach
In der Informatik geht es um Computer, nicht nur um deren Nutzung. Zwar basiert ein Großteil der Informatik auf Mathematik, daher können die mathematischen Teile ohne Computer studiert werden (Sie unterrichten also Mathematik), genau wie Sie anstelle der Kosmologie Physik studieren können, die nützlich sein wird, wenn es einen Kosmos gibt (oder haben Zugang zu Teleskopen), aber am Ende studieren Sie immer noch Physik.
Nun, was jeder in den Antworten hier tut, ist zu bemerken, wie Bachelor-Informatik meistens theoretisch ist und keine Computer erfordert. Das, was diese Leute IMHO vergessen, ist, dass dieselben Leute Computer bis zu diesem Punkt ausgiebig benutzt haben. Ohne ein natürliches Verständnis führt ein direktes Eintauchen in die Theorie dazu, dass viele Studenten entweder aufgeben oder eine schrecklich unpassende Sicht der Informatik haben. Bringen Sie also etwas Programmierung bei und verstehen Sie zuerst, was Computer sind, und lernen Sie dann erst die theoretischen Aspekte kennen.
Hängt vom Budget ab:
Lassen Sie mich klar sein, ich sage nicht, dass Informatik nicht ohne Computer unterrichtet werden kann, nur, dass Sie an Computer gewöhnt sein müssen und sie ziemlich gut kennen, bevor Sie anfangen sollten, über so etwas nachzudenken.
quelle
In der Informatik geht es um Algorithmen und nicht (ausschließlich) um Computer (und Elektronik).
Daher kann das Studium von Algorithmen (auch von elementarer Arithmetik) zu einem Verständnis der Informatik und der Programmierung führen. Denken Sie daran, dass auch der Begriff "Algorithmus" eine Umschreibung des Autors eines Arithmetikbuchs ( al-Khwārizmī , ca. 9. Jh. N. Chr.) Ist .
Das Studium von Algorithmen kann mit einfachen Mitteln durchgeführt werden, sollte jedoch Aufschluss darüber geben, warum der Algorithmus funktioniert, wie er zustande kam und wie man tatsächlich nachweisen kann, dass er korrekt funktioniert.
Die Geschichte hinter der Entwicklung der Informatik und der Algorithmen und Programmierung ist nicht zu unterschätzen. Zum Beispiel Babbages / Adas Rechner, Enigma-Maschine, Konrad Zuses Plankalkul , ENIAC usw.
Dann kann man Programmierung (und Programmiersprachen) einführen, um Algorithmen zu formalisieren. Dies kann auch (zu einem großen Teil) mit elementaren Mitteln geschehen.
Es ist anzumerken, dass einige Studien gezeigt haben, dass das Programmieren für das Lernen von Personen zwei Hauptschwierigkeiten aufweist (im Zusammenhang mit der Überladung von Symbolen, zum Beispiel Zuordnung vs. Gleichheitstest und dem Betrieb einer RAM-Maschine).
So kann man sicherstellen, dass diese von den Menschen klar erfasst und verstanden werden.
Wenn auf einen Computer zugegriffen werden kann (auch auf einen Taschenrechner, der programmiert werden kann), können Anwendungsbeispiele und praktische Erfahrungen bereitgestellt werden. Ansonsten kann man einen simulierten Computer benutzen. Dies kann auf verschiedene Arten geschehen, zum Beispiel kann eine Gruppe von Personen Teile eines Computers simulieren, und die Klasse kann Algorithmen entwerfen, um verschiedene Probleme für diesen simulierten Computer zu lösen und zu sehen, wie es funktioniert. Dies kann auch als Spiel angesehen werden, sei kreativ und mache es.
Anschließend können einige (abstrakte) Rechenmodelle (z. B. Turing Machines ) eingeführt und mit dem bisherigen Material zu Algorithmen und dem Formalisatinn in eine (Programmier-) Sprache verknüpft werden.
Wenn man die Elektronik eines tatsächlichen Computers vorstellen möchte, kann dies auch in zwei Teilen erfolgen.
Denken Sie daran, dass auch an Universitäten einige Kurse in Elektronik und Computerarchitektur theoretisch sind (man kommt eigentlich nicht mit einer CPU in Kontakt oder entwirft eine).
So können einige Prinzipien des Betriebs der Elektronik (und der zugrunde liegenden Physik) in Bezug auf die Computerarchitektur eingeführt werden ( Halbleiter , Festkörper-Energiezonen, p-np-Gatter usw.).
Dann kann man das vorherige Material über Programmierung und Algorithmen nutzen und (moderne) Techniken des CPU-Designs (und der Beschreibung) einführen, die in der Industrie verwendet werden ( Logikgatter , Flip-Flops , FPGA , VHDL , CMOS-Schaltungen usw.).
Dies kann weiter berücksichtigt werden, CPU-Entwurfsarchitekturprobleme wie Parallelität, Pipelining, Cache-Speicher, Vektoradressierung, Mikroprogrammierung, DMA usw.
Nun, ok, vielleicht kann das zu viel sein, aber hinzugefügt, um die Antwort in sich geschlossen zu machen.
quelle
Möchten Sie Programmieren unterrichten?
Als ich ein Kind war, machten wir Campingurlaub und ich nahm das Computerhandbuch mit. Ich konnte ein einfaches Spiel mit Stift und Papier schreiben.
Ich denke, dies war mein erstes richtiges Programm, daher war viel Lernen erforderlich. Ich wusste, was ich tun wollte, aber es gab viele Fehlstarts, als ich es herausfand. Aber irgendwann konnte ich den gesamten Code ausschreiben.
Ich denke, was ich sage, ist, mit Pseudocode und / oder Flussdiagrammen zu beginnen, um das Projekt zu planen und dann in Code zu übersetzen. Ich konnte einen Großteil meines Codes durch einfaches Lesen debuggen. Sie können hier auch Peer Reviews verwenden.
quelle
Um die vorherigen Antworten zu wiederholen: Es gibt viel zu lernen, nur durch Lesen und Ausführen von Stift- und Papierübungen. Wenn Sie das Problem auf Papier lösen können, haben Sie den schwierigen Teil. Ich möchte jedoch auch erwähnen, dass es ziemlich billige Möglichkeiten gibt, Studenten mit CS in Kontakt zu bringen. Kennen Sie das Raspberry Pi-Projekt ? Selbst wenn sich mehrere Personen teilen müssen oder Sie es sich nur leisten können, 1 oder 2 Einheiten zu erwerben, ist es möglicherweise immer noch sinnvoll, darüber nachzudenken, wie Sie Ihre Schüler der Technologie aussetzen können.
quelle
Ich werde versuchen, ein wenig auf diesem zu wackeln und "über den Tellerrand hinaus zu denken". Ausgereifte Computer sind in der Tat teuer, manchmal ressourcenintensiv und schwierig zu warten. Es gibt jedoch viele kostengünstige elektronische Systeme, die ausgewachsene Computer imitieren, z. B. mit LCD-Bildschirmen usw., und auf die viele grundlegende Programmierprinzipien angewendet werden können, viele batteriebetrieben. Es gibt auch eine enge Verbindung der EE-Prinzipien mit dem Rechnen wie dem Aufbau von binären Logikschaltungen usw .; Auch heutzutage sind einige Spielzeuge programmierbar.
programmierbare Taschenrechner . In einigen sind ganze Programmiersprachen (nicht so hoch, sondern eher Assemblersprachen) integriert. Einige würden fortgeschrittene Programme unterstützen.
Raspberry Pi Minicomputer / Mikrocontroller wurde für diesen Zweck entwickelt und läuft unter Linux. in vielen Fällen weniger als 40 US-Dollar.
Der parallax STAMP-Kit- Mikrocontroller erfordert eine USB-Verbindung, aber möglicherweise ist ein Himbeer-Pi ausreichend. Siehe auch PIC-Mikrocontroller
Robotersysteme. Es gibt viele preiswerte Modelle mit programmierbarer Logik. Lego Robotics Mindstorms / NXT ist eines der besten und es gibt weniger teure Modelle.
In einigen Konsolenspielen sind Programmierprinzipien integriert. Zum Beispiel hat Little Big Planet erstaunliche Programmierfunktionen eingebaut. Es gibt einige Handheld-Versionen von programmierbaren Spielen. es gibt viele youtube-videos komplexer konstruktionen zur inspiration.
Smartphones sind die neue Programmierwelt. Sie haben Browser, die Javascript ausführen, und es gibt viele programmierbezogene Apps, und man kann sogar mit einer Internetverbindung (einschließlich WLAN) auf Programmierseiten surfen.
Schlagen Sie auch vor, wie in den Kommentaren beschrieben, TM-Programme zu erstellen, z.
quelle