Abiturvorbereitung - Gymnasium St. Wolfhelm

Werbung
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
Herunterladen