Unterrichtsmaterial für den Informatikunterricht
Great Principles of Computing
Allzu oft wird Informatik mit Programmieren gleichgesetzt. Peter Denning greift dieses Problem in The Field of Programmers Myth [PDF] auf. In Great Principles of Computing [PDF] erklärt er sein Ziel: "stop hiding the enormous depth and breadth of our field". Wie seine Erfahrung mit der Entwicklung des ACM Computing Curriculum zeigte, sind Curricula Listen von Themen, die mit der Entwicklung der Informatik immer länger werden. Daher hat er als alternative Sichtweise auf die Informatik den Great Principles of Computing Curricula [PDF] entworfen, inspiriert von den Feynman Lectures in Physics. Die Principles sollen vollständig sein, aber nicht trennschaft; sie bieten vielmehr unterschiedliche Sichtweisen auf ein Thema.
Auf dieser Seite sind die sieben Great Principles gemäss der Publikationen von Denning und der Great Principles of Computing-Website zusammengefasst. Die SwissEduc-Informatik-Materialien und weitere Quellen sind den Prinzipien zugeordnet und bieten so eine alternative Struktur für SwissEduc-Informatik. Die Unterrichtsmaterialien, Anwendungsbeispiele und Hintergrundsinformationen sind exemplarisch und ohne Anspruch auf Vollständigkeit.
Automation Overview Principles |
These principles concern finding efficient computational ways to perform human tasks. Tasks can be mental, such as doing arithmetic, playing chess, and planning schedules, or physical, such as running an assembly line, driving a car, controlling an airplane.
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Modeling: Expert Systems, Fuzzy Logic, Neural networks, ... |
Kara: Programmieren mit endlichen Automaten,
Corewars: Das Duell der Programme,
Game Of Life - Simulationen entdecken,
LogicTraffic: Aussagenlogik,
Mechanische Computer,
Rekursives Programmieren [SwissEduc] Finite State Automata, The Turing Test, Intelligent Paper, Finite State Automata [CS Unplugged] |
Game of Life [Wikipedia] | ||
Search, Sort: Heuristics, Genetic Algorithms, Page Rank, ... |
Puzzle: Sortierverfahren,
Scheduling Algorithmen,
Einführung in die künstliche Intelligenz (A*-Algorithmus),
Einführung in die Spieltheorie,
Programmieren des Spiels "Tic Tac Toe" in Java [SwissEduc] Kürzest-Weg Algorithmus von Dijkstra (Kap. 1), Sortier-Algorithmen (Kap. 2) [Abenteuer Informatik] Searching Algorithms, Sorting Algorithms, Sorting Networks [CS Unplugged] |
Spieltheorie, A*-Algorithmus [Wikipedia] | ||
Deduction | Einführung in Prolog und die logische Programmierung [SwissEduc] | Prolog (Programmiersprache) [Wikipedia] | ||
Induction: Curve Fitting, Bayesian Inference, Reinforcement | Kleinstquadrat-Methode [SwissEduc] | |||
Communication Overview Principles |
These principles concern the transmission of data with reliable reception:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Information theory: Model of Communication Systems | Information Theory [CS Unplugged] | Informationstheorie, Shannon-Hartley-Gesetz [Wikipedia] | ||
Noisy Channels and Error Correction |
Fehlerkorrigierende Codes [SwissEduc] Error detection [CS Unplugged] |
Hamming Codes [Wikipedia] | ||
Compression |
Kompression [SwissEduc] Text compression [CS Unplugged] File Compression [How Stuff Works] The 'magic' of MP3, Compressing Vicky Pollard [CS4FN] |
GIF mit Lempel-Ziv-Welch-Algorithmus; PNG mit LZ77-Algorithmus, JPEG, ZIP, MP3 [Wikipedia] | Shannon-Fano-Kodierung, Huffman Code, Datenkompression [Wikipedia] | |
Routing, Networks |
Routing Algorithmen,
Einführung in Mobiltechnologie,
Gruppenarbeit: Firewall [SwissEduc] Routing and Deadlock [CS Unplugged] |
|||
Secret, Secure Communication |
Sicherheit im Internet,
Streifzug durch die Geschichte der Kryptologie,
Kryptografie und Kryptoanalyse,
Public Key Cryptography,
Digitale Unterschriften,
Algebraischer Kartentrick,
Chinese Remainder Theorem [SwissEduc] Information Hiding, Cryptographic Protocols, Public Key Encryption [CS Unplugged] |
SSH Secure Shell, SSL, PGP [Wikipedia] | Verschlüsselung, RSA-Kryptosystem, Diffie-Hellman-Schlüsselaustausch [Wikipedia] | |
Computation Overview Principles |
These principles address what processes, natural and artificial, are computational, what they can and cannot do, and how we cope with inherent and pervasive computational complexity:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Representations, The Heart of Computing |
Analog und Digital,
Analog/Digitalwandler,
Digitale Bildformate,
Grafikformate und ihre Anwendung,
Faltung in der Bildverarbeitung,
Diskrete Fourier Transformation,
Graphische Repräsentation von Daten [SwissEduc] Binary Numbers, Image Representation [CS Unplugged] |
|||
Representations of the Infinite | Exorciser: Reguläre Sprachen, Kontextfreie Grammatiken, Markov Algorithmen, Einführung zu Parser [SwissEduc] | |||
Turing's Computability | TuringKara: zweidimensionale Turing-Maschinen [SwissEduc], | |||
Tracktable vs. intracktable problems |
Schwierige Probleme in der Informatik,
GraphBench: Lernumgebung für NP-Vollständigkeit,
Heiratsproblem,
Backtracking [SwissEduc] Rucksackproblem (Kap 3.) [Abenteuer Informatik] Graph Colouring, Steiner Trees, Minimal Spanning Trees, Dominating Sets [CS Unplugged] |
NP-Vollständigkeit, Knapsack problem, Stable marriage problem [Wikipedia] | ||
Resolution Times |
Sortieren in |
|||
Coordination Overview Principles |
These principles concern how autonomous entities work together toward a common result:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
A Model for Coordination Systems: Players, Objectives, Resources, Rules, Strategies | QueueTraffic: Warteschlangen, DynaTraffic: Markov-Ketten und dynamische Verkehrsverteilung [SwissEduc] | |||
Action loops | ||||
Levels of Delegation: Computer Supported Cooperative Work (CSCW) | ||||
Levels of Delegation: Human Computer Interaction (HCI) | Human Interface Design [CS Unplugged] | |||
Levels of Delegation: Concurrency Control (CC) | MultiKara: Nebenläufige Programmierung [SwissEduc] | Threads zB in Java [Wikipedia] | Nebenläufigkeit / Concurrency [Wikipedia] | |
Design Overview Principles |
These principles concern how to design software and computing systems that are dependable, reliable, usable, safe, and secure:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Does it Work Correctly? Program verification, automated testing. | ||||
Does it Keep Working (Resilience)? Mechanisms for error confinement. | ||||
Driving Concerns: Simplicity, Performance, Evolvability, Security. | ||||
Design Principles: Hierarchical Aggregation, Levels / Layers, Virtual Machines | ||||
Design Principle: Object Orientation | ||||
Evaluation Overview Principles Answering the performance questions |
These principles concern how computing systems perform under various computational loads and how much capacity they need to deliver their results on time:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Performance analysis: throughput, response times, peak performance, capacity planning | ||||
Analytic Performance Model: Network of Servers Model (Erlang), Utilization Law, Little's Law, Forced Flow Law | Public switched telephone network [Wikipedia] | Queueing theory, Agner Krarup Erlang, Little's law [Wikipedia] | ||
Benchmarking | Standard Performance Evaluation Corporation, POV-Ray [Wikipedia] | Benchmark (computing) [Wikipedia] | ||
Simulation | ||||
Recollection Overview Principles |
These principles concern how computations store and recall information, and how data layout in the storage system affects their performance:
|
|||
Unterrichtsmaterial | Anwendungsbeispiel | Hintergrundsinformation | ||
Storage Mediums, Hierarchies | ||||
Locality, Caching | ||||
Thrashing | ||||
Names and Addresses, Hierarchical Naming, Dynamic Bindings | FAT, Domain Name System, ISBN, URL [Wikipedia] | Dateisystem [Wikipedia] | ||
Retrieval, Databases |
Einführung in XML,
Einführung in XML, DTD und XSL [SwissEduc] OLAP (Online Analytical Processing) Einführung [SwissEduc] Wellenreiten auf der Datenautobahn, Informationsbeschaffung im Internet, Erfolgreich Recherchieren, Suchmaschinen verstehen [SwissEduc] |
MySQL [Wikipedia] | Relationale Datenbank [Wikipedia] |
Core Practices of Computing
Intro -
Programming | Using programming languages to build software systems that meet specifications created in cooperation with the users of those systems. Computing professionals must be multilingual, facile with the numerous programming languages, each attuned to its own strategies for solving problems. | |
Unterrichtsmaterial | Hintergrundsinformation | |
Java programmieren ([SwissEduc]):
Java, JavaScript, Ruby, Python lernen mit Kara,
Java, JavaScript, Ruby, Python lernen mit Turtles,
Java lernen mit Turtle Grafik (online),
Fünf-tägiger Kurs zu Java,
Handy Programmierung mit Java,
Programmieren des Spiels "Tic Tac Toe" in Java,
Spielprogrammierung mit Java: Interaktive Lernumgebung Weitere Themen ([SwissEduc]): Programmieren mit Scratch, Paradigmen von Programmiersprachen, Programmiersprachen gestern, heute, morgen, Esoterisch Programmieren: Brainfuck Programming Languages [CS Unplugged] |
||
Engineering Systems | Designing and constructing systems of software and hardware components running on servers connected by networks. These practices include a design component concerned with organizing a system to produce valuable and tangible benefits for the users; and an engineering component concerned with the modules, abstractions, revisions, design decisions, and risks in the system; and an operations component concerned with configuration, management, and maintenance of the system. High levels of skill are needed for large programmed systems encompassing thousands of modules and millions of lines of code. | |
Unterrichtsmaterial | Hintergrundsinformation | |
Datenmodellierung mit UML, Design mit UML: Aggregation, UML: Sequenzdiagramme, [SwissEduc] |
Peopleware von Tom DeMarco [Wikipedia] Facts and Fallacies of Software Engineering, Software Creativity 2.0 [Robert Glass] Software Fundamentals: Collected Papers by David L. Parnas [David Parnas] |
|
Modeling and validation | Building models of systems to make predictions about their behavior under various conditions; and designing experiments to validate algorithms and systems. | |
Unterrichtsmaterial | Hintergrundsinformation | |
Innovating | Bringing about lasting changes in the ways groups and communities operate by exercising technical leadership. Innovators watch for and analyze opportunities, listen to customers, formulate offers customers see as valuable, and manage commitments to deliver the promised results. Innovators are history-makers who have strong historical sensibilities. | |
Unterrichtsmaterial | Hintergrundsinformation | |
The Social Life of Innovation [Peter Denning, CACM, April 2004; PDF] Innovation and Entrepreneurship [Peter Drucker, 1993] Diffusion of innovations, Technology acceptance model, Hype cycle [Wikipedia] |
Mehrfach referenzierte Quellen
- Informatik auf SwissEduc
- Computer Science Unplugged
- How Stuff Works
- Computer Science For Fun
- Wikipedia
- Jens Gallenbacher (2008). Abenteuer Informatik. IT zum Anfassen – von Routenplaner bis Online-Banking. 2. Auflage, Spektrum Akademischer Verlag.
- A.K. Dewdney (1993). New Turing Omnibus: 66 Excursions in Computer Science. 2. Auflage, W.H.Freeman & Co Ltd.
- Vöcking, B.; Alt, H.; Dietzfelbinger, M.; Reischuk, R.; Scheideler, C.; Vollmer, H.; Wagner, D. (Hrsg.) (2008). Taschenbuch der Algorithmen. Springer eXamen.press.
- Harel, David (2000). Das Affenpuzzle und weitere bad news aus der Computerwelt. Springer Verlag.