Informatik A - Wiederholung

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