Upload
renate-rathke
View
107
Download
1
Embed Size (px)
Citation preview
EINIEINIEinführung in die Informatik Einführung in die Informatik
für Naturwissenschaftler für Naturwissenschaftler und Ingenieure Iund Ingenieure I
Vorlesung 2 SWS WS ‘00/01
Prof. Dr. Gisbert Dittrich
(Dipl.-Inform. Jörg Westbomke)
Vertreter: Prof. Dr. Claudio Moraga
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 2
GliederungGliederung
• Organisatorisches• Technisches• Übungen• Rechnerzugang• Installation des Gnu C++-Compilers• Bedienung des Gnu C++-Compilers
• Anmerkungen zur „Informatik“
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 3
Organisatorisches IIOrganisatorisches II
• Sprechstunde Prof. Dr. G. Dittrich: Dienstag: 10.30-11.30 Uhr
Otto-Hahn-Str. 16, Zi. 217 / Technologie Park
Tel. 0231-755 6444
Email: dittrich@ ls1.cs.uni-dortmund.de
• Sprechstunde Prof. Dr.-Ing. Claudio Moraga: Mittwoch: 9:30-11:00 Uhr
Otto-Hahn-Str. 16, Zi. 216
Tel. 0231-7556333
Email: [email protected]
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 4
Organisatorisches IIIOrganisatorisches III
Lageplan der Otto-Hahn-Str.
2. Stock,Raum 216
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 5
TechnischesTechnisches
• Stellung der Vorlesung: Vorlesung für Studierende anderer Fachbereiche– Elektrotechnik: Grundlagen der Informatik I– Logistik (3.Sem.)– Informationstechnik– Magister FB 15– Chemie
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 6
Technisches IITechnisches II
• Untergliederung der Vorlesung
– EINI-I (diese Vorlesung)• Einführende Veranstaltung
– prozedurale Programmierung mit C und einer Hinwendung zu C++
– EINI-II (SS 2001)• Weiterführende Veranstaltung
– objektorientierte Programmierung mit C++
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 7
Technisches IIITechnisches III
• Prüfung: Klausur– Elektrotechnik: „Grundlagen der Informatik I/II“
• Stoff: EINI I + II
• 4stdg, nach dem SS (Nachklausur nach dem WS)
– Logistik: „Grundlagen der Datenverarbeitung“• Stoff: EINI I + Grundlagen der Datenverarbeitung
• 2stdg, nach dem WS
– Andere Fachbereiche:• Siehe eigene Prüfungsordnung
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 8
Technisches IVTechnisches IV
• Darstellungsform in der Vorlesung: – Präsentation: i.w. über Folien, „aus dem Rechner
heraus“
• Unterlagen – Vorab: Literatur (Literaturverweise auf nachfolgenden Folien
beachten)
– Zudem (geplant): • Online - Zugang auf aktuelle Folien etc.: http://ls1-www.informatik.uni-dortmund.de/Lehre/EINI-I
PowerPoint resp. PDF + evtl. Ergänzungen
– Schriftliche Ausarbeitung als Skript: nein
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 9
„Das siebte Buch: Objektorientierung mit C++“
Ernst-Erich Doberkat
Teubner Verlag. Stuttgart, Leipzig, Wiesbaden
2000
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 10
ÜbungenÜbungen
• Angaben zu den Übungen– Übungsleiter: Dr. Eike Riedemann
Dipl.-Inform. Jörg Westbomke
– Termin(e): Mi, 10-12 Uhr und 14-16 Uhr
Otto-Hahn-Str. 16 / R. 205
Fr, 14-16 Uhr ( Logistiker)
Otto-Hahn-Str. 16 / R. 205
– Veranstaltungsmodi: 2 wöchentlich / 2 stündig
• Start der Übungen:– In der 45. KW (8. + 10.11.2000)
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 11
2. Stock,Raum 205
Lageplan der Otto-Hahn-Str.
Übungen IIÜbungen II
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 12
Übungen IIIÜbungen III
• Gruppeneinteilung: – 6 Gruppen: Gruppe 1+2 Westbomke
Gruppe 3-6 Riedemann
– Gruppe 1+2 Mittwochs, 10-12 Uhr– Gruppe 3+4 Mittwochs, 14-16 Uhr– Gruppe 5+6 Freitags, 14-16 Uhr (Logistiker)
• Eintragen in die Übungsgruppen• Ausfüllen des Anmeldezettels
• Vergabe der Prioritäten 1-3; Logistiker Gruppe 5+6
• Deutlich in Druckbuchstaben schreiben!!!
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 13
Übungen IVÜbungen IV
Beginn des Übungsbetriebes:
8. November Gruppe 2+3
10. November Gruppe 6
15. November Gruppe 1+4
17. November Gruppe 5
Danach finden die Übungsstunden im 2 Wochen-Rhythmus statt.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 14
Übungen VÜbungen V
• Ausgabe der Übungsblätter:– Freitags nach der Vorlesung
• Abgabe der Übungsblätter:– Jeweils bis zu dem folgenden Freitag 10 Uhr in dem
Briefkasten 34 im Hörsaal-Gebäude II.– Gruppenabgaben mit bis zu 3 Personen pro Abgabe
sind zugelassen.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 15
Übungen VIÜbungen VI
• Übungsschein– Min. 50% der erreichbaren Punkte– Min. 10 Übungszettel bearbeitet– Mündl. Mitarbeit
• Übungsscheinpflicht:– Siehe eigene Prüfungsordnung
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 16
Übungen VIIÜbungen VII
• Einige private Anmerkungen zu Übungen:
– Bitte hingehen, denn:
• Programmieren kann man nur bedingt theoretisch erlernen: Praxis ist wichtig!!!
• In der Übung ist Zeit die Fragen zu stellen, die in der Vorlesung nicht behandelt werden können.
• Vergleichbare Veranstaltungen haben gezeigt, daß der Besuch der Übung die beste Vorbereitung auf die Klausur ist.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 17
Übungen VIIIÜbungen VIII
• Die Übungen sind als praktische Übungen ausgelegt.
Es muß selbst programmiert werden!!!
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 18
RechnerzugangRechnerzugang
• Über den eigenen (Heim-)PC– Windows 9x/NT:
Public Domain verfügbar + Installationsanweisung wird gestellt (siehe nachfolgende Folien)
– Linux Zumeist fester Bestandteil der Distributionen (z.B.
Zuse od. Red Hat) +Public Domain verfügbar
– Unix Zumeist fester Bestandteil der Distributionen an der
UniDo + Public Domain verfügbar
– Macintosh
derzeit nicht als Public Domain verfügbar
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 19
Rechnerzugang IIRechnerzugang II
• Über einen Uni-Account– Elektrotechnik
• Zugang über Accounts des Programmiertechnischen Praktikums (PTP)
– Andere• Accounts des HRZ können vergeben werden
– Vorwiegend für Logistiker ohne eigenen PC– Werden in der ersten Übungsstunde von den Betreuern
verteilt– Unix-Accounts im UXP1-Cluster des HRZ
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 20
Rechnerzugang IIIRechnerzugang IIIStandorte der HRZ-Rechner (Campus Nord)
EF 50 R2.32620 Maschinen
Mathe E12+13 u.U26ca. 15 Maschinen
Chemie C2-01-726ca. 10 Maschinen
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 21
• Was ist ein Compiler ?
• Wozu brauche ich ihn beim Programmieren ?
• Was macht ein Compiler ?
Compiler
Gnu C++ - CompilerGnu C++ - Compiler
Idee zurLösungeines
Problems
Idee zur Lösung
eines Problems
Formulierung eines Programms
(C++ Syntax)
Aus-führung
Übersetzung
Laufzeit- System
ausführbares Programm
(Maschinensprache)
• Was bedeutet „Gnu“ ?
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 22
Gnu :
Das GNU-Projekt startet 1984 mit dem Ziel, ein Unix-ähnliches Betriebssystem zu entwickeln und über Internet kostenlos verfügbar zu machen.
„GNU“ wird (Auf Englisch) rekursiv definiert:
„Gnu‘s Not Unix“
Siehe http://www.gnu.org
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 23
• Was ist ein Compiler ?
• Wozu brauche ich ihn beim Programmieren ?
• Was macht ein Compiler ?
Compiler
Gnu C++ - CompilerGnu C++ - Compiler
Idee zurLösungeines
Problems
Idee zur Lösung
eines Problems
Formulierung eines Programms
(C++ Syntax)
Aus-führung
Übersetzung
Laufzeit- System
ausführbares Programm
(Maschinensprache)
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 24
Gnu C++ - CompilerGnu C++ - Compiler
• Public Domain C++-Compiler und -Debugger
• Verfügbar für Wintel, Unix und Linux
• Kommandozeilen orientierte Oberfläche
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 25
Gnu C++ - Compiler IIGnu C++ - Compiler II
• Verfügbar unter:1.) ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/
mirrors/cygnus/latest/
Datei full.exe (ca. 14 MB) oder das Unterverzeichnis full-split
herunterladen
2.) In jeder Übungsgruppe ist eine vorbereitete CD mit allen
notwendigen Dateien zum Ausleihen vorhanden.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 26
Gnu C++ - Compiler IIIGnu C++ - Compiler III
• Installationsanleitung (Win 95/98/NT)
- Starten des Installationsprozesses durch Doppelklick
auf die Datei full.exe
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 27
Gnu C++ - Compiler IVGnu C++ - Compiler IV
• Installationsanleitung (Win 95/98/NT)
- Bestätigen des Dialoges durch den Knopf Next >
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 28
Gnu C++ - Compiler VGnu C++ - Compiler V
• Installationsanleitung (Win 95/98/NT)
- Akzeptieren der Gnu General Public License durch
Yes
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 29
Gnu C++ - Compiler VIGnu C++ - Compiler VI
• Installationsanleitung (Win 95/98/NT)
- Auswahl des Zielordners durch Browse oder Über-
nehmen der Voreinstellung. Weiter mit Next >
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 30
Gnu C++ - Compiler VIIGnu C++ - Compiler VII
• Installationsanleitung (Win 95/98/NT)
- Auswahl der Gruppe im Programmordner des
Startdialoges. Weiter mit Next >
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 31
Gnu C++ - Compiler VIIIGnu C++ - Compiler VIII
• Installationsanleitung (Win 95/98/NT)
- Erfolgreiche Installation. Weiter mit Finish
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 32
Gnu C++ - Compiler IXGnu C++ - Compiler IX
• Bedienung– Vor dem ersten Start den Ordner c:\tmp von Hand
erzeugen!!!– Start der Shell durch Aufruf aus der
Programmgruppe.– Start des Compilers durch g++ <Dateiname>– Das compilierte Programm wird unter dem Namen a.exe erzeugt.
– Ausführen des erzeugten Programmes durch eintippen von ./a <enter>
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 33
Gnu C++ - Compiler XGnu C++ - Compiler X
Aufruf des Compilers
Erzeugtes ausführbares Programm
Aufruf des Programms
./a
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 34
Anregungen zur Veranstaltung EINI IAnregungen zur Veranstaltung EINI I
• zur Vorlesung:– Besuch der Vorlesung
• Nacharbeiten der Vorlesung anhand:
– Bücher– evtl. Folien (inkl. eigener Ergänzungen!)– zusätzlicher Literatur (angegebene und selbst gefun-
dene; Fachbibliotheken aufsuchen, aus dem Netz !!)
– zu Übungen:• Besuch (bitte zu Hause vorbereiten!)
• aktive Teilnahme : – Bearbeiten von Aufgaben (schriftlich resp. am
Rechner!)– Vortragen der bearbeiteten Aufgaben--> Schein !!
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 35
Anregungen zur Veranstaltung EINI IAnregungen zur Veranstaltung EINI I
• Zeitaufwand: – ca. die 2-fache Zeit außer der Zeit für den Besuch
von Vorlesung und Übungen
• zu Prüfungen: – EINI I ist eingebunden in Klausuren s.o.– Empfehlung: Vorbereitung in Gruppen– In der Sache:
• Schriftlich vorliegendes Material (vor allem revidiertes Material) durcharbeiten.
• Erst in die "Breite", dann in die "Tiefe" lernen.
Überblick bekommen, Zusammenhänge sehen.
Dabei die Details auch beherrschen lernen.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 36
Anregungen zur Veranstaltung EINI IAnregungen zur Veranstaltung EINI I
• zu Prüfungen: – In der Sache: Fortsetzung
• Beispiele zu allen wesentlichen Begriffen zurechtlegen.
• Üben, sich in Fachsprache auszudrücken (inkl. For-malismen !).
• Miteinander lernen
• Reihum Tutor/Prüfer spielen.
– Sonstige Informationen, insbesondere aus Fachschaft
– Anmeldung dann, wenn erfolgreiche Prüfungsvor-bereitung gesichert ist.
– Zeitaufwand : Individuell
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 37
Gliederung Prolog Teil IIGliederung Prolog Teil II
• Anmerkungen zur "Informatik"• Ziel der Veranstaltung• Schwerpunkte• Aufbau der Veranstaltung• Literatur
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 38
Anmerkungen zur "Informatik"Anmerkungen zur "Informatik"
• Ziel: – Knappen Überblick über die Informatik geben, damit
der Stoff dieser Vorlesung eingeordnet werden kann.
• Kernaspekt der Informatik– Erster Ansatz: (Wie später zu sehen, nur ein Aspekt!)
• Informatik ist die Wissenschaft, die die methodische Beherrschung algorithmisch lösbarer Probleme behandelt.
• Wesentlich: algorithmisch lösbares Problem und damit Begriff des Algorithmus.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 39
Anmerkungen zur "Informatik"Anmerkungen zur "Informatik"
– Hier nur intuitive Begriffsbestimmung.
– "Definition" (korrekt: informelle Umschreibung) : • Ein Algorithmus ist ein Verfahren zur Lösung von
Einzelproblemen einer definierten Problemklasse. Dieses Verfahren ist formal so präzise definiert, daß es im Prinzip von einer Maschine (rein mechanisch) ausgeführt werden kann.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 40
Anmerkungen zur "Informatik"Anmerkungen zur "Informatik"
• Beispiel:– Wir sagen: eine Zahl n N ist gerade, gdw. es eine
Zahl m N gibt, so daß gilt: n = m + m. – Diese Eigenschaft kann “rein mechanisch” an ihrer
Dezimaldarstellung entschieden werden:
• Algorithmus: “Test auf Geradheit”– gegeben: Ziffernfolge z– gesucht: Ist die dargestellte Zahl gerade?– Damit ist die Problemklasse definiert: Jede
Ziffernfolge ist ein Einzelproblem der Klasse– Lösung: z stellt gerade Zahl dar letzte Ziffer
{0,2,4,6,8}.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 41
Anmerkungen zur "Informatik"Anmerkungen zur "Informatik"
• Algorithmus: “Test auf Geradheit” Fortsetzung– Die Lösung des vorgelegten Einzelproblems ist die
(korrekte) Antwort auf die – Frage: Stellt die Ziffernfolge eine gerade Zahl dar
oder nicht? Mathematisch korrekt ? (Übung)– Diese Antwort lautet: “ja” oder “nein”.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 42
Anmerkungen zur "Informatik"Anmerkungen zur "Informatik"
• Ableitung typischer Fragestellungen und damit Teilgebiete der Informatik– Spezifikation
• Wie werden Problemklassen und Einzelprobleme genügend exakt formuliert?
– Verifikation • Eine Problemklasse läßt sich häufig durch eine
Funktion, d.h. durch eine Abbildung f: I -> 0 (I: Inputs; 0: Outputs) beschreiben.
• Ein Algorithmus A stellt zwischen den Eingaben und Ausgaben ebenfalls eine solche Abbildung dar
fA: I -> 0, wobei I die Eingabemenge und 0 die Aus-gabemenge ist.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 43
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Verifikation (Fortsetzung)• Man sagt: Der Algorithmus A ist korrekt bezüglich f,
wenn gilt: fA= f, d.h. wenn A die spezifizierte Ein-Ausgabefunktion f realisiert.
• Der Nachweis dieser Korrektheit ist i.a. ein schwieriges Problem und wird mit Verifikation bezeichnet.
– Programmierung: • Wie wird das Verfahren beschrieben?
• Welche sprachlichen Mittel stehen zur Verfügung?
• Diese Fragen führen auf sehr unterschiedliche “Rechenmodelle”, die man zur Berechnung der Ein-Ausgabefunktion benutzen kann.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 44
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Datenstrukturen: Objekte, auf denen unsere Algorithmen operieren.
• Die Objekte, die durch Algorithmen manipuliert werden, können strukturiert sein. Die Strukturierung dieser Objekte ist auf das engste mit der Darstellung des Algorithmus verbunden.
--> !! Algorithmus und Datenstruktur hängen somit untrennbar zusammen.!!
• Jede Formulierung eines Algorithmus enthält eine Beschreibung der Daten, auf denen der Algorithmus operiert.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 45
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Effizienz: • Frage:
Wenn verschiedene Algorithmen, etwa A und B, die gleiche Funktion zwischen Eingaben und Ausgaben herstellen (realisieren), wie kann man beurteilen, ob einer von ihnen “besser” ist als der andere?
• Zwei wichtige Maße zur Beurteilung von Algorithmen:
• Zeitkomplexität • Raumkomplexität
• Diese Maße können zum Vergleichen von Algorithmen verwendet werden.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 46
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Entwurfsmethodik (--> Software Engineering):• Wie entwickelt man komplexe Algorithmen/Systeme ?
• Behandlung von Fehlern?
• Wiederverwendbarkeit
• Modifizierbarkeit
• Projektmanagement
• ..........
– Syntax-Semantik: Beispiel: ROM
• Informatik ist nicht:• akademischer Programmierkurs
• Einweihung in die letzten noch offenen Geheimnisse eines konkreten Rechners.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 47
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
• Weitere Versuche, den Begriff "Informatik" zu erfassen:– "Informatik" nach “Informatik Spektrum” (1985)
• Informatik ist die Wissenschaft von der systematischen und automatisierten Verarbeitung von Informationen.
• Sie erforscht grundsätzliche Verfahrensweisen der Informationsverarbeitung und allgemeine Methoden ihrer Anwendung in den verschiedensten Bereichen.
• Für diese Aufgabe wendet die Informatik vorwiegend formale und ingenieurmäßig orientierte Techniken an. Durch Verfahren der Modellbildung sieht sie beispielsweise von den Besonderheiten spezieller
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 48
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
Datenverarbeitungssysteme ab; sie entwickelt Standardlösungen für die Aufgaben der Praxis.
– Diese Umschreibung sagt wenig über Inhalte, jedoch viel über die Methodik dieser Wissenschaft.
• Formale Methoden
• Modellbildung: Modelle = Abstraktionen von realen Sachverhalten
– Die Themen in diesen Gebieten umfassen u.a.:
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 49
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Theoretische Informatik• Mathematische Maschinen
• Automatentheorie
• Formale Sprachen (Syntax Theorie)
• Semantik von Programmiersprachen
• Berechenbarkeit
• Komplexität von Algorithmen
• Schaltwerktheorie/Theorie des Logikentwurfs
• Abstrakte Datentypen
• Theorie paralleler Prozesse
• Künstliche Intelligenz
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 50
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Praktische Informatik• Programmiersprachen (Anwendung, Methodik)
• Datenstrukturen und ihre Implementationen
• Compilerbau
• Betriebssysteme
• Datenbanken und Informationssysteme
• Software Engineering
• Computer Grafik und CAD
• Kommunikations-Software, Rechnernetze
• Expertensysteme
• Bildverarbeitung
• Mensch-Maschine-Interaktion • .............
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 51
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Technische Informatik• Rechnerarchitektur
• Speicherorganisation und -Technologie
• Schaltnetzwerke und Mikroprogrammierung
• Mikroprozessoren
• VLSI Entwurf
• Telekommunikation, Rechnerverbund (--> Internet, WWW)
• Peripheriegeräte
• Spracheingabe
• Bildabtastung
• .........
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 52
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
– Angewandte Informatik• z.B. Medizinische Informatik (d.h. Informatik (resp.
Geräte der Informatik), eingesetzt in der oder für die Medizin)
--> Praktisch alle Lebensbereiche werden heute von der Informatik berührt/ durchsetzt
– Informatik und Gesellschaft• v.a. gesellschaftliche Auswirkungen der Informatik
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 53
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
• "Informatik" nach "Brauer-Münch: Studien- und Forschungsführer Informatik, 3. Auflage, Springer 1996"– " Das Gebiet der Informatik läßt sich wegen ihres
universellen Charakters nicht einfach eingrenzen; der Begriff Informatik kann nicht knapp definiert werden, er hat sich in den letzten Jahren stark erweitert und wird sich schnell weiterentwickeln."
– Dennoch: – " Informatik läßt sich ... kennzeichnen durch die drei
Begriffe
Intelligenz-Formalismen-Technik“
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 54
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
• Etwas allgemeiner:– " Informatik ist die (Ingenieur-) Wissenschaft von
• der theoretischen Analyse und Konzeption
• der organisatorischen und technischen Gestaltung sowie
• konkreten Realisierung von (komplexen) Systemen
• aus miteinander und mit ihrer Umwelt kommuni-zierenden (in gewissem Maß intelligenten und autono-men) Agenten oder Akteuren, die als Unterstützungs-systeme für den Menschen in unsere Zivilisation eingebettet werden müssen.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 55
Anmerkungen zur "Informatik“Anmerkungen zur "Informatik“
• (Mit Agenten/Akteuren sind Softwaremodule, Maschinen oder roboterartige Geräte gemeint.)“ (Interpunktion geändert)
– Geht also deutlich über die Sichtweise von "Informatik" als "Computerwissenschaft" hinaus !!
– Informatik hat Bezug zu fast allen Bereichen !!!
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 56
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Vorbemerkung zu "Sprache"– Denken <--> Sprache– Fachsprachen:
• für komplexe Sachverhalte mit akzeptablem Aufwand
• für Fachleute
– Programmiersprache: • syntaktische Form, um Problemlösungen zu beschrei-
ben
• muß von einer Maschine interpretiert werden können
– >Der Programmierer muß genau wissen, wie die Maschine die vereinbarte Sprache interpretiert.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 57
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Weniges zur Historie– in den 30er Jahren:
• Präzisierung von - berechenbare Funktion - Algorithmus
– (Turing-Maschine, -rekursive Funktion, -Kalkül)
– in den 40er Jahren: • Reale technische Entwicklung von Rechenmaschinen:
K. Zuse, J. v. Neumann, ....
– Auf Maschinen bezogene Programmiersprachen:• Maschinensprache: nutzt direkt Registerstruktur, ALU
der konkreten Maschine.• Assemblersprache: symbolische Namen, mnemonische
Bezeichnungen für Operationen ("Add")
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 58
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• "Höhere" Programmiersprachen: abstrakter, verwenden komplexe "Formeln"
Geeignete Übersetzungsalgorithmen (Compiler, Assem-bler, ..) erlauben (automatische) Rückführung auf "niedere" Sprachen.
– Unterschiedlich ausgeprägte Sprachen gestatten unterschiedlich gut, gewisse Denkweisen (siehe unten) zu unterstützen.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 59
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen" (Paradigmen)– "Problemorientiert":
• Erlaubt, eine abstrakte Maschine zu definieren mit:– Speicherplätze für Datenobjekte, beschrieben durch
(Programm-)Variable– Wertzuweisung (Assignment)– Expliziter Kontrollfluß (GOTO, FOR-Schleife,....)
• (Jedoch abstrakt an Maschine (- nach "unten" -) orientiert)
• Diese Sprachen werden auch imperative/prozedurale Sprachen genannt.
• Beispielsprachen:– FORTRAN - BASIC - PASCAL - C - ..........
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 60
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen“ (Forts.)– Funktionsbezogene Programmiersprachen:
• Spezifikation des Eingabe - Ausgabeverhaltens für ein Problem als Funktion
– f : I O Black-Box:
• Beispielsprachen: – LISP (List Processing, Datenstruktur: Listen (MacCarthy
seit 1960)– Abkömmlinge/Dialekte: .. SCHEME (am MIT entwickelt) – Möglich, hierin rein funktional zu programmieren
• Syntax sehr einfach • Konzentration auf die Semantik
– Programme werden i. d. R. mit Hilfe eines Interpreters ausgeführt.
iI f f(i) = oO
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 61
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen“ (Forts.)– Relationen- (Logik-)bezogene Programmiersprachen:
• Relation auffaßbar als Menge von Beziehungen zwischen Objekten.
• Beispiel: - ist Kind von -: Peter ist Kind von Ursula Ursula ist Kind von Ute
• Relationen mit Mitteln der Prädikatenlogik formalisier-bar.
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 62
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen“ (Forts.)• Logisches Programm:
– Datenbasis (Menge von vorgegebenen Relationen)– Menge von Regeln– Goal (Anfrage): Behauptung, daß eine Beziehung
besteht.
• Interpreter versucht hier, mit Hilfe der Methoden des formalen Beweisens der Prädikatenlogik Goals zu beweisen.
• Beispielsprache: PROLOG
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 63
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen“ (Forts.)– Objektorientierte Programmiersprachen
- Zentraler Begriff:
Objekt: Größe/Entität beschrieben durch:• Eigenschaften, die einem Objekt eigen sind.
– Z.B. Punkt "hat" die Koordinaten (x,y)
• Operationen, die daran ausgeführt werden können.– Z.B.: - Verschieben eines Punktes um (x,y)
- Abfrage, in welchem Quadranten ein Punkt liegt.
- Zentrales Vorgehen:• Operationen an Objekten ausführen --> Message
passing
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 64
Programmiersprachen und DenkweisenProgrammiersprachen und Denkweisen
• Klassifikation nach "Denkweisen“ (Forts.)– Zentrales Anliegen:
• Effizientes Strukturieren der Beschreibung von Objekten--> Klassen, Klassenhierarchie (--> Vererbung)
• "Objektorientiertes" Programm beschreibt i.a. Kommunikation zwischen Objekten
– Beispielsprachen:
• Smalltalk, Eiffel, BETA (Vorläufer: Simula), C++, • weitere Erweiterungen imperativer Sprachen
(z.B. Objective C, Object Pascal, ...)
• Java
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 65
Ziel der VeranstaltungZiel der Veranstaltung
• Praktische Einführung in einige Methoden der
Informatik, insbesondere in die Programmie-
rung.
• Einführung in eine Programmiersprache [C++]
• Einblick in wichtige Algorithmen [Sortieren,
Suchen, Numerik,...]
• Überlegungen zur systematischen Konstruktion
von Programmen
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 66
SchwerpunkteSchwerpunkte
• Erlernen einer Programmiersprache• Studium wichtiger Grundalgorithmen
• In diesem Semester: prozedurale Programmierung mit C und einer Hinwendung zu C++
• Im nächsten Semester: objektorientierte Programmierung mit C++
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 67
Aufbau der VeranstaltungAufbau der Veranstaltung
Vorlesung
Übungen
Praktikum
Konzepte
Vertiefung
Realisierung
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 68
LiteraturLiteratur• A. E. Aho, J. D. Ullman: Foundations of Computer Science.
Computer Science Press, Rockville, MD, 1992/1996 (Teil I)
• A. E. Aho, J.E. Hopcroft, J.D. Ullman: Data Structures and Algorithms. Addison-Wesley, Reading, MA, 1982 (II)
• T. H. Corman, C.E. Leiserson, R. L. Rivest: Introduction to
Algorithms. The MIT Press, Cambridge, MA, 1990 (II)
• E.-E. Doberkat: Das siebte Buch: Objektorientierung mit C+
+. Teubner-Verlag, Wiesbaden, 2000
• N. Josuttis: Objektorientiertes Programmieren Addison-
Wesley, Bonn, 1994 (I)
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 69
LiteraturLiteratur
• N. Josuttis: Die C++-Standardbibliothek. Addison-Wesley,
Bonn, 1996 (I/II)
• Kernighan, B., Ritchie, D.: Programmieren in C, Hanser
Verlag, München, .. 1983 (I)
• Prinz, P., Kirch-Prinz, U.: Objektorientiert programmie-ren
mit ANSI C++, Prentice Hall, München, 1998 (II)
• Ellis,M., Stroustrup, B.: The annotated C++ Reference
Manual, Addison-Wesley, Reading MA, 1990
• M. Schader, S. Kuhlins: Programmieren in C++. Springer-
Verlag, Berlin, 1993 (I)
Kapitel 0: PrologVorl “EINI-I"
15. Okt. 2000 70
ANSI: American National Standards Institute
ASCII: American Standard Code for Information Interchange