30.10.2013 Aufrufe

Informatik A - Wiederholung

Informatik A - Wiederholung

Informatik A - Wiederholung

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!