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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Suchen in Listen und Hashtabellen

Suchen in Listen und Hashtabellen Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren

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

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

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

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

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

Programmieren. Kapitel 2: Der Traum vom automatischen Rechnen ein Streifzug durch die Computergeschichte. Wintersemester 2008/2009

Programmieren. Kapitel 2: Der Traum vom automatischen Rechnen ein Streifzug durch die Computergeschichte. Wintersemester 2008/2009 Institut für Telematik Universität zu Lübeck Programmieren Kapitel 2: Der Traum vom automatischen Rechnen ein Streifzug durch die Computergeschichte Wintersemester 2008/2009 Prof. Dr. Christian Werner

Mehr

Fragenausarbeitung Einführung in das Studium der Informatik

Fragenausarbeitung Einführung in das Studium der Informatik Fragenausarbeitung Einführung in das Studium der Informatik Lehrveranstaltung von Prof. Bischof Horst Lukas Prokop 10.11.21 1 Die Universität 1.1 Mit welchen Personen an der TU Graz haben Sie zu tun? ˆ

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

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

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

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

Ü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

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

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

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2011 3. April 2011 Sprachen als Kommunikationsmittel Natürliche Sprachen dienen zur mündlichen und schriftlichen Kommunikation zwischen Menschen Künstliche

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

Angewandte Informatik

Angewandte Informatik Angewandte Informatik Teil 2.1 Was ist Hardware? Die Zentraleinheit! 1 von 24 Inhaltsverzeichnis 3... Was ist Hardware? 4... Teile des Computers 5... Zentraleinheit 6... Die Zentraleinheit 7... Netzteil

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

Informatik Historie, Übersicht, Teilgebiete

Informatik Historie, Übersicht, Teilgebiete Informatik Historie, Übersicht, Teilgebiete Seite 1 Informatik als akademische Disziplin Informatik = Information + Automation (Karl Steinbuch) Informatique in Frankreich,... Computer Science in angels.

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

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

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013

Ein Streifzug durch die Programmiersprachenlandschaft in der Schule. Gerald Futschek TU Wien Informatiktag 2013 Ein Streifzug durch die Programmiersprachenlandschaft in der Schule Gerald Futschek TU Wien Informatiktag 2013 Urwald der Programmiersprachen COBOL Visual Basic Modula-2 Logo Pascal SQL APL BASIC LISP

Mehr

ODER I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN. Marcel Götze

ODER I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN. Marcel Götze GRUNDKURS INFORMATIK ODER WIE DENKEN INFORMATIKER? I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN Marcel Götze Überblick 1. Organisatorisches 2. Themen und Ziele der Vorlesung 3. Übungen 4. Wb Web 5. Literatur

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

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

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

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

IT-Sicherheit Kapitel 3 Public Key Kryptographie

IT-Sicherheit Kapitel 3 Public Key Kryptographie IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Kodierungsalgorithmen

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

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Programmierung mobiler Kleingeräte

Programmierung mobiler Kleingeräte Programmierung mobiler Kleingeräte Computergeschichte und Ubiquitous Computing Wolfgang Auer, Patrick Ritschel Automation Urzeit Wildfallen Griechisches Altertum Tempeltor des Heron Automatentheater Arabische

Mehr

1. Geschichte des Computers

1. Geschichte des Computers 1. Geschichte des Computers Als erster Computer galt "Abakus", der vor rund 5 000 Jahren von den Chinesen erfunden wurde. Blaise Pascal (1623-1662): erfand 1643 einen Apparat, mit dem man einfache Additionen

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

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

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

Technische Informatik. Der VON NEUMANN Computer

Technische Informatik. Der VON NEUMANN Computer Technische Informatik Der VON NEUMANN Computer Inhalt! Prinzipieller Aufbau! Schaltkreise! Schaltnetze und Schaltwerke! Rechenwerk! Arbeitsspeicher! Steuerwerk - Programmausführung! Periphere Geräte! Abstraktionsstufen

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2014

Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2014 Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2014 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Zur Person: Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik/Mathematik

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

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 1 Vom Abakus bis zum Personal Computer... 1-2 1.1 Einleitung... 1-2 1.2 Geschichte der Informatik... 1-3 1.2.1 Rechenhilfsmittel... 1-3 1.2.2 Mechanische Rechenmaschinen... 1-3 1.2.3 0. Generation

Mehr

Die Erfindung der ersten Computer und Vergleich der Intentionen der Erfinder

Die Erfindung der ersten Computer und Vergleich der Intentionen der Erfinder Die Erfindung der ersten Computer und Vergleich der Intentionen der Erfinder Konrad Zuse John Atanasoff John Mauchly Inwiefern ist Konrad Zuse der Erfinder des Computers? von Ivo Adrian Knabe 20. März

Mehr

3. Ziel der Vorlesung

3. Ziel der Vorlesung 3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

2 Informationstheorie

2 Informationstheorie 2 Informationstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundbegriffe Informatik (IT: Information

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

Codes und Informationsgehalt

Codes und Informationsgehalt Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Grundlagen der Computertechnik

Grundlagen der Computertechnik Grundlagen der Computertechnik Aufbau von Computersystemen und Grundlagen des Rechnens Walter Haas PROLOG WS23 Automation Systems Group E83- Institute of Computer Aided Automation Vienna University of

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr