Vorlesung SWS WS ‘00/01 Prof. Dr. Gisbert Dittrich

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

Angewandte Informatik - Von Bits und Bytes: Studium der Informatik
Prof. Dr. Liggesmeyer, 1 Software Engineering: Dependability Prof. Dr.-Ing. Peter Liggesmeyer.
Asymptotische Notation
Programmierung II (SS 2003)
Modellierung sozio-technischer Systeme SeeMe - Semi-strukturierte, sozio-technische Modellierungsmethode.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Vorlesung SWS WS ‘99/00 Prof. Dr. Gisbert Dittrich
Bildverarbeitung Technische Universität Darmstadt
Organisatorisches Übungsblatt wöchentlich (ab ), von Mitte November an nur im Netz Abgabe der Lösungen jeweils 1 Woche später, 5 Minuten vor der.
Physik I für Biologen, Chemiker, Geodäten, Geologen,
Grundlagen der Informatik
Kapitel 4 Datenstrukturen
Vorbesprechung zur Übungsaufgabe
Objektorientierte Programmierung
Einführung in Berechenbarkeit und Formale Sprachen
WS 2009/10 1 Vorlesung Systeme 1. WS 2009/10 2 Vorlesung Systeme 1 Lehrstuhl für Kommunikationssysteme Prof. Gerhard Schneider
Java: Objektorientierte Programmierung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Wissenschaftliche Grundlagen des Mathematischen Schulstoffs III Die erste Stunde.
Wissenschaftliche Grundlagen des Mathematischen Schulstoffs Die erste Stunde.
Wissenschaftliche Grundlagen des Mathematischen Schulstoffs IV Die erste Stunde.
Fakten, Regeln und Anfragen
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Vorlesung SWS WS ‘99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 11 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Fortgeschrittenen-Praktikum: Entwicklung und Implementierung eines webbasierten Fußball-Tippspiels mit.
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Angewandte Informatik
Bildverarbeitung Technische Universität Darmstadt
Universität Karlsruhe (TH) © 2008 Univ,Karlsruhe, IPD, Prof. LockemannDBI 0 Datenbankimplementierung und -tuning Einführung.
Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 0 Transaktionsverwaltung Einführung.
Simulation komplexer technischer Anlagen
SOFTWARE.
Praktische Optimierung Sommersemester 2010 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Einführung in die Programmierung
Verknüpfung von Daten in Karten-Referenzsystemen-Projektionen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Praktische Optimierung (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester 2007/08.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering (LS 11) Fakultät für Informatik TU.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Praktische Optimierung – Präludium
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Programmieren in C Einführung
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
R. Der Algorithmen und Datenstrukturen (Magister) 1 Vorlesung Algorithmen und Datenstrukturen (Magister) Sommersemester 2001 Prof. Dr. Ralf Der Institut.
Christian Scheideler WS 2008
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Einführung in die Programmierung
Einführung in die Programmierung
 Präsentation transkript:

EINI Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS ‘00/01 Prof. Dr. Gisbert Dittrich (Dipl.-Inform. Jörg Westbomke) Vertreter: Prof. Dr. Claudio Moraga moraga@ls1.cs.uni-dortmund.de Die gesamte Vorlesung stützt sich weitgehend, jedoch nicht nur, auf die Vorlesung EINI I, wie sie im WS 98/99 von Herrn Doberkat gehalten wurde. Für die freundliche Genehmigung, seine Materialien für diese Vorlesung verwenden zu können, vielen Dank. Des weiteren habe ich eigene Materialien aus vorherigen einschlägigen Vorlesungen eingearbeitet.

Gliederung Organisatorisches Technisches Übungen Rechnerzugang Installation des Gnu C++-Compilers Bedienung des Gnu C++-Compilers Anmerkungen zur „Informatik“ 15. Okt. 2000

Organisatorisches 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: moraga@ls1.cs.uni-dortmund.de 15. Okt. 2000

Organisatorisches III Lageplan der Otto-Hahn-Str. 2. Stock, Raum 216 15. Okt. 2000

Technisches Stellung der Vorlesung: Vorlesung für Studierende anderer Fachbereiche Elektrotechnik: Grundlagen der Informatik I Logistik (3.Sem.) Informationstechnik Magister FB 15 Chemie 15. Okt. 2000

Technisches 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++ 15. Okt. 2000

Technisches 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 15. Okt. 2000

Technisches IV Darstellungsform in der Vorlesung: Unterlagen 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 15. Okt. 2000

„Das siebte Buch: Objektorientierung mit C++“ Ernst-Erich Doberkat Teubner Verlag. Stuttgart, Leipzig, Wiesbaden 2000 15. Okt. 2000

Übungen Angaben zu den Übungen Start der Ü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) Veranstaltungsmodi: 2 wöchentlich / 2 stündig Start der Übungen: In der 45. KW (8. + 10.11.2000) 15. Okt. 2000

Übungen II Lageplan der Otto-Hahn-Str. 2. Stock, Raum 205 15. Okt. 2000

Übungen III Gruppeneinteilung: Eintragen in die Übungsgruppen 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!!! 15. Okt. 2000

Übungen IV Beginn des Übungsbetriebes: 8. November Gruppe 2+3 Danach finden die Übungsstunden im 2 Wochen-Rhythmus statt. 15. Okt. 2000

Übungen V Ausgabe der Übungsblätter: Abgabe 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. 15. Okt. 2000

Übungen VI Übungsschein Übungsscheinpflicht: Min. 50% der erreichbaren Punkte Min. 10 Übungszettel bearbeitet Mündl. Mitarbeit Übungsscheinpflicht: Siehe eigene Prüfungsordnung 15. Okt. 2000

Ü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. 15. Okt. 2000

Übungen VIII Die Übungen sind als praktische Übungen ausgelegt.  Es muß selbst programmiert werden!!! 15. Okt. 2000

Rechnerzugang Über den eigenen (Heim-)PC Windows 9x/NT: Linux Unix  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 15. Okt. 2000

Rechnerzugang II Über einen Uni-Account Elektrotechnik Andere 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 15. Okt. 2000

Rechnerzugang III Standorte der HRZ-Rechner EF 50 R2.326 Chemie 20 Maschinen Standorte der HRZ-Rechner (Campus Nord) Chemie C2-01-726 ca. 10 Maschinen Mathe E12+13 u.U26 ca. 15 Maschinen 15. Okt. 2000

ausführbares Programm Gnu C++ - Compiler Was bedeutet „Gnu“ ? Was ist ein Compiler ? Wozu brauche ich ihn beim Programmieren ? Was macht ein Compiler ? Idee zur Lösung eines Problems Formulierung eines Programms (C++ Syntax) Compiler Übersetzung ausführbares Programm (Maschinensprache) Aus- führung Laufzeit- System 15. Okt. 2000

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 15. Okt. 2000

ausführbares Programm Gnu C++ - Compiler Was ist ein Compiler ? Wozu brauche ich ihn beim Programmieren ? Was macht ein Compiler ? Idee zur Lösung eines Problems Formulierung eines Programms (C++ Syntax) Compiler Übersetzung ausführbares Programm (Maschinensprache) Aus- führung Laufzeit- System 15. Okt. 2000

Gnu C++ - Compiler Public Domain C++-Compiler und -Debugger Verfügbar für Wintel, Unix und Linux Kommandozeilen orientierte Oberfläche 15. Okt. 2000

Gnu 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. 15. Okt. 2000

Gnu C++ - Compiler III Installationsanleitung (Win 95/98/NT) - Starten des Installationsprozesses durch Doppelklick auf die Datei full.exe 15. Okt. 2000

Gnu C++ - Compiler IV Installationsanleitung (Win 95/98/NT) - Bestätigen des Dialoges durch den Knopf Next > 15. Okt. 2000

Gnu C++ - Compiler V Installationsanleitung (Win 95/98/NT) - Akzeptieren der Gnu General Public License durch Yes 15. Okt. 2000

Gnu C++ - Compiler VI Installationsanleitung (Win 95/98/NT) - Auswahl des Zielordners durch Browse oder Über-nehmen der Voreinstellung. Weiter mit Next > 15. Okt. 2000

Gnu C++ - Compiler VII Installationsanleitung (Win 95/98/NT) - Auswahl der Gruppe im Programmordner des Startdialoges. Weiter mit Next > 15. Okt. 2000

Gnu C++ - Compiler VIII Installationsanleitung (Win 95/98/NT) - Erfolgreiche Installation. Weiter mit Finish 15. Okt. 2000

Gnu 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> 15. Okt. 2000

Gnu C++ - Compiler X Aufruf des Compilers Erzeugtes ausführbares Programm Aufruf des Programms 15. Okt. 2000

Anregungen 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 !! 15. Okt. 2000

Anregungen 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. 15. Okt. 2000

Anregungen 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 15. Okt. 2000

Gliederung Prolog Teil II Anmerkungen zur "Informatik" Ziel der Veranstaltung Schwerpunkte Aufbau der Veranstaltung Literatur 15. Okt. 2000

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. 15. Okt. 2000

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. 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}. 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”. 15. Okt. 2000

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}. 15. Okt. 2000

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”. 15. Okt. 2000

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. 15. Okt. 2000

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. 15. Okt. 2000

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. 15. Okt. 2000

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. 15. Okt. 2000

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. 15. Okt. 2000

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 15. Okt. 2000

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.: 15. Okt. 2000

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 15. Okt. 2000

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 • ............. 15. Okt. 2000

Anmerkungen zur "Informatik“ Technische Informatik Rechnerarchitektur Speicherorganisation und -Technologie Schaltnetzwerke und Mikroprogrammierung Mikroprozessoren VLSI Entwurf Telekommunikation, Rechnerverbund (--> Internet, WWW) Peripheriegeräte Spracheingabe Bildabtastung ......... 15. Okt. 2000

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 15. Okt. 2000

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“ 15. Okt. 2000

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. 15. Okt. 2000

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 !!! 15. Okt. 2000

Programmiersprachen 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. 15. Okt. 2000

Programmiersprachen und Denkweisen Weniges zur Historie in den 30er Jahren: Präzisierung von - berechenbare Funktion - Algorithmus (Turing-Maschine, m-rekursive Funktion, l-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") 15. Okt. 2000

Programmiersprachen 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. 15. Okt. 2000

Programmiersprachen 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 - .......... 15. Okt. 2000

Programmiersprachen 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. iI f f(i) = oO 15. Okt. 2000

Programmiersprachen 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. 15. Okt. 2000

Programmiersprachen 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 15. Okt. 2000

Programmiersprachen 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 15. Okt. 2000

Programmiersprachen 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 15. Okt. 2000

Ziel 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 15. Okt. 2000

Schwerpunkte 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++ 15. Okt. 2000

Aufbau der Veranstaltung Konzepte Vorlesung Vertiefung Übungen Realisierung Praktikum 15. Okt. 2000

Literatur 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) Literaturliste noch überarbeiten ! 15. Okt. 2000

Literatur 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) 15. Okt. 2000

ANSI: American National Standards Institute ASCII: American Standard Code for Information Interchange 15. Okt. 2000