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. Σ