STRUKTURIERTES [height=4ex] - Fakultät für Mathematik und

Werbung
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Teil I
STRUKTURIERTES
Was ist Informatik ?
PROGRAMMIEREN
Vorlesung im Wintersemester 2017
Prof. E.G. Schukat-Talamazzini
Stand: 18. Oktober 2017
Technische Konstruktion leistungsfähiger
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Elektronengehirne ... ... ... ... ?
Informationsverarbeitung
Softwareentwicklung
Die wahre Geschichte des Digitalrechners
Geschichte des Computers
Information
Informationsverarbeitung
Softwareentwicklung
Zusammenfassung
Meilensteine
der Rechnerentwicklung
• erste CPUs betreten
das Festland
Lungenatmung
• frühe phönizische
Feldeffekttransistoren
• Goethes Farbenlehre in
LATEX
Der erste PC lief unter GoethixTM
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Rechenleistung und Speicherleistung
Informationsverarbeitung
Softwareentwicklung
Σ
Rechnerhardware und ihre Kosten
Rechenleistung ·
Exponentielles Wachstum seit der Jahrhundertmitte
Speicherplatz ·
Abmessungen ·
Anschaffungspreis
Planungssicherheit beim Arbeitsplatzrechner
The machine you want always costs $5,000.
Mooresches
Gesetz
Each new chip
contains roughly
twice as much
capacity as its
predecessor, and
each chip is
released within
18–24 months of
the previous chip.
Die Monopolisierung der Chipentwicklung
The cost of capital equipment to build semiconductors will double
Arthur Rock
every four years.
Law of Accelerating Returns
Doppelt exponentielle Steigerung der Leistungsfähigkeit:
Die Rechenleistung pro 1000 Dollar verdoppelte sich in den Jahren 1910
bis 1950 im Abstand von drei Jahren (mechanische Rechenmaschinen),
von 1950 bis 1966 etwa alle zwei Jahre und jetzt etwa jährlich.
„technische Singularität“
Raymond Kurzweil
Gordon Moore
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Rechnersoftware und ihr Nutzen
Bill Machrone
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Ein Chip — Millionen von Programmen
RECHNER
Erhaltungssatz zum Achtstundentag
PROGRAMM
PROZESSOR
Work expands so as to fill the time available for its
completion.
Cyril Northcote Parkinson
Wirthscher Analogieschluß
Hardware
Software
Software expands to fill the available memory.
Der Prozessor ist eine
Universalmaschine, die
beliebige Programme ausführt.
Die Funktionalität des Rechners
wird durch die ausgeführten
Programme bestimmt.
Niklaus Wirth
Warum wir den PC abends nicht mehr abschalten
Software is getting slower more rapidly than hardware
becomes faster.
Martin Reiser
Software ist langlebiger als Hardware
• Die Software ermöglicht die hohe Flexibilität des Rechnereinsatzes.
• Das Programm „überlebt“ den Prozessor.
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Informatik der Großrechner-Ära
1951–55
1956–60
1961–65
1966–70
1971–75
Computer
HARDWARE
Rechner auf Röhrenbasis
Magnetband, Kernspeicher, Transistorschaltkreise
Rechnerfamilien,
gnetplatten
Ma-
Minicomputer,
Mikroprogrammierung,
integrierte Schaltkreise
Mikrocomputer,
Minicomputer
etabliert,
kleiner
Massenspeicher, Halbleiter- statt
Kernspeicher
Information
SOFTWAREKONZEPTE
Assemblersprachen,
Unterprogramme, Datenstrukturen
frühe Kompiler, BNFGrammatiken,
CodeOptimierung,
Interpreter,
dynamische
Speicherverwaltung
MultiprogrammingBetriebssysteme,
syntaxorientierte Kompiler
Timesharing-Systeme,
interaktive
Systeme,
autom. Übersetzerbau
Programmverifikation,
strukturiertes Programmieren, SW-Engineering
Informationsverarbeitung
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Informatik der Heimcomputer-Ära
SPRACHEN
Kompilation
arithmetischer
Ausdrücke
FORTRAN, ALGOL 58/60, COBOL, LISP
1976–80
1981–85
SNOBOL,
JOVIAL;
APLNotation
1986–90
APL, FORTRAN
66, ALGOL 68,
BASIC, PL/1, SIMULA 67
Pascal, C, Scheme, Prolog
Softwareentwicklung
1991–96
1996–??
Σ
Computer
HARDWARE
kommerzielle
Mikrocomputer, großer Massenspeicher,
verteiltes
Rechnen
PCs, Arbeitsplatzrechner, Videospiele, LAN,
Arpanet
Zeit der Mikrocomputer,
Ingenieur-WS,
RISC-Architektur,
Internet
schnelle und preiswerte
PC und WS, massivparallele Rechner
Audio, Video, Fax; Multimedia; Smartcard
Information
SOFTWAREKONZEPTE
Datenabstraktion, formale Semantik, Nebenläufigkeit, eingebettete
und Echtzeitsysteme
objektorientierte
Programmierung,
interaktive
Umgebungen,
syntaxgesteuerte Editoren
Client/Server-Prinzip
SPRACHEN
Smalltalk, Ada,
FORTRAN 77,
ML
offene Systeme, Datenautobahn
Ada 95, TCL,
Perl, HTML, ...
CORBA, Hypertext
Java, VRML, ...
Informationsverarbeitung
Turbo
Pascal,
Prolog boomt!,
Ada 83, Postscript
FORTRAN
C++
90,
Softwareentwicklung
Was ist ein Computer ?
Geschichte des Computers
Webster’s Dictionary
Information
Informationsverarbeitung
Softwareentwicklung
Zusammenfassung
A computer is ...
1. one who or that which
computes.
2. an electronic apparatus that
can receive, process, store,
and retrieve data, can carry
out mathematical and logical
operations at high speed and
display the results, and can
be programmed.
Zentrale Begriffe
• Daten
• Operationen auf
Daten
(mathematisch/logisch)
• Speicherung
• Eingabe / Ausgabe
• Programmierbarkeit
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Was ist Informatik ?
Informationsverarbeitung
Softwareentwicklung
Σ
Was ist Information ?
Definitionsansätze
Definitionsansätze
• Gehalt einer Nachricht, die aus Zeichen eines Codes
zusammengesetzt ist. [Kybernetik]
• Wissenschaftliche Lehre von der
Informationsverarbeitung
Bauer & Zemanek, 1968
(Duden)
• Informationen sind mitgeteilte und aufgenommene
Wissensbestandteile.
• Wissenschaft, Technik und Anwendung der
maschinellen Verarbeitung und Übermittlung von
Informationen
Lexikon der Informatik und DV, 1991
Sie werden aus (sprachlich artikulierbarem) Wissen abgeleitet und
mit Hilfe von (sprachlichen) Ausdrucksmitteln mitgeteilt.
• Wissenschaft von den elektronischen
Damit repräsentieren sie einerseits ein (subjektives) Wissen (des
Mitteilenden) und können andererseits ein (subjektives) Wissen (des
Adressaten) aktualisieren oder erweitern.
(Lexikon der Informatik und DV)
Datenverarbeitungsanlagen und den Grundlagen
ihrer Anwendung
Der Duden
Zentrale Begriffe
Zentrale Begriffe
• Information
Computer
• Daten
• Mitteilung, Nachricht · Wissen, Kenntnis
• Verarbeitung
• sprachliche Ausdrucksmittel · Subjektivität, Kontextabhängigkeit
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Was sind Daten ?
Informationsverarbeitung
Softwareentwicklung
Daten aus anwendungsorientierter Sicht
Definitionsansätze
• Gebilde aus Zeichen oder kontinuierlichen Funktionen, die aufgrund
bekannter oder unterstellter Abmachungen Informationen darstellen,
vorrangig zum Zweck der Verarbeitung oder als deren Ergebnis.
Verarbeitung umfaßt die Durchführung mathematischer,
umformender, übertragender und speichernder Operationen.
(DIN 44300 Nov. 1988)
• durch Beobachtungen, Messungen, statistische Erhebungen u.a.
gewonnene (Zahlen)werte; auf [s.o.] beruhende Angaben oder
formulierbare Befunde
(Duden)
Zahlen
Zeichen
10, 1.5, 3.7 · 106 , ...
’A’, ’a’, ’7’, ’ ?’, ’@’, ♠, ...
Texte
Bilder, Zeitsignale
„Das ist ein Text.“ oder
„const pi = 3.14159;“
Vektoren, Matrizen


10
 20  ,
30

1
6
3
2
5
6

3
8
9
Zentrale Begriffe
• diskrete Zeichen(reihen)
Formulare und Tabellen
• kontinuierliche Funktionen
1
2
• Informationsdarstellung
Schiffer
Merkel
Claudia
Angela
23.11.69
...
Krefeld
...
56 kg
...
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Softwareentwicklung
Σ
Daten aus maschinenorientierter Sicht
Daten =
ˆ Bitfolgen
Geschichte des Computers
Das Bit ist die
Speichereinheit
kleinste
desRechners.
0
an
true
Deutung als
oder
oder
oder ...
1
aus
false
Information
Geeignete Codierung von Anwendungsdaten
• Zahlen
• Felder
• Zeichen
• Texte
• Farben
Computer
dual: 110
0001, 210
Informationsverarbeitung
0010, 710
0111
durchnummeriert: A
65, B
66, ... (ASCII-Code)
Zusammenfassung
Codierung als Zeichensequenz
Zerlegung in Farbkanäle (RGB-Code)
• Schall
quantisierte Signalabtastwerte (Audio-CD)
• Bilder
Rasterbild mit Grau- oder Farbcodes
Information
Softwareentwicklung
linearisiert mit Dimensionsangabe
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Grundbegriffe der Informationsverarbeitung
Informationsverarbeitung
Nachricht, Information & Datum
(Gerhard Goos: Informatik 1, 1995)
Die Nachricht x 2 als
Definition
Rechner und Programm
Die Darstellung einer Mitteilung durch die zeitliche Veränderung einer
physikalischen Größe heißt Signal.
• Buchstabe x mit dem
oberen Index 2,
• Jeder Programmtext ist
eine Nachricht.
Die dauerhafte Darstellung einer Mitteilung auf einem physikalischen
Medium heißt schriftliche Darstellung oder Inschrift.
• Polynom mit der
Unbekannten x,
• Das Bezugssystem ist die
(virtuelle) Rechenmaschine
• Verarbeitungsvorschrift:
„quadriere die Zahl x“,
• Die Bedeutung ist die
Verarbeitungsvorschrift.
• Quadratzahlwert von x.
Eingabe
Ausgabe
Zustandsveränderung
Außenwirkung
Wenn wir bei der Darstellung und Weitergabe einer Mitteilung vom
verwendeten Medium und den Einzelheiten der Signale und
Signalparameter abstrahieren, nennen wir die Mitteilung eine Nachricht.
Die Kenntnisse, die man/frau benötigt, um einer Nachricht eine
Bedeutung zuzuordnen, nennen wir ein Bezugssystem.
Die einer Nachricht zugeordnete Bedeutung heißt eine Information.
Information wird durch Interpretation einer Nachricht auf Grundlage
eines Bezugssystems gewonnen.
Definition
Das Paar bestehend aus einer Nachricht und der ihr zugeordneten
Information nennen wir ein Datum.
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Informationssystem
Repräsentation
Interpretation
äußere Form der Darstellung
einer Nachricht, Aussage,
Anweisung, Mitteilung, ...
Information
Softwareentwicklung
Σ
Beispiel — Strichcode für natürliche Zahlen
Information
Betrachte die Menge
abstrakter Gehalt
einer Nachricht, Aussage,
Anweisung, Mitteilung, ...
("Deutung")
Informationsverarbeitung
def
R = {ε, |, ||, |||, ||||, . . .}
von Nachrichten (Strichcodes) und die Menge
Definition
def
A = IN = {0, 1, 2, 3, 4, . . .}
Sei R eine Menge von Nachrichten und A eine Menge von
Informationen. Eine Abbildung
R → A
=:
r 7→ = [r ]
von Informationen (natürliche Zahlen). Dann ist die Abbildung

→ A
 R
||| . . . | 7→ n
=:
 | {z }
n-mal
heißt Interpretation(sfunktion) oder Bedeutungszuordnung für
R auf A. Das Tripel (A, R, =) nennen wir dann ein
Informationssystem.
Computer
Information
Informationsverarbeitung
Softwareentwicklung
eine naheliegende Interpretationsvorschrift.
Σ
Computer
Vollständigkeit und Eindeutigkeit
Information
Informationsverarbeitung
Softwareentwicklung
Beispiel — Dezimalzahldarstellungen
Definition
Definition
Surjektiv ?
Die Abbildung = : R → A heißt
surjektiv, wenn für alle a ∈ A
gilt:
Die Abbildung = : R → A heißt
injektiv, wenn für alle r , r 0 ∈ R
gilt:
Die Dezimalzahldarstellung =0 : {0, 1, . . .}+ → Z ist im Gegensatz zu
= : {0, 1, . . .}+ → IN nicht surjektiv.
ex. ein r ∈ R mit = [r ] = a
= [r ] = = [r 0 ]
r = r0
<1>
<01>
<2>
<02>
<001>
<0001>
Informationssysteme mit
surjektiver Bedeutungszuordnung
heißen vollständig.
Informationssysteme mit
injektiver Bedeutungszuordnung
heißen eindeutig.
<00001>
1
<3>
<03>
<002>
<0002>
<00002>
2
<4>
<04>
<003>
<0003>
<00003>
3
<004>
<0004>
<00004>
4
Injektiv ?
surjektiv
injektiv
bijektiv
Die Dezimalzahldarstellung = : {0, 1, . . .}+ → IN ist nicht eindeutig: es
gilt h012i =
6 h12i, aber auch = [h012i] = = [h12i].
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Semantische Äquivalenz
Gleichheit??
Zwei Repräsentationen r , r 0 ∈ R eines
Informationssystems (A, R, =) heißen semantisch
äquivalent, geschrieben r ≡= r 0 oder r ≡ r 0 , falls
die Identität = [r ] = = [r 0 ] gilt.
Die Nachrichten
unterscheiden
sich:

h21i


 h17 + 4i
6= :
h52 − 22 i


 √
h 441i
Bemerkung
Die Bedeutungszuordung = induziert eine
Äquivalenzrelation ≡ auf R, d.h. es gilt für alle
r , r 0 , r 00 ∈ R:
r0 ≡ r
3. r ≡ r 0 und r 0 ≡ r 00
Die nachrichtenverarbeitende Abbildung ρ : R → R eines
Informationssystems (A, R, =) heißt informationstreu, falls sie mit der
semantischen Äquivalenz ≡= verträglich ist, d.h. es gilt für alle
Nachrichten r , r 0 ∈ R:
r ≡= r 0

h21i


 h17 + 4i
≡:
2
2

 h5
√ −2 i

h 441i
Softwareentwicklung
• Informationsvorrat:
A = IN
• Nachrichtenvorrat:
R = {|, +}∗
• Bedeutungszuordnung:
= : {|, +}∗ → IN mit
und
= [u ◦ h+i ◦ v ] = = [u] + = [v ]
A
m
gram t
Dia
r
utie
m
m
ko
ρ
R
=
def
ρ(u) = u ◦ h+|||i
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Äquivalenztransformationen
Definition
Die nachrichtenverarbeitende Abbildung ρ : R → R eines
Informationssystems (A, R, =) heißt Äquivalenztransformation, wenn
für alle Nachrichten r ∈ R die folgende Gleichheit gilt:
Was ist (arithmetisches) Rechnen ?
Umformen von Nachrichten bei gleichbleibender Bedeutung:
ist informationstreu:
u≡v
= [u] = = [v ]
(3 + 5)/(6 − 2) ≡ 8/(6 − 2) ≡ 8/4 ≡ 2
= [u] + 3 = = [v ] + 3
= [u ◦ h+|||i] = = [v ◦ h+|||i]
Was ist das Ziel des Rechnens ?
= [ρ(u)] = = [ρ(v )]
Die einfachste unter allen gleichwertigen Darstellungen:
ρ(u) ≡ ρ(v )
1 = 0! = 0.999... =
0
• Damit ist ρ : IN → IN wohldefiniert:
ρ0 (n) = n + 3
für alle n ∈ IN
A
Eine informationstreue Abbildung ρ : R → R definiert eindeutig eine
Abstraktion ρ0 : A → A mit ρ0 (= [r ]) = = [ρ(r )] für alle r ∈ R.
= [ρ(r )] = = [r ]
n
• Es gilt u ≡ v genau dann, wenn u, v gleiche Anzahl von Strichen besitzen.
• Die Inkrementierungsabbildung
ρ’
Definition
Beispiel — Erhöhen einer Zahl um 3
=[h|| . . . |i] = n
| {z }
ρ(r ) ≡= ρ(r 0 )
Bemerkung
Es ist ρ informationstreu genau dann,
wenn ∀r , r 0 ∈ R gilt:
= [r ] = = r 0
= [ρ(r )] = = ρ(r 0 )
Ihre
Bedeutungen
sind gleich:
(Symmetrie)
Informationsverarbeitung
Definition
Äquivalenz!!
r ≡ r 00 (Transitivität)
Information
Σ
=
Die Nachrichtenmenge R zerfällt (vollständig und
überschneidungsfrei) in Äquivalenzklassen.
Computer
Softwareentwicklung
R
(Reflexivität)
2. r ≡ r 0
Informationsverarbeitung
Informationstreue Nachrichtenverarbeitung
Definition
1. r ≡ r
Information
∞
X
i=1
2−i = .........
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Softwareentwicklung
Σ
Normalformen
Definition
Geschichte des Computers
Eine ausgezeichnete Teilmenge RNf ⊆ R von (besonders einfach
strukturierten) Nachrichten eines Informationssystems (A, R, =) heißt
Normalformsystem.
Information
• RNf heißt vollständig, falls es für jedes r ∈ R eine Normalform
r 0 ∈ RNf mit r ≡ r 0 gibt.
Informationsverarbeitung
0
• RNf heißt eindeutig, falls für alle semantisch äquivalenten (r ≡ r )
Nachrichten r , r 0 ∈ RNf schon die Gleichheit r = r 0 gilt.
Softwareentwicklung
Lemma
Zusammenfassung
Ist (A, R, =) vollständig und RNf ein vollständiges und eindeutiges
Normalformsystem, so herrscht eine 1–1 Korrespondenz (bijektive
Zuordnung) zwischen den Mengen A und RNf .
Bemerkung
Zahlendarstellungen in Programmiersprachen sind keine vollständigen/eindeutigen
Normalformsysteme.
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Warum ist Programmierung schwierig ?
Informationsverarbeitung
Softwareentwicklung
Wie man es falsch macht · Wie frau es richtig macht
Der Rechner
ist ein mächtiges symbolverarbeitendes System.
So bitte nicht!
SW Engineering:
1. Rechner einschalten
1. Rechner einschalten
2. Programmcode schreiben
2. Spezifikation schreiben
3. Programm übersetzen ...?
4. Programm ausführen ...?
3. Datenstrukturen
entwickeln
Aber sie kennt die Bedeutungsseite der Daten.
5. Sieben Testläufe
4. Algorithmen entwickeln
Die Programmkorrektheit
6. Dokumentation pinseln
5. PS-Implementierung
Aber er kennt nur die Nachrichtenseite der Daten.
Die Entwicklerin
tut sich etwas schwer mit dem Rechnen.
Löst das implementierte Programm die Aufgabenstellung?
6. Korrektheitsprüfung
Test / Verifikation
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Aufgabenstellungen für informationsverarbeitende Systeme
Die klassischen Informatik-Disziplinen
Programmieren im Kleinen · Programmieren im Großen
(GI — Gesellschaft für Informatik e.V.)
Berechnung von Funktionen
Prozeßüberwachung
Berechne eine Funktion
f : A 7→ B, die einen
Definitionsbereich A in einen
Wertebereich B abbildet.
Konstruiere ein (endlos
laufendes) System, das Daten a
von anderen Systemen
empfängt und Daten b an
solche Systeme sendet.
E/A-Filter
Σ
Theoretische Informatik
Algorithmen · Berechenbarkeit · Aufwand
Technische Informatik
Bau und Organisation der Rechnerhardware
Gedächtnis
Eingebettete Systeme
Adaptive Systeme
Konstruiere ein System, das im
Verbund mit Bausteinen, die
nicht der Datenverarbeitung
dienen, eine gegebene
Aufgabenstellung lösen.
Konstruiere ein eingebettetes
System, das sich veränderten
Bedingungen der Wirklichkeit
anpaßt.
Praktische Informatik
Umsetzung in praktisch nutzbare Softwaresysteme
Angewandte Informatik
Informatikmethoden für andere Wissenschaften
Adaption/Lernen
Sensor/Aktor
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Software Engineering
Information
Informationsverarbeitung
Softwareentwicklung
Beispiel — das Mariner-I Unglück
Antwort auf die „Softwarekrise“ · NATO-ASI Garmisch (1968)
Fehlerhafter Fortran-Code:
Was ist „Engineering“ ?
[...] die schöpferische Anwendung wissenschaftlicher
Prinzipien auf Entwurf und Entwicklung von
Strukturen, Maschinen, Apparaten oder
Herstellungsprozessen im Hinblick auf eine
gewünschte Funktion, Wirtschaftlichkeit und
Sicherheit von Leben und Eigentum. Encyclopedia Britannica
Was ist „Software Engineering“ ?
[...] die Anwendung eines systematischen,
disziplinierten, quantifizierbaren Ansatzes auf
Entwicklung, Betrieb und Wartung von Software,
d.h. die Anwendung der Ingenieurskunst auf
Software.
IEEE Standard Glossary of S.E. Terminology
Zuverlässigkeit
Korrektheit
Robustheit
Stabilität
Datensicherheit
Wiederherstellbarkeit
Wartbarkeit
Anpaßbarkeit
Lesbarkeit
Modularität
Normengerechtigkeit
Kompatibilität
Wirtschaftlichkeit
Übertragbarkeit
Effizienz
Konsistenz
Verfügbarkeit
Kontrollierbarkeit
Transparenz
Flexibilität
Ausfallsicherheit
Benutzerfreundlichkeit
... ... ...
... ...
...
3
DO 3 I=1.3
...
...
...
CONTINUE
C Beschreibung
C der
C Aktion
Fortran
Alte PS, hocheffizient
destabilisierende Syntax:
· ignoriert Zeilenformatierung
· verwendet Marken
· Typen implizit deklariert
... und in der Sprache ’C’:
for (i=1; i<=3; ++i)
f(i);
... und in Pascal:
Programmierfehler
Korrekt wäre gewesen:
DO 3 I=1,3
FOR i := 1 TO 3 DO
f(i);
Zuweisung (=) des Literalwertes
1.3 an die Variable mit Namen
DO3I
... und in Modula:
Konsequenz
FOR i := 1 TO 3 DO
f(i)
END;
Die US-amerikanische Sonde
donnerte im Juli 1962
meilenweit an der Venus vorbei!
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Qualität, Qualität, Qualität
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Fundamentale Konzepte der Programmierung
Syntax und Semantik
Dürfen kleine syntaktische Unterschiede im Programmtext große
semantische Unterschiede im Programmablauf nach sich ziehen ?
Algorithmisches Denken
Moderne Softwarekonzepte
Vertrauen ist gut, Kontrolle ist besser.
Formulieren eines geeigneten
Algorithmus zur Lösung einer
gestellten Aufgabe
Mächtige Programmiertechniken
Jedes Programm ist so gut wie seine schlechteste Codezeile.
• Die Korrektheit großer und sehr großer Programmsysteme
sicherzustellen erfordert mehr als nur den guten Willen und die
Aufmerksamkeit der beteiligten ProgrammiererInnen.
Datenstrukturen?
Anweisungsarten?
Korrektheitsnachweis?
Iteration, Rekursion, Parallelität
Geflechte, Datenabstraktion,
Vererbung, dynamische Bindung
Systematischer Entwurf
Guter Programmierstil
• Kernkraftwerke, Talsperren, pharmazeutische Fertigungszellen
Komplexe Aufgabenstellung in
kleinere Bausteine zerlegen
Korrektheit gegenüber der
Spezifikation und ...
• Herzschrittmacher, Operationslaser, Intensivstationen
Pakete · Klassen · Methoden
Effizienz · Eleganz · Lesbarkeit
Programmierfehler sind kein Kavaliersdelikt!
• ABS, Airbags, Einparkhilfen, Autopiloten, Marschflugkörper ...
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Σ
Computer
Information
Informationsverarbeitung
Softwareentwicklung
Zusammenfassung (1)
Geschichte des Computers
1. Die Rechen- und Speicherkapazität einer Anlage wird durch die
Hardware bestimmt, ihre Funktionalität durch die Software.
2. Die Programme sind viel langlebiger als die Prozessoren und lassen sich
zum Nulltarif vervielfältigen.
Information
3. Auf Daten unterscheiden wir die Sicht des Rechners (Nachricht) und die
Sicht des Programmierenden (Information).
Informationsverarbeitung
4. Ein Informationssystem besteht aus Nachrichten, Informationen und der
vermittelnden Bedeutungszuordnung.
Softwareentwicklung
5. Die rein mechanische Nachrichtenverarbeitung wird unter der
Voraussetzung der Informationstreue zur Informationsverarbeitung.
Zusammenfassung
6. Rechnen ist das semantisch äquivalente Umformen von Nachrichten in
(möglichst einfache) Normalformen.
7. Programmieren im Kleinen (Großen) beschäftigt sich mit der
Implementierung von Funktionsberechnungen bzw. von Prozessen und
Systemen.
8. Software Engineering lehrt den ingenieurwissenschaftlich fundierten
Entwurf von Programmen und Programmiersprachen mit garantierten
Qualitätseigenschaften.
Σ
Herunterladen