Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

SE1 by Mind Map: SE1
0.0 stars - reviews range from 0 to 5

SE1

Einführung

Konzepte

Lernziel ist, Konzepte definieren, identifizieren, anwenden und Beispiele geben zu können.

Softwaresysteme

Was sind die Haupteigenschaften von Softwaresystemen?

Wie messen wir Softwaresysteme?

Definiere und identifiziere: Softwaresystem, Schnittstelle, Systemumgebung, Plattform

Was sind die Hauptschritte des Softwareentwicklungsprozesses?

Was sind die prinzipiellen Ausführungsvarianten für Software?

Formale Sprachen

Konzepte

Zeichen, Symbol, Zeichenreihe, formale Sprache

Gib die mathematische Definition einer SDmSD

Gib die Grundtypen der Syntaxdiagramme an.

Erkenne, ob eine Zeichenreihe zu einer gegebenen SDmSD konform ist.

Leite Beispielzeichenreihen aus einer SDmSD ab.

Gib die mathematische Definition einer kontextfreien Grammatik.

Konzepte

Ableitung, direkte Ableitung, Linksableitung, Rechtsableitung, Sprache, Satz, Satzform, mehrdeutiger Satz, eindeutiger Satz, Ableitungsbaum, Strukturbaum

Identifiziere, ob eine Grammatik kontextfrei ist.

Erkenne, ob eine Zeichenreihe einer kfG entspricht.

Erkläre den Unterschied zwischen Syntax und Semantik

Erkläre, wie Semantik aus Syntax abgeleitet werden kann (wie im Beispiel in der Vorlesung).

Paradigmen der Softwarentwicklung

Konzepte

deklarative Programmierung, logisches Programmieren, prozedurales Programmieren, objektorientiertes Programmieren

Funktionales Programmieren

Vertrautheit mit den algorithmischen Beispielen

wandle numerische Formeln in Haskellfunktionen um

berechne Fibonaccizahlen

berechne die Fakultätsfunktion

Hypothekentilgung

Berechnung von Quadratwurzel

Funktionen im Allgemeinen

Konzepte, partielle, totale Funktionen, Funktionsanwendung, Auswertung / Evaluierung, Terminierung, normal, abrupt, nicht-terminierend

Entscheidbarkeit der Terminierung

McCarthyfunktion

Werte, Typen, Datenstrukturen

Konzepte, Werte, Typen, Datenstrukturen, Signaturen, Stelligkeit, Überladen, Infixsyntax, Operatorenpräzedenz, Operatorensyntax in Haskell: (+), `plus`, Kategorien von Typen, elementare Daten, Zahlen, Wahrheitswerte, Zeichen, zusammengesetzte Werte, Listen, Wertepaare, partielle Funktionen, Zahlen mit beschränkten Wertebereichen

Datenstrukturen, Haskell Datenstrukturen, Bool, Integer, Int, Float, Double, übliche Funktionen/Operatoren und ihre Typen

Notation, Ganzzahlen (123, 0x3f3, 0o177), Gleitkommazahlen, Zeichen, Zeichenreihen

Aufbau funktionaler Programme

Beschreibung von Werten, Ausdrücke / Expressions, Präzedenzregeln

Deklaration und Bezeichnerbindung

Wertevereinbarung

Funktionsvereinbarung

Typvereinbarung

Lambdanotation

Funktionsdeklaration, direkte Wertevereinbarung mit Lambda, Funktionsdeklaration, Funktionsdeklaration mit Fallunterscheidung, Fallunterscheidung mit Mustern, rekursive Funktionsdeklaration

Rekursion, lineare Rekursion, repititive Rekursion, geschachtelte Rekursion, kaskadenartige Rekursion

zusammengesetze Datenstrukturen

Listen

Paare

n-Tupel

Schachteln

Muster in Deklarationen

noch Syntax

let

New node

benutzerdefinierte Datentypen

type

data

Summentypen

Konzepte, Konstruktorfunktion, Diskriminatorfunktion, Selektorfunktion, deriving (Eq,Show)

Aufzählungstypen

Stelligkeit von Konstruktoren

rekursive Datentypen

Definition von Listen

Definition von Binärbäumen

Konzepte, Baum, Knoten, Blatt, innerer Knoten, Zweig, Wurzel, Markierung, Binärbaum, Unterbaum, sortierte Bäume, Tiefe, Niveau, Höhe, Größe

Prozedurales Programmieren

Analogie Java / Haskell

gemeinsam, Funktionen, Rekursion, Verbundtypen, Listen

neu, Anweisungen, Wertezuweisung, Schleifen, Felder, L-values

Java Konstrukte

Bloecke

Variablendeklaration

Wertezuweisung

Funktionen, Prozeduren als spezielle Funktionen, void

Bedingungen, if else, switch case

Schleifen, while, do...while, for, break, continue

Datentypen, einfache Datentypen, int, float, double, char, einfache Datentypen (Referenzen), String, Felder, Konstruktor, Selektorfunktion, L-values / R-values, Rekursion:Listen :: Iteration:Felder, Verbundtypen, Konstruktor, Selektorfunktionen, L-values / R-values

Prozedurale Programmierung

Ausdruecke, beachte Bitarithmetik

Variablen, Sichtbarkeit, Scope, Verschattung, shadowing / hiding

Seiteneffekte, reine Funktionen, pure functions, globale und lokale Variablen, Programmzustand und globale Variablen

Sichtbarkeit von Bezeichnern, Vergleich mit Dynamic Scoping, Lexical Scoping

Werte- und Referenztypen, null, Speicherraepresentation, Kastendiagramme (s.u.)

Schleifen und Rekursion - Äquivalenz

Programmablaeufe

Argumentuebergabe, call-by-value, call-by-need, Beispielprogramm Ite, Zustaende, Ausfuehrungszustand, Speicherzustand, Steuerzustand, Nachfolgezustand, Ausfuehrungsschritt, Aktion, Ablauf, Seqeuenz von Ausfuehrungszustaenden, Sequenz der ausgefuerhten Aktionen

Debugger, Beispielprogramm Abzahlung, Effizienz, Zeitkomplexitaet = Anzahl der Schritte in Abhaengigkeit der Groesse der Eingabe, Raumkomplexitaet = Speicherplatz in Abhaengigkeit der Eingabewerte, spaeter, koennen wir die Abzahlung effizienter berechnen, illustriere PC, illustriere Variablenzustand, illustriere Interaktion mit print, print debugging, assertions vs print, assert expression;, assert expression : message;

Tracing, automatisch, manuell, "Instrumentierung", print, print debugging, Beispielprogramm Fib und FibLoop

Profiling, Zeit / #Aufrufe, automatisch, manuell, Speicher, automatisch, manuell, Beispielprogramm Fib und FibLoop

Prozedurale Programmierung

Determinismus, deterministische Zustandsfolge, "deterministischer Algorithmus", deterministische Ergebnisse, "determinierter Algorithmus", nicht-deterministische Algorithmen, Las Vegas Algorithm, always correct, sometimes slow, Monte Carlo, always fast, sometimes wrong, Beispiel: division mit choose

Inkarnation, procedure activation record, Speicherplatz fuer lokale Variblen, gegenwaertige Anweisung (wo wir zurueckkehren muessen), Lebensdauer, Prozeduraufrufbaum

Speicher, lokale Variablen (in Prozeduraufrufen), globale Variablen, Objekte, Felder, Verbundtypen, first-fit memory allocator, Beispiel; benutzerdefinierter Keller

Kastendiagramme, Felder, Verbundtypen, Objektreferenzen und Pfeile, pseudo-2D Felder

Listen in prozeduralen Sprachen

Baeume in prozeduralen Sprachen, Geflechte

Kastendiagramme fuer Prozeduraufruf

Umwandlung von rekursiven in Stackalgorithmen

automatische Programmtransformation

Prozedurale Algorithmen und Analyse