Informatikgrundlagen (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de)
0. Organisatorisches
Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde nach Vereinbarung per E-Mail Wolfgang Braun (wolfgang.braun@htwsaar.de) Sprechstunde nach Vereinbarung per E-Mail Informatikgrundlagen / Kapitel 0: Organisatorisches 4
Vorlesung Vorlesungstermine Dienstag, 10:00 11:30 (2. Stunde), Raum 4302 (entfällt, wenn Übung stattfindet) Donnerstag, 10:00 11:30 (2. Stunde), Raum 8202 Informatikgrundlagen / Kapitel 0: Organisatorisches 5
Übung Übung ca. alle zwei Wochen; zwei Übungstermine Dienstag, 10:00 11:30 (2. Stunde), Raum 4302 Mittwoch, 14:15 15:45 (4. Stunde), Raum 7106 Bitte entscheiden Sie Sich für einen der beiden Termine und tragen Sie Sich in die ausgegebenen Listen ein Übungsblatt 1 (Ausgabe am Donnerstag) wird in den Übungen übernächste Woche am 3.11 / 4.11 besprochen Informatikgrundlagen / Kapitel 0: Organisatorisches 6
Prüfung Schriftliche Klausur am Ende des Semesters Keine Hilfsmittel (z.b. Taschenrechner) außer drei von Hand beschriebenen DIN-A4 Blätter Termin wird rechtzeitig in der Vorlesung bekannt gegeben Informatikgrundlagen / Kapitel 0: Organisatorisches 7
Webseite Webseite zur Vorlesung: Ankündigungen Folien und Übungsblätter zum Download Sonstige Ressourcen (z.b. Software und Daten) nur aus dem Netz der HTW oder per VPN zu erreichen http://www1.htwsaar.de/~berberich/teaching/ws15/ig/ Informatikgrundlagen / Kapitel 0: Organisatorisches 8
Literatur zur Vorlesung T.-H. Cormen, C. E. Leiserson, R. Rivest, C. Stein: Algorithmen Eine Einführung, Oldenbourg Verlag, 2013 T.-H. Cormen, C. E. Leiserson, R. Rivest, C. Stein: Introduction to Algorithms, MIT Press, 2009 Informatikgrundlagen / Kapitel 0: Organisatorisches 9
Literatur zur Vorlesung H.-P. Gumm und M. Sommer: Einführung in die Informatik, Oldenbourg Verlag, 2012 R. Sedgewick und K. Wayne: Algorithmen und Datenstrukturen, Pearson, 2014 Informatikgrundlagen / Kapitel 0: Organisatorisches 10
Tipps zu Vorlesung und Übung Folien nur heute, danach Inhalte auf der Tafel Schreiben Sie mit und machen Sie zusätzliche Notizen Wenn Sie etwas während der Vorlesung nicht verstehen schauen Sie es sich zu Hause noch einmal in Ruhe an fragen Sie in der nächsten Vorlesung nach Machen Sie die Übungen vorm jeweiligen Übungstermin und lassen Sie Sich nicht entmutigen, wenn eine Aufgabe partout nicht gelingen will Informatikgrundlagen / Kapitel 0: Organisatorisches 11
Inhalt 1. Einführung 2. Mathematische Grundlagen 3. Random Access Machine als Rechnermodell 4. Algorithmen 5. Datenstrukturen 6. Berechenbarkeit Informatikgrundlagen / Kapitel 0: Organisatorisches 12
1. Einführung
Zwei Ideen in der Informatik Komposition: Elementare Bausteine werden zusammengesetzt, um komplexe Aufgaben zu lösen oder komplexe Daten darzustellen Abstraktion: Gemeinsamkeiten werden identifiziert und berücksichtigt, konkrete Details aber außer Acht gelassen Informatikgrundlagen / Kapitel 1: Einführung 14
Daten Intern kennen Rechner nur die beiden Zahlen 0 und 1 entsprechen den Zuständen Strom aus und Strom an Wie kann aus 0 und 1 beliebige Daten zusammensetzen? ganze Zahlen (1967) negative Zahlen (-66117) Kommazahlen (3.1415) Zeichen und Zeichenketten (htw saar) Kapitel 2: Mathematische Grundlagen Informatikgrundlagen / Kapitel 1: Einführung 15
Rechner Welchen konkreten Rechner wir verwenden (z.b. C64, iphone) ist in der Informatik meist egal Stattdessen arbeitet man mit einem Rechnermodell, welches Gemeinsamkeiten beibehält, aber von Details abstrahiert Akku a IP i1 P[0] P[1]... S[0] S[1] S[2] i2 P[N]... Kapitel 3: Random Access Machine als Rechnermodell Informatikgrundlagen / Kapitel 1: Einführung 16
Pseudo-Code Rechnermodell kennt nur wenige Befehle; man kann damit zwar alles berechnen, aber es ist etwas beschwerlich 1 a <- s[0] 2 a <- a + s[1] 3 s[2] <- a 4 HALT Pseudo-Code ist an höhere Programmiersprachen (z.b. C oder Java) angelehnt 1 int i = 1 2 while a < b do 3 i = i * 2 4 a++ 5 od 6 return i Verfahren zur Lösung einer bestimmten Aufgabe (Algorithmen) einfacher in Pseudo-Code zu beschreiben Informatikgrundlagen / Kapitel 1: Einführung 17
Algorithmen Verfahren zur Lösung einer bestimmten Aufgabe z.b. Sortiere eine Folge von Zahlen Suche die Zahl x in einer Folge von Zahlen Komplexere Aufgaben oft durch Komposition elementarer Algorithmen lösbar, z.b. Finde die größte negative Zahl in einer Folge von Zahlen Kapitel 4: Algorithmen Informatikgrundlagen / Kapitel 1: Einführung 18
Datenstrukturen Aufgaben lassen sich häufig einfacher erledigen, wenn man Ordnung auf den Daten hält z.b. Suche Donald Knuth im Telefonbuch Suche Abstraktion im Lexikon Bediene nächsten Kunden Datenstrukturen als zweite Art von Baustein zur Lösung komplexer Aufgaben Kapitel 5: Datenstrukturen Informatikgrundlagen / Kapitel 1: Einführung 19
Berechenbarkeit Können wir jede Aufgabe mit einem Rechner lösen? Leider: Nein! Können wir jede lösbare Aufgabe in akzeptabler Zeit lösen? Hält es an? 1 int i = 1 2 while a < b do 3 i = i * 2 4 a++ 5. 6. 7. Leider: Nein! Häufig: Näherungsweise Lösung Kapitel 6: Berechenbarkeit Wähle Fotos aus, so dass gesamtes Team enthalten ist Informatikgrundlagen / Kapitel 1: Einführung 20
Zusammenfassung Komposition und Abstraktion als Ideen in der Informatik Daten (z.b. Zahlen und Zeichen) lassen sich aus 0 und 1 als elementaren Bausteinen zusammensetzen Rechnermodell abstrahiert von Details des verwendeten Rechners Algorithmen und Datenstrukturen als Bausteine, aus denen sich Lösungen zu komplexen Problemen zusammensetzen lassen Informatikgrundlagen / Kapitel 1: Einführung 21
Literatur [1] H.-P. Gumm und M. Sommer: Einführung in die Informatik, Oldenbourg Verlag, 2012 (Kapitel 1) Informatikgrundlagen / Kapitel 1: Einführung 22