Zusammenfassung des Grundkurs Informatik Schuljahr 2011/12 – Schuljahr 2012/13 Dirk Bongartz GK Q2/13 Informatik, St. Wolfhelm Gymnasium Schwalmtal März 2013 1 Objektorientierte Programmierung (allgemein) 2 Datenstrukturen und Algorithmen (Q1/12.1) 3 Automaten und formale Sprachen (Q1/12.2) 4 Kryptographie (Q1/12.2) 5 Datenbanken (Q2/13.1) 6 Netzwerkprogrammierung (Q2/13.1) 7 Turingmaschinen und Berechenbarkeit (Q2/13.2) Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 1 Objektorientierte Programmierung (allgemein) 2 Datenstrukturen und Algorithmen (Q1/12.1) 3 Automaten und formale Sprachen (Q1/12.2) 4 Kryptographie (Q1/12.2) 5 Datenbanken (Q2/13.1) 6 Netzwerkprogrammierung (Q2/13.1) 7 Turingmaschinen und Berechenbarkeit (Q2/13.2) 8 Mündliches Abitur Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Grundlagen Software-Lebenszyklus — nicht explizit Vorgaben Klasse, Objekt Attribut, Konstruktor, Methode (Anfrage/Auftrag) Geheimnisprinzip UML-Klassendiagramme (Entwurfs- und Implementierungsdiagramme (gerichtete) Assoziation mit Multiplizität Vererbung Vererbungskonzept Abstrakte Klassen Polymorphie Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Grundlagen Software-Lebenszyklus — nicht explizit Phasenmodell Problem . . . Problemanalyse → Andorderungsdefinition . . . Entwurf → Spezifikation . . . Implementierung → dokumentiertes Programm . . . Funktionsüberprüfung → modifiziertes Programm . . . Installation/Abnahme → anforderungsgerechtes Produkt Wartung → Verschrottung Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Vorgaben Lineare Strukturen Schlange und Stapel (Anwendung und Implementierung der Standardoperationen) Lineare Liste (Anwendung der Standardoperationen) Such- und Sortieralgorithmen für Felder und Listen Suchen Sortieren durch direktes Einfügen (Insertionsort) Baumstrukturen Binärbaum (Anwendung der Standardoperationen, Traversierungsalgorithmen) Binärer Suchbaum (Anwendung der Standardoperationen) Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Arrays und Listen Arrays: statische Größe, direkter Zugriff Einfach verkettete Liste Implementierung: Element, Liste, (Object) Implementierung: Suchen, Anhängen, Löschen, ... Erweiterung: Doppelt verkettete Liste Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Abstrakte Datentypen — ADT Stapel (Stack) LIFO-Speicher Operationen: push, pop, top, isEmpty Implementierung (Anwendung: Klausurenstapel) → 1. Klausur GK Q1/12 Informatik Schlange (Queue) FIFO-Speicher Operationen: dequeue, enqueue, first, isEmpty Implementierung (direkt und als Unterklasse von List) Anwendung: Patientenwarteschlange Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Graphen — nicht explizit Definition aus Knoten und Kanten, G = (V, E) Beispiele: Königsberger Brückenproblem (Eulerkreis-Problem) Haus vom Nikolaus Repräsentationsformen: Adjazenzmatrix, Adjazenzliste Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Bäume, Binärbäume und Suchbäume Baum: zusammenhängender, kreisfreier, ungerichteter Graph Binärbaum: Jeder Knoten hat maximal 2 Söhne. Verfahren zum Durchlauf von Binärbäumen (Traversierung) Rekursiv: Inorder, Preorder, Postorder Termbäume: Beziehung zu Infix-, Postfix-, Prefixnotation Datenkompression: Huffman-Kodierung Binäre Suchbäume: Suchbaumeigenschaft Operationen: Einfügen, Löschen, Suchen rekursive Implementierung mit abstrakten Klassen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Effizienzmessung/Laufzeitmessung Bestimmung der (ungefähren) Anzahl der elementaren Operationen des Programms abhängig von der Größe der Eingabe. nur Größenordnung interessant → keine Konstanten, Koeffizienten, etc. Landau-Symbole (Oh-Notation) f : N → R+ O(g(n)) := {f (n) | es gibt ein c ≥ 0 und ein n0 ∈ N, so dass für alle n ≥ n0 gilt: f (n) ≤ c · g(n)} Ω(g(n)) := {f (n) | es gibt ein c > 0 und ein n0 ∈ N, so dass für alle n ≥ n0 gilt: f (n) ≥ c · g(n)} Θ(g(n)) := O(g(n)) ∩ Ω(g(n)). Messung der Laufzeit bei Listen-Operationen, Stack-Operationen, Baumdurchläufen, Sortieralgorithmen, etc. Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Konzept: Rekursion binäre Suche Fakultät, Fibonacci-Folge Euklidischer Algorithmus zur Berechnung des ggT Pythagoras-Baum Rekursiver Aufbau von Bäumen (vgl. 2. Klausur GK Q2/12) Türme von Hanoi Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Konzept: Teile und Herrsche 1 Aufteilen eines Problems in Teilprobleme 2 Lösen der Teilprobleme (rekursiv) 3 Zusammenfügung der Lösungen der Teilproblem zur Lösung des Gesamtproblems Beispiele: Binäre Suche — Herrsche Schritt entfällt Quicksort Mergesort Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Konzept: Dynamische Programmierung Bottom-Up-Berechnung der Fibonacci-Zahlen CYK-Algorithmus Alignment zweier Strings Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Datenstrukturen Algorithmen Sortieralgorithmen Selectionsort Bubblesort Insertionsort Quicksort Mergesort Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Vorgaben Modellieren kontextbezogener Problemstellungen als deterministische endliche Automaten Darstellung von deterministischen endlichen Automaten als Graph und als Tabelle Formale Sprachen: Reguläre Sprachen und ihre Grammatiken Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Deterministische endliche Automaten (DEA) Definition M = (Q, Σ, δ, q0 , F ), Sprache des Automaten formale und graphische Darstellung Pattern-Matching-Automat Konstruktion von Automaten für verschiedene Sprachen L = {an bn | n ∈ N } ist nicht durch einen DEA erkennbar (indirekter Beweis) Abschluss unter Schnitt, Vereinigung, Differenz (Produktautomat) Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Nicht-deterministische endliche Automaten (NEA) Definition: wie DEA – allerdings Übergangsrelation statt linearer Berechnung (DEA), Berechnungsbaum Umwandlung in DEA durch Potenzmengenkonstruktion Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Grammatiken Definition G = (N, T, P, S), Nichtterminalalphabet, Terminalalphabet, Produktionsregeln, Startsymbol Einschränkungen zu den Produktionsregeln → Chomsky-Hierarchie Typ-0-Grammatiken: keine Einschränkungen (entsprechen TM) Typ-1-Grammatiken: rechte Regelseite ist nicht kürzer als linke (kontextsensitive Sprachen, entsprechen linear beschränkten, nichtdeterm. TM) Typ-2-Grammatiken: linke Regelseite nur Nichtterminal (kontextfreie Sprachen, entsprechen Kellerautomaten) Typ-3-Grammatiken: rechte Regelseite enthält maximal ein Nichtterminal (reguläre Sprachen, entsprechen endlichen Automaten) rechtsregulär A → bC und D → e linksregulär A → Bc und D → e Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Grammatiken und endliche Automaten DEA → Typ-3-Grammatik Typ-3-Grammatik → NEA Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Endliche Automaten Grammatiken Ergänzungen Kellerautomaten Wortproblem für kontextfreie Sprachen und CYK-Algorithmus Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung Vorgaben Modellieren kontextbezogener Problemstellungen als Datenbanken mit dem Entity-Relationship-Modell Normalisierung: Überführung einer Datenbank in die 1. bis 3. Normalform Relationenalgebra (Selektion, Projektion, Vereinigung, Differenz, kartesisches Produkt, Umbenennung, Join) SQL-Abfragen über eine und mehrere verknüpfte Tabellen Datenschutzaspekte Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung Entity-Relationship-Diagramme Entities: Objekte der Datenbank Relationships: Beziehungen zwischen Entities Kardinalität: 1:1, 1:n, n:m Attribute: Näherer Beschreibung von Entities und Relationships zusammengesetzte Attribute: z.B. PLZ und Ort als Adresse mehrwertige Attribute: z.B. mehrere Buchautoren IS-A-Beziehung: Spezialisierung/Generalisierung im Sinne einer Vererbung Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung Relationale Datenbanken Grundlegendes Element: Relationen/Tabellen Übersetzung von ER-Diagrammen in Relationen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung Normalisierung Update-Anomalien Einfüge-Anomalie Lösch-Anomalie Änderungs-Anomalie Definition: Funktionale Abhängigkeit Normalformen 1 2 3 1. Normalform: alle Attribute sind atomar (nicht zusammengesetzt, nicht mehrdeutig) 2. Normalform: 1. NF und jedes Nichtschlüsselattribut ist nur von der gesamten Schlüsselmenge aber nicht von einem Teil funktional abhängig. 3. Normalform: 2. NF und keine transitive Abhängigkeit eines Nichtschlüsselattributs vom Schlüssel. Erzeugung von Normalformen → Dekomposition in mehrere Tabellen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung Relationale Algebra Selektion: S[B]R = {r | r ∈ R ∧ B(r)} Projektion: P [L]R = {r(L) | r(L) ∈ R} Equi Join: R1[AΘB]R2 = {r1 ⊕ r2 | r1 ∈ R1∧ r2 ∈ R2∧ A(r1 ) = B(r2 )} Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Modellierung SQL — Anfragesprache SELECT Attributliste FROM Relationen WHERE Bedingungen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Vorgaben Modellieren und implementieren kontextbezogener Problemstellungen als Netzwerkanwendungen Netzwerkprotokolle Client-Anwendungen Client-Server-Anwendungen Kryptografie Symmetrische Verschlüsselungsverfahren (Caesar, Vigenére) Asymmetrische Verschlüsselungsverfahren (RSA) Schlüsselaustausch (Diffie-Hellmann) Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Klassische Kryptographie Caesar Vigenere One-Time-Pad Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Public-Key-Kryptographie Allgemeines Prinzip: Public-Key, Private-Key, Einwegfunktionen RSA-Verfahren Schlüsselgenerierung Verschlüsselung Endschlüsselung Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 RSA-Implementierung Modulare Binäre Exponentiation Erweiterter Euklidischer Algorithmus Primzahltest Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Netzwerkprogrammierung Grundlagen: Aufbau von Netzwerken Schichtenmodelle (ISO/OSI, TCP/IP) Time-Client Nebenläufige Prozesse/Threads POP3-Protokoll Chat-Client/Chat-Server Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Grundlagen Turingmaschinen Definition Vergleich zu endlichen Automaten Graphische Darstellung Turingmaschinen zur Berechnung von Funktionen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Abzählbar und Überabzählbar Definition Eine Menge A heißt abzählbar, wenn sie entweder endlich ist oder durch eine Bijektion auf die natürlichen Zahlen abgebildet werden kann, d.h. jedem Element in A kann genau eine natürliche Zahl zugeordnet werden und umgekehrt. Die Elemente der Menge A können durchnumeriert werden. Eine unendliche abzählbare Menge besitzt die gleiche Mächtigkeit wie die Menge der natürlichen Zahlen. Die Menge aller geraden Zahlen ist abzählbar. Die Menge der ganzen Zahlen ist abzählbar. Die Menge der rationalen Zahlen ist abzählbar. Die Menge der reellen Zahlen ist (schon im Intervall [0..1] überabzählbar. Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Kodierung von Turingmaschinen Turingmaschinen können durch eine Folge von 0 und 1 kodiert werden. Man kann feststellen, ob eine 01-Folge die Kodierung einer TM darstellt. Man kann die i-te Kodierung einer TM generieren. Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Berechenbar? entscheidbar / rekursiv semi-entscheidbar / rekursiv aufzählbar Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Diagonalisierung und Diagonalsprache Definition Diagonalsprache: Ldiag = {w ∈ {0, 1}∗ | w = wi und Mi akzeptiert wi nicht}. Theorem Die Diagonalsprache Ldiag ist nicht rekursiv aufzählbar. (Diagonalisierungsverfahren) Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Turingmaschinen Berechenbarkeit Methode der Reduktion Anwendung: L∁diag ist nicht entscheidbar, Ldiag ≤R L∁diag LU ist nicht entscheidbar, L∁diag ≤R LU LH ist nicht entscheidbar, LU ≤ LH . Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Mündliches Abitur Organisatorisches Kommission: Vorsitzender, Schriftführer, Prüfer 30 min Vorbereitungszeit etwa 20 min Prüfungszeit (10 + 10 min) mindestens 2 Themenblöcke aus unterschiedlichen Halbjahren zunächst der vorbereitete Prüfungsteil, anschließend weitere Fragen zwischenzeitliche, abkürzende Unterbrechungen Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Mündliches Abitur Mögliche mündliche Prüfung — I Da immer mehr Geschäfte auf elektronischer Basis getätigt werden, wird der Ruf nach einer verlässlichen elektronischen Signatur lauter. Diese soll dazu dienen, eine elektronische Nachricht eindeutig einem Verfasser zuzuordnen. Hierzu verwendet man Methoden der so genannten Public-Key-Kryptographie. Der Verfasser signiert dazu seine Nachricht mit einem Schlüssel, der von einem Außenstehenden als die persönliche Unterschrift identifiziert werden kann. Dazu wird er in der Regel die Nachricht zum einem als Klartext verschicken und zum anderen in verschlüsselter Form. Stimmen die Klartextnachricht und die entschlüsselte Nachrichte überein, ist von einer korrekten Identität des Senders auszugehen. Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Mündliches Abitur Mögliche mündliche Prüfung — II 1 Beschreiben Sie das RSA-Verschlüsselungsverfahren (Schlüsselerzeugung, Verschlüsselung, Entschlüsselung) und erläutern Sie daran das allgemeine Schema der Public-Key-Kryptographie. 2 Vergleichen Sie die die Public-Key-Kryptographie mit einem Verfahren der klassischen Kryptographie. Diskutieren Sie Vorund Nachteile. 3 Beschreiben Sie, wie ein Verfahren zu Erzeugung einer elektronischen Signatur mit dem RSA-Verfahren durchgeführt werden könnte. 4 Analysieren Sie dieses Verfahren auf mögliche Schwachstellen – insbesondere, wenn die versandte Nachricht nicht unbedingt sinnvoll sein muss (z.B. Zufallstext als Schlüssel für eine weitere Kommunikation). Dirk Bongartz Zusammenfassung GK Informatik 2011–2013 Mündliches Abitur VIEL ERFOLG !!! Fragen an: [email protected] Dirk Bongartz Zusammenfassung GK Informatik 2011–2013