Algorithmen und Datenstrukturen I - Einführung - Alexander Sczyrba Technische Fakultät asczyrba@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2013/2014 1 / 21 Themen heute 1 Das Modul Algorithmen und Datenstrukturen 2 Was ist Informatik? 3 Inhalte der Vorlesung 2 / 21
Das Modul Algorithmen und Datenstrukturen 1 Das Modul Algorithmen und Datenstrukturen 2 Was ist Informatik? 3 Inhalte der Vorlesung 3 / 21 Veranstaltungen zu A & D Bestandteile Modul Algorithmen und Datenstrukturen Vorlesung Algorithmen und Datenstrukturen I (Mo 8-10 & Fr 14-16) Dr. Alexander Sczyrba asczyrba@techfak.uni-bielefeld.de Vorlesung Programmieren in Haskell (Mi 16-18) Prof. Dr. Robert Giegerich robert@techfak.uni-bielefeld.de Übung zu A&D I und Haskell (Termine siehe ekvv) Stefan Janssen sjanssen@techfak.uni-bielefeld.de Unix-Praktikum (Termine siehe ekvv) Carsten Gnörlich cg@techfak.uni-bielefeld.de 4 / 21
Kontakt Kontakt Dr. Alexander Sczyrba Email: asczyrba@techfak.uni-bielefeld.de Raum: M3-111 Webseite zur Veranstaltung: http://www.techfak.uni-bielefeld.de/ags/pi/lehre/audiws13/ 5 / 21 Kontakt Literatur Das Skript zu den Vorlesungen A&D und Programmieren in Haskell (siehe Webseite zur Vorlesung) Klaeren und Sperber. Vom Problem zum Programm. Architektur und Bedeutung von Computerprogrammen, 3. Auflage. Teubner, 2001. Neuauflage erschienen als: Klaeren, Herbert und Sperber, Michael. Die Macht der Abstraktion. Einführung in die Programmierung, 1. Auflage. Teubner, 2007 Herold, Lurz und Wohlrab. Grundlagen der Informatik, 2. Auflage, Pearson, 2012. Pomberger und Dobler. Algorithmen und Datenstrukturen, Pearson, 2008. Saake und Sattler. Algorithmen und Datenstrukturen. Eine Einführung mit Java, 2. Auflage. dpunkt Verlag, 2004. Hopcroft und Ullman. Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie, 4. Auflage. Oldenbourg, 2000. 6 / 21
Was ist Informatik? 1 Das Modul Algorithmen und Datenstrukturen 2 Was ist Informatik? Definition Begriff Gesellschaftliche Aspekte Informatik 3 Inhalte der Vorlesung 7 / 21 Definition Definitionsversuch Informatik ist die Wissenschaft vom maschinellen Rechnen Überlegungen Was sind die Merkmale des Rechnens als einer besonderen Tätigkeit des Verstandes, die sich auf einen Mechanismus übertragen lässt? Was sind die historisch-technischen Voraussetzungen zuverlässiger, universeller und effektiver Rechenmaschinen? Mit der Existenz solcher Rechner entsteht eine neuartige Fragestellung: Welche Aufgaben lassen sich als Rechenaufgaben formulieren und damit an einen Rechner delegieren? Daraus ergibt sich die Modellierung als zentrale Aufgabe der Informatik. 8 / 21
Begriff Woher stammt der Begriff Informatik? Aus Information und Automatik geformte Begriffsverschmelzung von Karl Steinbuch (1957) Das menschliche Gehirn ist nicht geschaffen, rationale Prozesse zu veranstalten, sondern das Überleben eines Organismus zu bewirken (Steinbuch, Karl. Falsch Programmiert, 1968) Im Englischen als computer science (Computerwissenschaft) bezeichnet. In der Informatik geht es aber um mehr als nur um Computer. In der Informatik geht es genauso wenig um Computer, wie in der Astronomie um Teleskope. (oft auf Edsger W. Dijkstra zurückgeführt) 9 / 21 Gesellschaftliche Aspekte Gesellschaftliche Aspekte Gibt es eine Computerrevolution? - ein historischer Vergleich: 19. Jahrhundert Die industrielle Revolution bringt die Übertragung menschlicher Fertigkeiten (Kraft, manuelles Geschick) auf die Maschinerie. Die Maschinerie in privater Hand wird zur dominierenden Produktivkraft und die feudale und ständische Gesellschaft weicht der bürgerlichen Gesellschaftsform. Schutz des Eigentums und der bürgerlichen Freiheiten findet als angemessene Herrschaftsform die moderne Demokratie. Diese revolutionären Veränderungen an Gesellschaft und Staatsform sind abgeschlossen, lange bevor der Computer die Bildfläche der Geschichte betritt. 10 / 21
Gesellschaftliche Aspekte Technischer Fortschritt 20. Jahrhundert Entwicklung des Computers, zunächst vorwiegend für militärische Zwecke. Forschritt von teilweise mechanischen (Relais), festprogrammierten Rechenmaschinen zum programmierbaren, elektronischen Rechner. Nach Einführung des Transistors (1955), integrierter Schaltkreise (1965) und der Microprozessoren (1971) kontinuierliche Kostensenkung bei gleichzeitiger Leistungssteigerung. Rapide Verbreitung der Computer im kommerziellen Bereich und zuletzt auch im privaten Bereich. 11 / 21 Gesellschaftliche Aspekte Gesellschaftliche Auswirkungen 20. Jahrhundert Der Computer holt den Prozess der Übertragung menschlicher Fertigkeiten auf die Maschine auf dem Gebiet der einfachen Geistestätigkeiten nach. Gesellschaftlich und politisch ändert sich dadurch nichts Wesentliches, wohl aber werden hergebrachte Tätigkeiten entwertet, manche Berufe verschwinden ganz. Der Fortschritt der Informatik (siehe oben, Modellierung) führt zum Vormarsch des Computers in alle Arbeits- und Lebensbereiche. Insbesondere arbeitet die Informatik stets daran, den Computer und seine Software einfacher und vielseitiger benutzbar zu machen - und damit auch Informatiker-Tätigkeiten von gestern zu entwerten. Wer Informatik als Beruf wählt, muss sich darauf einstellen, dass er sich immer wieder neu qualifizieren muss. 12 / 21
Informatik Kernbereiche der Informatik Technische Informatik Mikroprozessortechnik, Rechnerarchitektur, Rechnerkommunikation Theoretische Informatik Automatentheorie und formale Sprachen, Berechenbarkeitstheorie, Komplexitätstheorie Praktische Informatik Programmiersprachen, Compiler und Interpreter, Algorithmen und Datenstrukturen, Betriebssysteme, Datenbanken Angewandte Informatik Wirtschaftliche, kommerzielle Anwendungen; technisch-wissenschaftliche Anwendungen Über die Inhalte der Fachbereiche informiert euch bitte im Skript! 13 / 21 Informatik Informatische Arbeitsgruppen an der TechFak Angewandte Informatik (Sagerer/Wrede) Bioinformatik und Medizinische Informatik (Hofestädt) Biomathematik und Theoretische Bioinformatik (Baake) Computergrafik und Geometrieverarbeitung (Botsch) Genominformatik (Stoye) Kognitronik und Sensorik (Rückert) Neuroinformatik (Ritter) Neuromorphic Circuits (Chicca) Praktische Informatik (Giegerich) Rechnernetze und Verteilte Systeme (Ladkin) Semantische Datenbanken (Cimiano) Technische Informatik (Möller) Theoretische Informatik kognitiver Systeme (Hammer) Wissensbasierte Systeme (Wachsmuth) 14 / 21
Informatik Forschungsgruppen an der TechFak Ambient Intelligence Group (Hermann) Biodata Mining (Nattkemper) Computational Metagenomics (Sczyrba) Biomechatronik (Schneider) Sociable Agents (Kopp) 15 / 21 Inhalte der Vorlesung 1 Das Modul Algorithmen und Datenstrukturen 2 Was ist Informatik? 3 Inhalte der Vorlesung Modellierung Maschinenmodelle Strategien der algorithmischen Problemlösung Effizienz von Algorithmen Algorithmen auf Zeichenreihen 16 / 21
Modellierung Modellierung Vom Problem zur Rechenaufgabe Was sind bekannte Probleme der Informatik? Welche Lösungsstrategien gibt es und wie kann man diese bewerten? Wie sieht ein umfangreicheres Beispiel für ein formales System aus? Beispiel für Musik 17 / 21 Maschinenmodelle Maschinenmodelle Vom Modell zum Programm: Wie sage ich es meinem Rechner? Registermaschinen Endliche Automaten Wie lassen sich Programme analysieren? 18 / 21
Strategien der algorithmischen Problemlösung Strategien der algorithmischen Problemlösung Algorithmen (von Muhammed al-chwarizmi) Wie kann man Formeln ausrechnen? Welche grundlegenden Strategien gibt es? Rekursion Divide and Conquer Brute Force Greedy Dynamische Programmierung 19 / 21 Effizienz von Algorithmen Effizienz von Algorithmen Wie kann man über Effizienz geeignet reden? Wie führt man eine Effizienzanalyse durch? Wie effizient sind bekannte Sortierverfahren? Was sind die Grenzen der Optimierung? Welche Auswirkung hat Lazy Evaluation auf die Effizienz? 20 / 21
Algorithmen auf Zeichenreihen Algorithmen auf Zeichenreihen Welche Anwendungen beschäftigen sich mit Zeichenreihen? Wie lassen sich die Algorithmen formal fassen? Wie arbeiten bekannte Algorithmen? Boyer-Moore Boyer-Moore-Horspool Knuth-Morris-Pratt Aho-Corasick Kompressionsverfahren, Lempel-Ziv, Lempel-Ziv-Welch 21 / 21