Informatik A - Wiederholung
Informatik A - Wiederholung
Informatik A - Wiederholung
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
Norbert Fuhr
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
Vom Lernen und Vergessen<br />
Am Ende einer Vorlesung wissen die Studenten noch ca. 50%<br />
des vorgetragenen Stoffes<br />
Nach einer Woche erinnern sie sich noch an 10-15%<br />
Nach drei Monaten ist die Menge des behaltenen Wissens<br />
praktisch nicht mehr messbar<br />
„Sage es mir, und ich vergesse es;<br />
zeige es mir, und ich erinnere mich;<br />
lass’ es mich tun, und ich behalte es.“<br />
(Konfuzius)
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
I Logik<br />
I.1 Aussagenlogik<br />
I.1 Aussagenlogik<br />
Definition/Konstruktion von Formeln<br />
Klausel, konjunktive Form, disjunktive Form<br />
Begriffe: Interpretation, Modell, unerfüllbare Formel,<br />
Tautologie<br />
Beweis über Wahrheitstafeln<br />
Axiomatische Beweisverfahren<br />
Äquivalenzregeln<br />
Definition: Folgerungsbegriff<br />
Schlussregeln<br />
Anforderungen an Axiomensysteme<br />
Hilberts Axiomensystem<br />
Automatisches Beweisen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
I Logik<br />
I.2 Prädikatenlogik<br />
I.2 Prädikatenlogik<br />
Syntax<br />
Semantik: Interpretation der syntaktischen Symbole<br />
Schlussregeln und Äquivalenzen<br />
Entscheidbarkeit von PL1
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
II Schaltfunktionen<br />
II.1 Zahlendarstellung<br />
II.1 Zahlendarstellung<br />
Definition b-adisches System<br />
Umrechnung Dezimal ↔ Basis b<br />
Negative Zahlen: Einer- Zweierkomplement,<br />
Gleitkommazahlen nach IEEE<br />
Darstellung<br />
normalisierte/unnormalisierte Darstellung<br />
Null, ∞, NaN<br />
Umwandlung Dezimal → Binär
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
II Schaltfunktionen<br />
II.2 Boolesche Algebra<br />
II.2 Boolesche Algebra<br />
Definition<br />
Gesetze<br />
Potenzmenge und Boolesche Algebra
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
II Schaltfunktionen<br />
II.3 Schaltfunktionen<br />
II.3 Schaltfunktionen<br />
Definition: Schaltfunktion, totale Sf, Boolesche Sf<br />
Disjunktive Normalform<br />
Minterme, einschlägiger Index, Darstellungssatz<br />
Funktionale Vollständigkeit<br />
Konjunktive Normalform<br />
Maxterme<br />
Umwandlung disjunktive → konjunktive Normalform
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
II Schaltfunktionen<br />
II.4 Schaltnetze<br />
II.4 Schaltnetze<br />
Arten von Bausteinen<br />
Kriterien für Schaltungen<br />
Graphen<br />
Definition<br />
ungerichteter/gerichteter Graph<br />
Pfad<br />
Zyklus<br />
DAG: Gerichteter, azyklischer graph<br />
Darstellung eines Schaltnetzes als Graph
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
II Schaltfunktionen<br />
II.5 Ringsummennormalform<br />
II.5 Ringsummennormalform<br />
Definition RNF<br />
Äquivalenzen<br />
Definition komplementfreie RNF<br />
Herleitung der komplementfreien RNF
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
III Schaltnetze und ihre Optimierung<br />
III.2 Vereinfachung von Schaltnetzen<br />
III.2 Vereinfachung von Schaltnetzen<br />
Vereinfachung durch Resolution<br />
Karnaugh-Diagramme<br />
Aufbau<br />
Maximaler Block/Minimaler Ausdruck<br />
Partielle Boolesche Funktionen<br />
Verkürzte Ringsummennormalform<br />
Disjunktive Form, Kostenmaß<br />
Implikanten und Primimplikanten<br />
Quine & Clusky Verfahren
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
III Schaltnetze und ihre Optimierung<br />
III.3 Fehlerdiagnose von Schaltnetzen<br />
III.3 Fehlerdiagnose von Schaltnetzen<br />
Fehlermöglichkeiten<br />
Schaltungsabhängige Fehlerdiagnose: Annahmen, Ansatz<br />
1 Fehlerfunktionen<br />
2 Äquivalente Funktionen<br />
3 Ausfallmatrix<br />
4 Fehlermatrix<br />
Schaltungsunabhängige Fehlerdiagnose: Annahmen, Ansatz<br />
1 Testpaare<br />
2 Minimale Testmenge
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
III Schaltnetze und ihre Optimierung<br />
III.4 Hazards in Schaltnetzen<br />
III.4 Hazards in Schaltnetzen<br />
Ursachen für Hazards<br />
Arten von Hazards<br />
Statischer Funktionshazard<br />
Definition<br />
Bestimmung<br />
Statischer Schaltungshazard: Definition
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IV Schaltwerke<br />
IV.1 Flip-Flops<br />
IV.1 Flip-Flops<br />
Verhalten von Bistabiler Kippstufe<br />
RS-Flip-Flop: Aufbau, Wahrheitstabelle<br />
JK-Flip-Flop: Aufbau, Wahrheitstabelle<br />
D-Flip-Flop: Aufbau, Wahrheitstabelle
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IV Schaltwerke<br />
IV.2 Sequentielle Schaltungen<br />
IV.2 Sequentielle Schaltungen<br />
Mealy-Automat: Definition<br />
Beispiele<br />
2-Bit Register<br />
1–Bit Addition<br />
Modulo 6 Zähler<br />
Automat, Übergangstabelle, Realisierung
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IV Schaltwerke<br />
IV.3 Lineare Schaltkreise<br />
IV.3 Lineare Schaltkreise<br />
Bausteine<br />
Codierung/Decodierung<br />
Multiplikationsschaltung<br />
Divisionsschaltung
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
V Programmierbare Logische Arrays (PLAs)<br />
V Programmierbare Logische Arrays (PLAs)<br />
Basisbausteine<br />
Aufbau: UND-, ODER-Ebene<br />
Programmieren von PLAs<br />
2m Bits als Steuerungsprogramm<br />
Variante: Einspeisung von Variablen und deren Negation<br />
Variante: feste Produktterme (PAL)<br />
Anwendung: ROM<br />
Anwendung: Schaltwerke
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
VI VLSI-Schaltungen<br />
VI VLSI-Schaltungen<br />
Technologie<br />
Maßzahlen<br />
Komplexität: # Anschlüsse, Rechenzeit
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
VII Schaltungen für Addition und Subtraktion<br />
VII Schaltungen für Addition und Subtraktion<br />
Serieller Volladierer<br />
Pipeline-Addierer<br />
Von-Neumann-Addierwerk<br />
Carry-Look-Ahead Addition<br />
Multiplikationsschaltung<br />
Multiplikationsalgorithmus
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
VIII Von–Neumann–Rechner<br />
VIII Von–Neumann–Rechner<br />
Grundlegende Architektur<br />
Aufbau einer (minimalen) CPU<br />
Datenprozessor<br />
Befehlsprozessor<br />
Zwei-Phasen-Verarbeitung<br />
Speicheraufbau:<br />
Dimensionen<br />
Hierarchie<br />
Busse: Adressbus, Datenbus, I/O-Busse<br />
Input/Output: Asynchronität, I/O-Controller<br />
Interupts<br />
Optimierung<br />
Pipelining<br />
Parallelität
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IX Eine kleine Programmiersprache<br />
IX.1 Syntaktische Beschreibungsmittel<br />
IX.1 Syntaktische Beschreibungsmittel<br />
Chomsky-Grammatik<br />
Grammatik-Typen<br />
Erweiterte Backus–Naur–Form<br />
Syntaxdiagramme<br />
Überführung von EBNF in Syntaxdiagramme
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IX Eine kleine Programmiersprache<br />
XI.2 Syntax von Mini–Pascal<br />
XI.2 Syntax von Mini–Pascal<br />
Variablen, Konstanten, Prozeduren<br />
Statements<br />
Expressions<br />
Verzweigungen und Schleifen<br />
Blockschachtelung
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IX Eine kleine Programmiersprache<br />
XI.3 Mini-Assembler<br />
XI.3 Mini-Assembler<br />
Instruktionen<br />
Stapelmaschine<br />
Datenstapel<br />
Aktivierungsblock<br />
Instruktionszähler<br />
Programmspeicher<br />
Semantik von Befehlen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
IX Eine kleine Programmiersprache<br />
XI.4 Semantik von Mini–Pascal<br />
XI.4 Semantik von Mini–Pascal<br />
Übersetzung von Expressions<br />
Übersetzung von Statements<br />
Übersetzung von Verzweigungen und Schleifen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
X Von Mini–Pascal zu Pascal<br />
X.1 Pascal Datentypen<br />
X.1 Pascal Datentypen<br />
Begriffe: Typ, Variable, Zuweisung<br />
Einfache Datentypen<br />
Typkonstruktoren<br />
array<br />
record, case<br />
set<br />
Zeigertypen: Deklaration, Operationen<br />
Listenoperationen mit Zeigern<br />
Erzeugen<br />
Einfügen<br />
Suchen<br />
Löschen<br />
Dateien: Deklaration, Operationen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
X Von Mini–Pascal zu Pascal<br />
X.2 Kontrollstrukturen, Prozeduren, Funktionen<br />
X.2 Kontrollstrukturen, Prozeduren, Funktionen<br />
Kontrollstrukturen: repeat, for, if, case<br />
Prozeduren, forward-Deklaration<br />
Wert- vs. Referenzparameter<br />
Funktionen<br />
Beispiel: Minicompiler<br />
Hauptprogramm<br />
Regel für Wertzuweisung<br />
Regel für Ausdruck<br />
Regel für Term<br />
Regel für Faktor
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
X Von Mini–Pascal zu Pascal<br />
X.3 Objektorientierte Programmierung in Pascal<br />
X.3 Objektorientierte Programmierung in Pascal<br />
Grundbegriffe der Objektorientierten Programmierung<br />
Objekttyp<br />
Kapselung<br />
Vererbung<br />
Konstruktor<br />
Destruktor<br />
Methoden
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
X Von Mini–Pascal zu Pascal<br />
X.4 C vs. Pascal<br />
X.4 C vs. Pascal<br />
Unterschiede im Typsystem<br />
Unterschiede in den Operatoren<br />
Unterschiede in den Kontrollstrukturen<br />
Prozeduren, Funktionen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XI Prolog<br />
XI.1 Von Logik zu Prolog<br />
XI.1 Von Logik zu Prolog<br />
Hornklauseln<br />
Imperative Programmiersprachen vs. Logiksprachen<br />
Komponenten eines Prologprogramms<br />
Fakten<br />
Regeln<br />
Anfragen<br />
Rekursive Regeln
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XI Prolog<br />
XI.2 Syntax und Semantik von Prolog<br />
XI.2 Syntax und Semantik von Prolog<br />
Syntax: Konstante, Variablen<br />
Syntax: Strukturen<br />
Semantik: Grundbegriffe: Instanziierung, Unifikation<br />
Gleichheit<br />
Gleichheit: Beispiele<br />
Semantik: Inferenz<br />
Inferenz: Und-Oder-Baum<br />
fail: Erzwingen von Backtracking<br />
Cut: Unterbinden von Backtracking
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XI Prolog<br />
X.3 Rekursive Regeln<br />
X.3 Rekursive Regeln<br />
Begriffe<br />
closed world assumption<br />
Prozedurale Bedeutung<br />
Deklarative Bedeutung<br />
Rekursive Inferenz: richtige/falsche Anordnung
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XI Prolog<br />
XI.4 Listen<br />
XI.4 Listen<br />
Notationsmöglichkeiten: flach, Kopf+Rest, Punktnotation,<br />
Funktornotation<br />
Mitgliedschaft<br />
Kombination<br />
Hinzufügen und Löschen<br />
Teillisten und Inverse<br />
Mengenoperationen<br />
Design Pattern für Umgang mit Listen<br />
Sortieren durch Einfuegen<br />
Bubblesort<br />
Quicksort
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XI Prolog<br />
XI.5 Umgang mit Baumstrukturen<br />
XI.5 Umgang mit Baumstrukturen<br />
Symbolisches Differenzieren<br />
Vereinfachung Arithmetischer Ausdrücke<br />
Symbolisches Differenzieren mit Vereinfachung
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.1 Überblick<br />
XII.1 Überblick<br />
Charakteristika funktionaler Programmiersprachen<br />
Funktionen als “first class values”<br />
Striktes Typsystem<br />
Freiheit von Seiteneffekten
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.2 Variablen und Funktionen<br />
XII.2 Variablen und Funktionen<br />
Variablenzuweisung<br />
Lexikalisches Scoping<br />
Funktionendeklaration<br />
Funktionen als ”first class values”<br />
Currying<br />
Funktionen höherer Ordnung<br />
Rekursive Funktionen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.3 Pattern Matching<br />
XII.3 Pattern Matching<br />
Syntax<br />
Bereichspatterns<br />
Unvollständige Matches
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.4 Polymorphismus, Tupel, Listen<br />
XII.4 Polymorphismus, Tupel, Listen<br />
Parametrisierte Typen<br />
Tupel<br />
Listen<br />
Polymorphe Listen<br />
Funktionen höherer Ordnung auf Listen<br />
Quicksort in OCaml
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.5 Union Types<br />
XII.5 Union Types<br />
Binäre Bäume<br />
Patternmatching mit Union Types<br />
Ungeordnete Bäume<br />
Einfügen<br />
Suchen<br />
Geordnete Bäume<br />
Einfügen<br />
Suchen
<strong>Informatik</strong> A - <strong>Wiederholung</strong><br />
XII Funktionale Programmiersprachen<br />
XII.6 Objektorientierte Programmierung in OCaml<br />
XII.6 Objektorientierte Programmierung in OCaml<br />
Deklaration von Klassen, Instanzvariablen und Methoden<br />
Aufruf von Methoden<br />
Instanziierung von Objekten<br />
Aufruf eigener Methoden<br />
Initializer<br />
Virtuelle Methoden<br />
Private Methoden<br />
Vererbung<br />
Mehrfachvererbung