Grundlagen der Informatik

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Informatik"

Transkript

1 Grundlagen der Informatik Wolfgang Ertel, Paul Bußmann, Karl Glatz 23. September 2012 Hochschule Ravensburg Weingarten Technik Wirtschaft Sozialwesen

2 Inhaltsverzeichnis 1 Was ist Informatik? Informatik Computer Information Teilgebiete der Informatik? Programm, Algorithmus, Software Betriebssysteme Softwaretechnologie Datensicherung Datenschutz Datenbanken Das Informatikstudium Geschichte der Informatik Wichtige Quellen Zahlendarstellung Geschichte der Bauelemente Geschichte der Rechenmaschinen Geschichte der Programmiersprachen Geschichte des Internet Große Informatiker Frauen in der Informatik Wichtige Institute und Firmen Algorithmen und Datenstrukturen Einführung Sortieren durch Einfügen Quicksort Sortieren mit Bäumen (Heapsort) Sortieren in linearer Zeit Hashing Algorithmen auf Graphen Einführung Eulerkreise Datenstrukturen für Graphen Kürzeste Wege Das Problem des Handlungsreisenden Planare Graphen

3 5 Formale Sprachen und Endliche Automaten Grundlagen Grammatiken Reguläre Ausdrücke Endliche Automaten zur Worterkennung Automaten mit Ausgabe Formale Beschreibung von Automaten Zusatzmaterial Logarithmen Anwendung des Mastertheorems Übungen Zahlensysteme Sortieren Graphen Formale Sprachen und Endliche Automaten Literaturverzeichnis 87 3

4 Kapitel 1 Was ist Informatik? 1.1 Informatik Definition 1.1 Informatik ist die Wissenschaft der automatischen Verarbeitung von Informationen. (Am.: Computer Science) Verschiedene Aspekte der Informatik: Spaß am Programmieren (Erfolgserlebnisse) Spaß an der Beherrschung der Maschine Teilweise sehr abstrakte Wissenschaft (Mathematik) Ohnmachtgefühl von Laien 1.2 Computer Definition 1.2 Programmierbare Rechenmaschinen werden als Computer bezeichnet. Früher wurden Menschen, die rechnen als Computer bezeichnet. Computer machen unser Leben bequemer helfen beim Beschaffen von Informationen vereinfachen die Kommunikation können süchtig machen können zum Pseudopartner werden vernichten Arbeitsplätze schaffen Arbeitsplätze 4

5 Wem nützt die Informatik? Wem schadet die Informatik? Soziale Verantwortung des Informatikers! 1.3 Information Information: Wissen, Gegenteil von Unsicherheit. Definition 1.3 Als elementare Maßeinheit für Information dient das Bit. Eine Nachricht (z.b. ein Text od. eine Zahl) hat einen Informationsgehalt von n Bit, wenn die minimale Zahl von Ja/Nein Fragen, zur exakten Ermittlung der Information genau n ist. Ein Computer-Wort besteht z.b. aus 8, 16, 32, oder 64 Bit. Beispiel = = Teilgebiete der Informatik? Wi- Informatik Einen guten Überblick über die verschiedenen Teilgebiete der Informatik verschafft das kipedia Informatik Portal. Theoretische Informatik Logik (logisch!) Berechenbarkeit (ist jedes Problem berechenbar?) Komplexität (Rechenaufwand) Formale Sprachen (Programmiersprachen) Informationstheorie (Datenübertragung) Kryptographie (Datensicherheit) Formale Spezifikation und Verifikation (Korrektheitsbeweise von Programmen)... Technische Informatik Hardware Rechnernetze 5

6 Schaltungen Schnittstellen Peripheriegeräte Praktische Informatik Bereitstellen von Hilfsmitteln für die Arbeit mit Computern Rechnerarchitektur Betriebssysteme (DOS, Windows, Unix,... ) Datenbanken Künstliche Intelligenz Software-Entwicklung Datenkommunikation Prozeßsteuerung Bildverarbeitung... Angewandte Informatik Wirtschaftsinformatik Medizinische Informatik Medieninformatik (Multimedia) Kommunikationstechnik Automatisierungstechnik Künstliche Intelligenz 1.5 Programm, Algorithmus, Software Definition 1.4 Algorithmus: Allgemeines Schema zur Lösung einer Klasse von Problemen. Programm: Folge von Befehlen in einer festen Programmiersprache Softwareentwicklung: Problemanalyse Problemlösung (Algorithmierung) Programmierung (Kodierung) Test Inbetriebnahme Softwaretechnologie: Systematische Untersuchung der Softwareentwicklung und Bereitstellung von Entwicklungswerkzeugen. 6

7 1.6 Betriebssysteme Betriebssysteme: Aufgaben Laden u. Starten von Programmen Verwalten des Hauptspeichers Schützen der Speicherbereiche von Programmen Verwaltung des virtuellen Speichers (paging, swapping) Paging: Auslagern von Programmteilen Swapping: Auslagern ganzer Programme Verwaltung von Dateien Verwaltung von Dateiattributen (Größe, Datum, Rechte) Verwaltung von Verzeichnissen Ein- und Ausgabe zeichenorientiert: Tastatur, Bildschirm, Drucker, serielle Schnittstelle blockorientiert: Festplatte, Diskette, CD-Rom, Streamer Verwaltung von Warteschlangen, z.b. f. Drucker Zeitgeberfunktionen: Datum, Uhrzeit, verzögerter Programmstart Betriebssysteme: Bestandteile Betriebssystemkern: (Kernel) allgemeine Module f. Ein/Ausgabe, Speicherverwaltung, etc. Dienstprogramme: kopieren, löschen v. Dateien, formatieren v. Disketten,... Bootprogramme: zum Hochfahren des Rechners benötigte Programme ladbare Treiber: z.b. f. Netzwerkanbindung, Streamer 1.7 Softwaretechnologie Kosten von Hard- und Software: Früher: 90% Hardware, 10% Software Heute: 10% Hardware, 90% Software Informatik als Ingenieursdisziplin mit der Aufgabe der Softwareentwicklung! Definition 1.5 Beim Softwareengineering laufen folgende Prozesse parallel nebeneinander ab: Softwareentwicklung Projektmanagement Qualitätssicherung Projektverwaltung 7

8 1.7.1 Softwareentwicklung Wichtige Begriffe: Softwarelebenszyklus (software life cycle) Phasenmodell der Softwareentwicklung Wasserfallmodell Planung Der Softwarelebenszyklus Spezifikation Entwurf Kodierung Test Betrieb Stillegung Moderne Softwareentwicklung Wichtige Schritte im Entwicklungsprozess: Unix-Pipe: ps sort lp ps Use Cases: Typische Benutzer-Programm Interaktionen Verteilungsmodell: Verteilung von Objekten/Prozessen auf einzelne Rechner, bzw. Teilnetze Datenflußdiagramm: Graphische Darstellung des Datenflusses. Führt zu Schnittstellendefinitionen. Prozeßliste sort sortierte Liste lp druckbare Daten Drucker Ausdruck auf Papier CASE: Computer Aided SW-Engineering CASE-Tools sind Werkzeuge, die den ganzen Entwicklungsprozeß unterstützen. Teile des Prozesses können dabei automatisiert werden, andere benötigen eine Interaktion des Menschen mit dem Tool. Mehr Informationen auf case-tools.org. 8

9 1.8 Datensicherung Eine wichtige Aufgabe beim Betrieb eines Rechensystems ist die Datensicherung. Definition 1.6 Datensicherung (engl. Dump) ist das regelmäßige Speichern von Daten von der Festplatte auf einen anderen Datenträger mit dem Ziel der Rekonstruktion bei Datenverlust. klassisches Verfahren: inkrementeller Dump Level 0 Dump: 1 pro Monat wird die gesamte Platte (inklusive Betriebssystem) auf dem Magnetband gesichert. (in den ungeraden Monaten auf Band M-1, in den geraden Monaten auf Band M-2.) Level 1 Dump: 1 pro Woche werden die Benutzerdaten von der Platte auf dem Magnetband gesichert. (in den ungeraden Wochen auf Band W-1, in den geraden Wochen auf Band W-2.) Level 2 Dump: täglich werden die Benutzerdaten von der Platte auf dem Magnetband inkrementell gesichert. (in den ungeraden Wochen auf die Bänder Mo-1,..., Fr-1, in den geraden Wochen auf die Bänder Mo-2,..., Fr-2) Bemerkungen: insgesamt werden 14 Magnetbänder für die Datensicherung benötigt! während des Dumps sollte kein Benutzer auf dem Rechner arbeiten. die gesicherten Medien (Bänder) sollten in einem anderen Gebäude sicher verwahrt werden. modernes Verfahren: Daten werden monatlich, wöchentlich, täglich auf je eine monatliche, eine wöchentliche, bzw. eine tägliche Festplatte (im Wechsel) gespiegelt, nach ähnlichem Verfahren wie oben. 1.9 Datenschutz Bundesdatenschutzgesetz (BGBL , S. 66) 1, Abs. 1: Zweck dieses Gesetzes ist es, den Einzelnen davor zu schützen, dass er durch den Umgang mit seinen personenbezogenen Daten in seinem Persönlichkeitsrecht beeinträchtigt wird. Beispiel: Die Veröffentlichung von Fotos von Mitarbeitern ist nur erlaubt, wenn der Mitarbeiter freiwillig und schriftlich sein Einverständnis erklärt. Eva Müller Mitarbeiterin des Monats 9

10 1.10 Datenbanken Beispiele: Literaturdatenbank Personaldatenbank Gefahrstoffdatenbank Buchungssystem für Reisebüros/Fluggesellschaften... Definition 1.7 Eine Datenbank ist eine systematisch strukturierte, langfristig verfügbare Sammlung von Daten einschließlich der zur sicheren und schnellen Manipulation dieser Daten erforderlichen Software. Vorteile einer Datenbank: Mehrbenutzerbetrieb möglich Unterschiedliche Sichten auf die Daten sind möglich Daten sind unabhängig von Nutzerprogrammen; Nutzung ist unabhängig von der Art der Speicherung. Vollständigkeit (Integrität) und Korrektheit (Konsistenz) werden automatisch gewährleistet. Eine Datenbank besteht aus Datenbasis: die (z.b. als Tabellen) in Dateien gespeicherten Daten. Datenbankmanagementsystem (DBMS): Programm für Aufbau, Verwaltung und Anwendung der Datenbank. Datenbanksprache: formale Sprache zur Formulierung von Benutzeranfragen an die Datenbank. (Beispiel: SQL (Structured Query Language)) 1.11 Das Informatikstudium Leonardo da Vinci: Studium ohne Hingabe schadet dem Gehirn Der Studienerfolg wird statistisch u.a. bestimmt durch folgende Variablen: Schnitt falls Abitur Note: Note = Schnitt 0.5 falls FH-Reife direkt Schnitt 1 falls FH-Reife auf 2. Bildungsweg Interesse (für Informatik): Ich wollte schon immer wissen, wie (intelligente Roboter, Verschlüsselung, Internet,... ) funktioniert (0 1) Biss (Wille): Wenn nötig arbeite ich auch am Abend und am Wochenende (0 1) SozUm: Finanziell gesichert, Wohnen vor Ort, Partnerschaft o.k. (0 1) 10

11 Entscheidungsbaum Variablenwerte für Interesse, Biss, SozUm: 1: trifft voll zu; 0: trifft nicht oder nur teilweise zu Studienerfolg: : keine Abschluss; +: Bachelor; ++: Bachelor, sehr gut Note Biss 0 1 >3 0 Biss Interesse 0 1 <1.5 Interesse Interesse Interesse Biss 0 1 SozUm SozUm Biss Score (einfach) Score = (3 Note) + 3 Biss + 2 Interesse + SozUm ++ falls Score > 3.5 Studienerfolg = + falls Score > 0 falls sonst 11

12 Kapitel 2 Geschichte der Informatik 2.1 Wichtige Quellen F. Naumann, Vom Abakus zum Internet [2] H. Matis, Die Wundermaschine[3] W. de Beauclair, Rechnen mit Maschinen eine Bildgeschichte der Rechentechnik[4] 2.2 Zahlendarstellung Additive Zahlendarstellung: additiv (ohne Null) mit Null (binär) dezimal additive Zahlendarstellung ist für große Zahlen nicht brauchbar! Mit n Stellen lassen sich darstellen: additiv: die Zahlen 1... n binär: die Zahlen n 1 dezimal: die Zahlen n 1 Ziffern 0... b: die Zahlen 0... (b + 1) n 1 Wieviele Stellen braucht man, um eine große Zahl z darzustellen? binär: allgemein: z = 2 n n = log 2 z 12

13 Zahl d. Stellen um die Zahlen 0... m darzustellen additiv: m + 1 binär: log 2 m + 1 dezimal: log 10 m + 1 Ziffern 0... b: log b+1 m + 1 Die Zahl der Stellen bei Stellenwertsystemen wächst nur logarithmisch mit der Größe der darzustellenden Zahl (dank der Null) Geschichte der Zahlen und des Rechnens v. Chr. erste Zeichensysteme für Zahlen in Ägypten und Mesopotamien 3500 v. Chr. Zeichen auf Tontafeln in Pakistan Additive Zahldarstellung in Rom, Mexiko (Maya), China, Ägypten, Sumerer 200 v. Chr Erfindung der Null in Indien Stellenwertsystem 0 Römische Schriftzeichen 1200 Fibonacci führt negative Zahlen ein (Schuld) 2.3 Geschichte der Bauelemente Rechenlogik Elektrische Rechenmaschine braucht elektrische Schalter! Mechanik Antike bis heute Relais , J. Henry Röhre , J.A. Fleming (Engl.) Transistor 1947 heute, Bell Labs (USA) 13

14 Integrierter Schaltkreis 1958, heute bis zu 1 Milliarde Transistoren auf unter 1 cm 2 Pentium 4 Intel, 2000, bis 3.8 GHz Taktfrequenz, 2 CPUs auf einem Chip Speichertechnologie 1956, IBM-RAMAC erste Festplatte 50 Platten, je 60 cm Durchmesser, 1200 Umdr./min pro Platte Spuren mit je 500 Zeichen pro Platte 100 kb Speicher gesamt: 5 MB Speicher Speichertechnologie 2005 Mehr als 4 Gigabit pro cm 2 Anzahl der Spuren pro Zoll (tpi) z. B , Köpfe fliegen Nanometer über d. Platte (Haar ist nm dick) Speichertechnologie Geschichte der Rechenmaschinen Kerbhölzer und Knotenschnüre Speicherung von Zahlen Additition und Subtraktion 14

15 2.4.2 Mechanische Rechenmaschinen (Mittelalter) Analytical Engine Abakus: +, Schickard (1623, lange unbekannt): +,,, / Die grundlegend neuen Ideen bestehen: 1. In der Programmierbarkeit einer Maschine durch Verwendung von Jacquard schen Lochkarten. 2. In der Weiterverwendung von Zwischenergebnissen. ( the engine eating its own tail ) 3. Der Aufteilung des Gerätes in Speicher(Store) und Rechenwerk (Mill). Zahnstangen dienten der Übertragung von Zahlenwerten zwischen Store und Mill (Rechnerbus). Bis 1948 (Speicherprogrammierbarkeit, John von Neumann) gibt es keine grundlegende Weiterentwicklung dieses Konzepts! Die ersten modernen Rechner hatten eine einfachere Architektur. Pascal (1641): +, Die Analytical Engine war ein Papiercomputer. Nur einzelne Komponenten (Teile des Rechenwerks) wurden wirklich gebaut. Leibniz (1675) +,,, / Babbage (1823), Difference Engine Babbage (1833?), Analytical Engine (programmierbar!) Informatikgeschichte, E. Ehses Der Abakus (ca v.chr. bis heute!) die universale Rechenmaschine schlechthin! verwendet in Griechenland, Datenblatt Rom, der Japan, Analytical China Engine(bis heute), Rußland (bis heute) heute in Japan: Wettbewerbe Abakus Taschenrechner Speicher für rund 100 Variable zu je Stellen. Die Analytical Engine Vorrichtung zur Wiederholung von Operationen ( mechanical means have been provided for backing up or advancing the operation cards to any extend ) Stanzer für Zahlenkarten (Massenspeicher). Programmierbarkeit einer Drucker. Maschine (revolutionär!) durch Verwendung von Jacquard schen Zeichengerät. Lochkarten. Weiterverwendung von Zwischenergebnissen. Setzmaschine (offline). ( the engine eating its own tail ) Addition und Subtraction vermutlich ca. 2 sec. Aufteilung des Gerätes in Speicher(Store) Multiplikation ca 1 min. und Rechenwerk (Mill). Zahnstangen dienten der Übertragung von Zahlenwerten zwischen Store und Mill (Rechnerbus). Informatikgeschichte, E. Ehses

16 Die Analytical Engine war ein Papiercomputer. Nur einzelne Komponenten (Teile des Rechenwerks) wurden wirklich gebaut. Bis 1948 (Speicherprogrammierbarkeit, John von Neumann) gibt es keine grundlegende Weiterentwicklung dieses Konzepts! Die ersten modernen Rechner hatten eine einfachere Architektur. Eingabeschnittstelle für Lochkarten, unterschieden nach operation cards für die Befehlseingabe, variable cards zur Eingabe von Variablen und ihrer Speicheradresse, sowie den number cards. Ausgabeschnittstelle entweder für einen Drucker oder für Lochkarten die in die Bibliothek eingereiht werden. Die Chiffriermaschine Enigma 1923: Erfindung durch Arthur Scherbius zum Gebrauch für Geschäftsleute. 1925: Deutsche Wehrmacht kauft Enigmas. mehrfach geknackt (Polen) und wieder verbessert. 1939: Der Großangriff der Briten auf die Enigma in Bletchley Park. 1942: Neue Enigma mit vier Walzen ist wieder sicher und wird im U-Boot-Krieg eingesetzt. 1943: Nach fast einem Jahr wird die 4-Walzen-Enigma geknackt. Hier kam Colossus zum Einsatz. 1945: Entschlüsseln der Enigma-Codes war am Sieg der Alliierten mit beteiligt. Ca Personen arbeiteten in drei Schichten rund um die Uhr. Zuse Z1, Z2 Baujahr 1938, 1939 Bleche schieben Stifte, Relais (Z2) binär-dezimal Konvertierung, Operationen: +,,, /,, Elektrische Rechenmaschinen Zuse Z3 Der im Flugzeugbau tätige Maschinenbauer und Bauingenieur Konrad Zuse (Berlin, ) erfand 1941 den ersten frei programmierbaren Rechner Z3. 16

17 Baujahr 1941 programmierbar über Lochstreifen Ausgabe über Lampenfeld Binäre Schaltlogik RISC -Architektur: wenige Befehle Gleitpunktarithmetik Multiplikationszeit: 3 sec. Hauptspeicher: 64 Worte à 22 Bit ASCC (MARK 1) H. Aiken will Rechner zum Lösen von DGLs erster Rechner mit konsequenter vonneumann- Architektur Baujahr 1944, Univ. Harvard und IBM programmierbar über Lochstreifen Multiplikationszeit: 6 sec. in Betrieb bis Einzelteile 15 m lang, 2.5 m hoch Colossus entwickelt u.a. von Alan Turing zum Knacken von Enigma-Codes Baujahr 1943, programmierbar über Lochstreifen photoelektr. Leser (5000 Zeichen/sec.) Multiplikationszeit: 6 sec. Original 1500 Röhren Nachbau Eniac (electronical numerical integrator and computer) Baujahr 1946, Univ. Pennsylvania, USA universell eingesetzt, in Betrieb bis 1955 Dezimalrechner, 10 Dezimalstellen Taktfrequenz 100 khz (Addition 0,2 ms) Röhren, 1500 Relais Multiplikationszeit: 3 sec. 17

18 IBM 360 Baujahr 1964 Erster kommerziell erfolgreicher Großrechner MTS: Michigan Time sharing system, 1966 Control Data CDC 6600 Erbaut 1964 von S. Cray 3 MIPS verteilte Architektur, 10 I/O-Prozessoren Telefunken TR 440 Baujahr ,50 m breit Gewicht ca Kg Taktfreq. 20 MHz, 1.2 MIPS 1,5 MB Kernspeicher mit virtueller Adressierung CPU Lochkartenstanzer Cray 1 Baujahr 1976 Vektorrechner Supercomputer für numerische Berechnungen 64 parallel arbeitende 64-Bit Prozessoren 166 Mega-FLOPS Gewicht: 2.5 Tonnen Connection Machine Baujahr 1986, D. Hillis of Thinking Machines Corp Massiv parallel: parallele Prozessoren ca. 10 Milliarden Operationen pro sec. Anwendung in der KI, u.a. Neuronale Netze 18

19 PCs Commodore Pet, 1977, Kassettenlaufwerk, 4/8 kb Hauptspeicher Apple 2, 1977, 1 Mainboard, Farbgrafik IBM PC, 1981, 4.77 MHz Intel 8088, MS- DOS (Microsoft disc operating system) Commodore 64, 1981, für 595 US$ viel billiger als die Konkurrenz, TV-Bildschirm, Kassettenlaufwerk, 64 KB RAM Zitate I think there is a world market for about five computers. Thomas J. Watson Jr., chairman of IBM (1943) Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and perhaps weigh tons. Popular Mechanics (March 1949) 640 K [of computer memory] ought to be enough for anybody. Wird Bill Gates zugeschrieben, der dies aber bestreitet. 2.5 Geschichte der Programmiersprachen Heute gibt es über 2500 verschiedene Programmiersprachen Siehe Aushang, bzw. prozedural: Assembler, Fortran (1954), PL/1, Basic, Algol, APL, C, Pascal, Cobol, Perl, PHP, ADA funktional: Lisp (1958), Haskell, Miranda, Mathematica logisch: Prolog (1970) objektorientiert: Simula 67, Smalltalk (1969), C++, Oberon, Java, C# Fakultät in C, Prolog, Mathematica C (prozedural): 1 int fakultaet(int n) { 2 int ergebnis = 1; 3 4 if (n > 1) { 5 ergebnis = n * fakultaet(n - 1); 6 } 7 8 return ergebnis; 9 } 19

20 Mathematica (funktional): 1 Fac[0] := 1; 2 Fac[n_] := n * Fac[n - 1] Prolog (logisch): 1 fakultaet(1,1). 2 fakultaet(n,res) :- N1 is N-1, fakultaet(n1,res1), Res is N * Res1, 2.6 Geschichte des Internet Gegründet 1962 durch die Advanced Research Projects Agency (ARPA) der USA (AR- PANET). Unter der Leitung von Bob Kahn und Vint Cerf entstehen 1973 das Transmission Control Protocol (TCP) und 1976 das IP Protokoll in Form von RFC Dokumenten. Erstes -Netz 1977 an der Univ. Wisconsin. TCP/IP wird weltweit eingeführt Tim Berners-Lee erfindet 1989 am CERN das World Wide Web (WWW) In the Beginning, ARPA created the ARPANET. And the ARPANET was without form and void. And darkness was upon the deep. And the spirit of ARPA moved upon the face of the network and ARPA said, Let there be a protocol, and there was a protocol. And ARPA saw that it was good. And ARPA said, Let there be more protocols, and it was so. And ARPA saw that it was good. And ARPA said, Let there be more networks, and it was so. Danny Cohen Aktuelle Trends (2012) 20

21 2.7 Große Informatiker Blaise Pascal (Frankreich, ) baute als 18 jähriger für seinen Vater die erste funktionierende mechanische Rechenmaschine zur Addition sechsstelliger Zahlen. (Digitalrechner) Gottfried Wilhelm Leibniz (Leipzig, ) Philosoph, Mathematiker, Diplomat, Bibliothekar baut eine Rechenmaschine für alle vier Grundrechenarten. Gründer der Akademie der Wissenschaften in Berlin Erfindung der Dualzahlen Charles Babbage (England, ) Entwickelt die Difference Engine zur Ableitung von Polynomen (1823) Entwickelt die Analytical Engine (1833) Kurt Gödel (Österreich, ) Der Österreicher Kurt Gödel zeigt 1931 dass in der Prädikatenlogik erster Stufe alle wahren Aussagen herleitbar sind. In Logiken höherer Stufe hingegen gibt es wahre Aussagen, die nicht beweisbar sind. Es lassen sich also nicht alle Berechnungsaufgaben automatisieren. Zusammen mit Einstein arbeitet er auch an der Relativitätstheorie und Kosmologie. Denken Sie nach über die Aussage:,,Ich bin nicht beweisbar oder über,,die Menge aller Barbiere, die all die Menschen rasieren, die sich nicht selbst rasieren. oder über die Menge {x x / x}. 21

22 Alan Turing (England, ) Der Brite Alan Turing leistet u.a. folgendes Er erfindet 1935 das bis heute universelle Berechnungsmodell, die Turingmaschine. Er zeigt, dass es viele Funktionen gibt, die nicht berechenbar sind. Er beweist das Halteproblem: Es kann kein Programm geben, das in endlicher Zeit entscheidet, ob ein beliebiges Programm auf einer Eingabe hält oder eine Endlosschleife hat. Er definiert den Begriff der Intelligenz über den Turing Test. Ende der Dreißiger Jahre macht er schon Vorschläge für lernfähige Computer. Er ist im 2. Weltkrieg führend beteiligt an der Dechiffrierung der Enigma. Er ist beteiligt am Bau von Colossus, dem ersten britischen Computer für die Dechiffrierung der Enigma (1944). Er entwickelt einen Schachalgorithmus. Mangels Computer simuliert er auf Papier den Computer und benötigt so etwa 90 Minuten pro Zug. Denken Sie über folgendes Programm nach: 1 void foo(int n) { 2 if (runs_endlessly(foo, 0)) { 3 printf("not executing foo, because it runs endlessly!"); 4 else { 5 while (true) { 6 printf("please wait..."); 7 } 8 } 9 } Lesekopf Die Turingmaschine: H A L L O Z Zustand Claude Shannon (Michigan, ) A Mathematical Theory of Communication (1948) Informationstheorie, Entropie als Informationsmaß Formale Grundlagen der Kryptographie (Konfusion und Diffusion, 1949) Entwickelt einen Schachcomputer (1960) Alonzo Church (Washington, ) Berechenbarkeit Lambda Kalkül Church sche These: Die Turingmaschine kann alles berechnen, was wir intuitiv für berechenbar halten. 22

23 John von Neumann (Polen, ) Spieltheorie, Minimax Algorithmus (1928) Quantenmechanik, Entwicklung der Atombombe von Neuman Architektur von Rechnern (EDVAC) genial, lebenslustig, trinkfest Die vonneumann-architektur Zentraleinheit (CPU mit Rechen- und Steuerwerk) Speicher (Hauptspeicher) Bus (Busse) Ein/Ausgabe (I/O) Peripheriegeräte Rechenwerk CPU Steuerwerk Datenbus Adressbus Speicher (RAM) I/O Edsger Dijkstra (Rotterdem, Holland, ) Algorithmen auf Graphen Kürzeste Wege Algorithmen Korrektheit von Programmen Donald Knuth (Milwaukee, 1938 ) Meister der Algorithmen, u.a.: Zufallszahlen, Sortieren, Suche,... Autor der 5-bd.,,Bibel : The Art of Computer Programming Erfinder des Textsatzsystems TEX spielt eine selbstgebaute Orgel Zitate:,,Computer Programming is an art form, like the creation of poetry or music.,,i got into compilers because I thought the most amazing thing you could do with computers was to have them write their own programs. When computing is applied to computing, that s when computer science reaches an ultimate completeness. Stephen A. Cook (Buffalo, New York, 1939 ) Begründer der modernen Komplexitätstheorie NP-Vollständigkeit Leslie Lamport (New York, 1941 ) Theorie verteilter Systeme Lamport clock: partielle Ordnung der Zeit, keine globale Zeit Enwickler von L A TEX(TEX-Macropaket) 23

24 Zitat:,,When I look back on my work, most of it seems like dumb luck I happened to be looking at the right problem, at the right time, having the right background. Ken Thompson, Dennis Ritchie (New Orleans, 1943, New York, 1941 ) 1969: Erfindung von UNIX und C (Bell Laboratories, New Jersey, später AT&T) Viele innovative Konzepte: Pipelining, verteilte Prozesse, Sockets, Timesharing und Prozesse mit Prioritäten (auch auf PCs) Niklaus Wirth (Winterthur, Schweiz, 1934 ) Erfinder der Programmiersprachen Pascal (1970) und Modula (1975) Erfinder der Objektorientierten Sprache Oberon (1987) Bill Gates (Seattle, 1955 ) brach nach zwei Jahren sein Studium in Harvard ab. zus. mit Paul Allen Gründer von Microsoft mit d. Kauf von MS-DOS 1980 durch IBM beginnt die Erfolgsstory von Microsoft 1983 erscheint die erste Version des Betriebssystems Windows reichster Mann der Welt (ca. 50 Mrd. US$) Tim Berners-Lee (London, 1955 ) 1989 schlug Berners-Lee seinem Arbeitgeber CERN (Europäisches Kernforschungslabor) ein Projekt vor, das auf dem Prinzip des Hypertexts beruhte und den weltweiten Austausch sowie die Aktualisierung von Informationen zwischen Wissenschaftlern vereinfachen sollte.[1] entwickelte den ersten Webbrowser, baute die erste Webseite Der Turing Award siehe ACM s most prestigious technical award is accompanied by a prize of $ 250,000. Financial support of the Turing Award is provided by the Intel Corporation and Google. ACM: Association of Computing Machinery 1966 A.J. Perlis Compilerbau 1967 Maurice V. Wilkes EDSAC, erster Computer mit internem Programmspeicher 1968 Richard Hamming Kodierung, Hamming-Distanz 1969 Marvin Minsky Perzeptron, Neuronale Netze 1970 J.H. Wilkinson Numerik 1971 John McCarthy Künstliche Intelligenz, LISP 1972 E.W. Dijkstra Graphenalgorithmen, ALGOL 1973 Charles W. Bachman Datenbanken 24

25 1974 Donald E. Knuth Algorithmen, The Art of Computer Programming, Erfinder von TEX 1975 Allen Newell, Herbert A. Simon Künstliche Intelligenz, General Problem Solver 1976 Michael O. Rabin, Dana Scott Automaten, Alg., Nichtdeterminismus, randomisierte Alg John Backus FORTRAN, Backus-Naur-Form Grammatik 1978 Robert W. Floyd formale Methoden zur Software Entwicklung 1979 Kenneth E. Iverson Programmiersprachen, APL 1980 C. Antony R. Hoare Programmiersprachen 1981 Edgar F. Codd Relationale Datenbanken 1982 Stephen A. Cook Komplexität, NP-Vollständigkeit 1983 Ken Thompson, Dennis Ritchie Betriebssystem UNIX 1984 Niklaus Wirth MODULA, PASCAL, Oberon 1985 Richard M. Karp NP-Vollständigkeit 1986 John Hopcroft, Robert Tarjan Algorithmen und Datenstrukturen (Lehrbuch) 1987 John Cocke Compilerbau, RISC-Computer 1988 Ivan Sutherland Computergraphik 1989 William (Velvel) Kahan Numerik, Floating Point Arithmetik 1990 Fernando J. Corbato Time sharing 1991 Robin Milner Logik, funktionale Progarmmierung: ML 1992 Butler W. Lampson PC-Entwicklung (Microsoft) 1993 Juris Hartmanis, Richard Stearns Komplexitätstheorie 1994 Edward Feigenbaum, Raj Reddy Künstliche Intelligenz, prakt. Umsetzung 1995 Manuel Blum Komplexitätstheorie, Kryptographie 1996 Amir Pnueli Temporallogik, Programmverifikation 1997 Douglas Engelbart Maus, Fenster 1998 James Gray Datenbanktechniken 1999 Frederick P. Brooks Rechnerarchitaktur, IBM Andrew Chi-Chih Yao Zufallszahlen, Kryptographie 2001 Ole-Johan Dahl, Kristen Nygaard Simula, OOP 2002 Ron Rivest, Adi Shamir, Leonard Adleman Public Key Kryptographie, RSA-Algorithmus 2003 Alan Kay Objektorientierte Programmierung, Smalltalk 2004 Vinton G. Cerf, Robert E. Kahn Vernetzung, TCP/IP 2005 Peter Naur Design von Programmiersprachen (Algol 60), Compilerdesign 2006 Frances E. Allen Parallele Programmierung, erste Frau mit Turing Preis! 2007 E. Clarke, A. Emerson, J. Sifakis Modellprüfung 2008 Barbara H. Liskov Programmiersprachen und System Design 2.8 Frauen in der Informatik Warum gibt es so wenige Frauen in der Informatik? 1 Intelligenztests zeigen minimale Unterschiede ausschließlich bei: Vorstellung räumlicher Drehungen von Figuren zugunsten der Männer Sprachkompetenzen zugunsten der Frauen Es gibt keine Intelligenz und Begabungsunterschiede die die geringe Beteiligung der Frauen erklären können! Frauenanteil am Informatik-Studium (2001) Land Frauenanteil [%] England 35 Italien, Frankreich, Spanien, Portugal frühere Sowjetunion 50 Bulgarien Griechenland 59 Indien, Malaysia, Singapur 50 Deutschland 8 1 teilweise entnommen aus Olga Goldmann Seminar: Geschichte der Informatik, schillo/teaching/ws2001/geschichts-seminar.html 25

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Wolfgang Ertel 24. Juli 2008 Inhaltsverzeichnis 1 Was ist Informatik? 4 1.1 Informatik....................................... 4 1.2 Computer.......................................

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Geschichte und Einteilung der Informatik 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010 2 Der

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Wesentliche Inhalte Einführung Rechnergrundlagen Grundlagen der Programmierung Kern imperativer

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 22 September 2014 1 / 24 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte des Computers 4 Komponenten eines Computers 5 Aufbau eines

Mehr

Algorithmus, siehe (1)

Algorithmus, siehe (1) Der Computer als elektronische Rechenmaschine entstand in den vierziger Jahren des 20. Jahrhunderts. Die Gedankenwelt der Informatik lässt sich aber bedeutend weiter zurückverfolgen. Mit diesem Kapitel

Mehr

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt Inhalt 1. Geschichte Folie 1 Lernziele Sie kennen die wichtigsten Punkte in der Geschichte des Computers Sie sind mit einigen Begriffen vertraut Folie 2 Seite 1 Computer als elektronische Rechenmaschine:

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Informatik - Lehrgang 2000/2001 GRUNDLAGEN Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Geschichte der Informatik

Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Elektromechanische Computer

Elektromechanische Computer Elektromechanische Computer Erfinder, ihre Biographien und Maschinen Konrad Zuse George Stibitz Howard Aiken Konrad Zuse: Biographie I Geburt: 22.06.1910 in Berlin 1928 Studium Maschinenbau (TH Berlin-Charl.),

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe

Mehr

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

Was ist ein Computer?

Was ist ein Computer? Grundlagen 1 Lernziel der Vorlesung: Einblicke und Überblicke zu den Mitteln der Informatik Hardware und Software den Methoden der Informatik Analysieren, Entwerfen, Algorithmieren, Programmieren, Testen,

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

1. Digitale Medien. 2. Webtechnologien. 3. Web 2.0, Semantic Web. 4. Wissensmanagement. 1. Methoden des Wissensmanagements 2.

1. Digitale Medien. 2. Webtechnologien. 3. Web 2.0, Semantic Web. 4. Wissensmanagement. 1. Methoden des Wissensmanagements 2. Überblick GRUNDKURS INFORMATIK 1 EINFÜHRUNG 1. Informatik Grundlagen: Informationsdarstellung, Information und Daten, Algorithmen, Problemlösung. 1. Digitale Medien 2. Webtechnologien 3. Web 2.0, Semantic

Mehr

1. Entwicklung der Datenverarbeitung

1. Entwicklung der Datenverarbeitung 1. Entwicklung der Datenverarbeitung 1.1. Vom Abakus zum Pentium Schon im Altertum war man bestrebt, sich Hilfsmittel zu schaffen, die das Zählen und Rechnen erleichterten. Formulierung mechanischer Abläufe

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Vom Abitur zur Informatik (computer science)

Vom Abitur zur Informatik (computer science) Vom Abitur zur Informatik (computer science) André Frimberger, andre@frimberger.de 16.06.2009 André Frimberger Vom Abitur zur Informatik (computer science) 1 1 Einleitung Was ist Informatik? 2 Das Informatikstudium:

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick Infovorkurs, Teil 09.10.2015 Webseite Die neuen Folien, die Übungen und Umfrageergebnisse stehen online; außerdem die Turingmaschinen-Quelltexte. www.geile-hirnbude.de/vorkurs Algorithmen Laufzeitabschätzung

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Wolfgang Ertel WS 004/05 FH Ravensburg-Weingarten Hochschule für Technik und Sozialwesen Inhaltsverzeichnis Einfache Sortieralgorithmen 3. Sortieren durch Einfügen.............................

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten Semester: AI2, WI2 Bearbeitungszeit: 90 Min. Hilfsmittel: kein prog. C SS 2010, 07.07.2010 90% Punkte entspr. Note 1,0 50% Punkte entspr.

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

Mehr

Informatik für Ingenieure

Informatik für Ingenieure Informatik für Ingenieure Eine Einführung Von Prof. Dr. rer. nat. Wolfgang Merzenich Universität-Gesamthochschule Siegen und Prof. Dr.-Ing. Hans Christoph Zeidler Universität der Bundeswehr Hamburg B.

Mehr

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute)

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute) Informatik Mensch Gesellschaft Historische Entwicklung der Informationstechnik (von Anfang bis Heute) Algorithmen-Automat Schritt-für-Schritt-Anleitung zum Lösen mathematischer Probleme kann immer wieder

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Das Studium im Fach Informatik

Das Studium im Fach Informatik [Projekttage Studien- und Berufsorientierung der Jgst. 12] Fachbereich Informatik Fakultät für Mathematik und Informatik FernUniversität Hagen 22. Februar 2007 Was Informatik nicht ist Was ist Informatik?

Mehr

Schulinternes Curriculum im Fach Informatik

Schulinternes Curriculum im Fach Informatik Schulinternes Curriculum im Fach Informatik Unterricht in EF : 1. Geschichte der elektronischen Datenverarbeitung (3 Stunden) 2. Einführung in die Nutzung von Informatiksystemen und in grundlegende Begriffe

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog 10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme

Mehr

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind. Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

Kodierungsalgorithmen

Kodierungsalgorithmen Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

GESCHICHTE DER COMPUTERTECHNIK

GESCHICHTE DER COMPUTERTECHNIK GESCHICHTE DER COMPUTERTECHNIK Rebekka Mönch Projekt ://reisefieber WS 2005/06 Bauhaus-Universität Weimar Ich glaube, dass es auf der Welt einen Bedarf von vielleicht fünf Computern geben wird. Künftige

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Bäume und Wälder. Bäume und Wälder 1 / 37

Bäume und Wälder. Bäume und Wälder 1 / 37 Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine Kreise enthält. Diese Graphen sind Bäume: Diese aber nicht:

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Teil I Definition, Geschichte und Teilgebiete der Informatik Seite 1 Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr