Dies ist eine alte Version des Dokuments!
Lernziele Matura
A+B. Python und Objektorientierte Programmierung
Lernziele Programmierkonzepte in Python
- Variablen und die dynamische Typisierung in Python verstehen (Vor- und Nachteile der Dynamischen Typisierung gegenüber der Statischen Typisierung)
- Allgemein den Unterschied zwischen „Call by Value“ und „Call by reference“ kennen (siehe Kapitel 3.1 im oben verlinkten Dokument). den Befehl id kennen.
- Was bedeutet mutable und immutable? Welche Datentypen sind in Python immutable?
- Wie verhält sich Python, wenn man einer Funktion einen Parameter mit Grunddatentyp übergibt (Zahlen, Bolean, Strings) und diesen dann in der Funktion ändert?
- Wie verhält sich Python, wenn man einer Funktion einen Parameter mit komplexerem Datentyp (Liste, Objekt, Dictionaries) übergibt und diesen dann in der Funktion ändert?
- Funktionen mit Parameter und ohne Parameter und mit Rückgabewert und ohne Rückgabewert verstehen.
- Listen verstehen und verwenden können und die Varianten des range-Befehls kennen.
- Verzweigungen und while-Schleifen verstehen.
Prinzip der Objektorientierten Programmierung kennen und in Python anwenden können
- Begriffe verstehen: Klasse vs. Objekt/Instanz, Eigenschaften/Attribute, Methoden
- Unterschied zwischen Objektorientiertem Paradigma zu Prozeduralen Paradigma erklären können.
- Unterschied zwischen Instanzvariablen und Klassenvariablen kennen und Beispiele geben können in Python.
- Unterschied zwischen Instanzmethoden und Klassenmethoden (@classmethod) kennen und Beispiele geben können.
- Die folgenden Konzepte und Begriffe verstehen: Konstruktor (init-Methode), self, Vererbung (super()), wie kann man die Daten kapseln (Underscore oder doppelter Underscore, Getter- und Settermethoden)
C. Logische Schaltungen und Von Neumann Architektur
Lernziele Boolsche Algebra und Schaltungen
- Darstellungsarten von Logischen Funktionen verstehen und umschreiben können: Logischer Ausdruck (Formel), Wahrheitstabelle, Schaltung (nicht relevant: Zeitdiagramm).
- Standardgatter verstehen (Darstellung nach IEC 60617-12 kennen, siehe diesen Link) NOT, AND, OR, XOR, NAND, XNOR?
- Wissen, was die De Morganschen Gesetze aussagen und einen Term damit umschreiben können.
- Disjunktive Normalform verstehen und sie aus der Wahrheitstabelle aufstellen können.
- Konjunktive Normalform verstehen und sie aufstellen können.
- Logische Nachbarn verstehen und Terme mit logischen Nachbarn vereinfachen können.
- Die Disjunktive Normalform mithilfe des KV-Diagramms vereinfachen können (Diagramm wird gegeben).
- Schaltung zu einer gegebenen einfachen logischen Funktion aufschrieben können.
- Halbaddierer und Voladdierer verstehen.
Lernziele VonNeumann-Architektur
- Grundprinzip der Von Neumann-Architektur verstehen (nur ein Speicher für Daten und Programme, Befehle werden sequenziell abgearbeitet nach dem Von Neumann-Zyklus.
- Was sind Hauptunterschiede zwischen dem Johnny-Simulator und einem „wirklichen“ Computer (z.B. bezüglich den verarbeiteten Daten, dem Bus-System, dem ALU)
- Grundkomponenten verstehen und Abkürzungen kennen: db, ab, ram, ins, pc, mc, acc
- Verstehen, dass die Daten bzw. Programme im RAM „zweiteilig“ gespeichert sind (2 Ziffern für den Befehl und 3 für die Daten).
- Unterschied zwischen Makro- und Mikro-Befehlen verstehen.
- Die Makrobefehle verstehen.
- Mikrobefehle zu den entsprechenden Makrobefehlen zuordnen können.
- Ein in Makrobefehlen gegebenes Programm erklären können, d.h. angeben können, was im Speicher/Akkumulator passiert.
D. Kryptographie
Symmetrische Kryptographie
- Unterschiede zwischen Blockchiffre und Stromchiffre kennen
- Feistel Netzwerk verstehen und ein Beispiel mit konkret gegebenen Verschlüsselungsfunktionen durchführen können
- Prinzip der Operationsmodi bei Blockchiffren kennen.
Hashfunktionen und MACs
- Erklären können, was eine Hashfunktion ist.
- Eigenschaften der Hashfunktion erklären können.
- Bereiche aufzählen können, wo Hashfunktionen eingesetzt werden.
- Warum ist es probematisch, eine schnelle Hashfunktion bei der Speicherung von Passwörtern zu verwenden?
- Was sind Rainbow-Tables und was bedeutet „Salz“ (Salt) in diesem Zusammenhang?
- Was sind MACs und wozu dienen sie?
- Wie schützen MACs die Integrität und die Authentizität?
- Was ist der Unterschied zwischen MACs und einer digitalen Signatur?
- Welches Problem löst die Digitale Signatur, welche MACs nicht lösen?
- Was sind AEAD-Algorithmen? Welche Konzepte werden durch sie realisiert?
Schlüsseltausch
- Was versteht man unter dem Schlüsseltauschparadoxon?
- Schlüsseltausch nach Diffie-Hellman durchführen können.
- Zeigen können, dass ein Wert g ein Generator von Z modulo n ist (Satz)
Asymmetrische Verschlüsselung und SSL/TLS
- Prinzip der Asymmetrischen Verschlüsselung verstehen
- Wie kann die Asymmetrische Verschlüsselung als digitale Signatur verwendet werden?
- Wozu sind Zertifizierungsstellen bei digitalen Zertifikaten nötig?
- Was sind Zertifizierungsketten (Chains of trust)?
- Wie läuft ein konkreter Verbindungsaufbau bei TLS/SSL ab?
- Warum werden nicht alle Daten asymmetrisch verschlüsselt?
- Bei einer Verbindung mit einer sicheren Seite wird in den DEV-Tools angezeigt: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, was bedeutet dies konkret (grob)?
Zero Knowledge Proofs
- Was ist ein Nullwissens-Beweis (Zero-Knowledge Proof)
- Gib konkrete Analogien, wie so ein Zero-Knowledge Proof durchgeführt werden könnte.
- Wozu kann man Zero-Knowledge Proofs verwenden? Gib konkrete Beispiele und den Vorteil, den sie zu herkömmlichen Verfahren bieten.
E. Datenstrukturen/Algorithmen/Komplexität
- O-Notation kennen
- Zu bestimmten Komplexitäten Algorithmen angeben können
- Bubblesort, Mergesort, Swapsort, Selectionsort verstehen und erklären können.
- Komplexität der oben genannten Sortieralgorithmen angeben und erklären können.
- Die Programme zu den vier Algorithmen erklären können.
- Problem des Handlungsreisenden erklären können und Kontexte geben, in welchen dieses wichtig ist.
- Erklären, wie man eine Ausgangslösung erhält. Anzahl mögliche Touren berechnen können.
- 2-Opt oder 3-Opt erklären können.
- Idee von Simulated Annealing erklären können.
- Grundprinzip des Ameisenalgorithmus erklären können.
F. KI und Neuronale Netze
- Erkläre die Begriffe „Künstliche Intelligenz“, „Maschinelles Lernen“, „Neuronale Netzwerke“
- Welche grundlegenden Prinzipien und Abläufe liegen der prozeduralen Programmierung, der objektorientierten Programmierung und neuronalen Netzwerken zugrunde, und worin unterscheiden sie sich? Erkläre an einem konkreten Beispiel.
- Wie funktionieren Neuronale Netzwerke und Maschinelles Lernen konkret? Erkläre die Begriffe:
- Neuronen, Gewichte (weights), Bias (Schwellwert)
- Schichten (Layers)
- Kostenfunktion
- Backpropagation
- Aktivierungsfunktion
- LLMs
- Erkläre grob, was ein LLM ist und wie es funktioniert
- Inwieweit kann man ein LLM als eine Mathematische Funktion bezeichnen?
- Was versteht man unter Pre-Training und RLHF (Reinforcement Learning from Human Feedback)?
- Warum brachte die Transformer-Architektur einen gewaltigen Vorteil gegenüber herkömmlichen Verfahren und worin besteht sie grob gesagt?
- Wie werden Wörter codiert? Was versteht man unter dem „Attention-Mechanismus“
- Was ist der Unterschied zwischen generativer und prädiktiver KI?
- Ein LLM gibt für ein und dieselbe Eingabe nicht immer dieselbe Ausgabe, ein Diffussionsmodell für die Bildgenerierung schon. Nimm zu dieser Aussage Stellung.
- Warum sind GPU (Graphikkarten bzw. Graphikprozessoren) in der KI so wichtig?
- Welche zwei Bedeutungen hat das Wort „Bias“ im Zusammenhang mit KI?
- Gib ein persönliches kurzes Statement ab bezüglich der These „Durch KI werden die durch die Studenten eingereichgten Produkte immer besser, obwohl sie in mündlichen Prüfungen immer schlechter abschneiden.“
- Was könnte unter den Begriffen „Skill Skipping“, „Kognitive Entlastung“ gemeint sein?
- Nenne Bereiche, die in Zukunft durch den Einsatz von KI komplett verändert werden könnten. Erkläre kurz.
- Nimm Stellung zu Problemen und ethischen Fragen, die durch KIs aufgeworfen werden.
- Dürfen KI-Modelle mithilfe von jeglichen Daten trainiert werden? (Urheberrecht)
- Dürfen KI-Systeme Entscheidungen selbst treffen (z.B. Verkehr)
- Welche Problematik stellen Deepfakes dar?