Programmieren I + II Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2015/2016 Sommersemester 2016
Was ist Informatik? Die Informatik ist die Wissenschaft von Aufbau, Darstellung, Speicherung, Übertragung und Verarbeitung von Informationen. Dementsprechend befasst sich die Informatik mit allen Aspekten der Informationsverarbeitung. Die Informatik ist sowohl eine Grundlagenwissenschaft wie die Mathematik als auch eine Ingenieurwissenschaft. Die Informatik berührt in mehr oder weniger starkem Maße viele Gebiete in Industrie, Handel, Verwaltung und Wissenschaft. Die Berufschancen für Informatiker und Informatikerinnen sind vielseitig und günstig. Vorbemerkungen V-1
Was ist Informatik? Im Englischen heißt Informatik Computer Science. Dieser Name besagt schon, dass Computer im Mittelpunkt stehen. Informatik ist aber wie Sie im Laufe Ihres Studiums sehen werden viel mehr. Vorbemerkungen V-2
Aufbau des Bachelorstudiengangs Informatik Pflichtbereich Informatik Wahlpflichtbereich Informatik Pflichtbereich Mathematik Wahlpflichtbereich Mathematik Nebenfach Schlüsselqualifikationen Seminar, Teamprojekt Bachelorarbeit Vorbemerkungen V-3
Anmerkungen zu den Studiengängen Die Studiengänge unterscheiden sich im Detail. Beispiel: Teamprojekt: Informatik: unbenotete Studienleistung Wirtschaftsinformatik: zusammen mit Seminar das Modul Projektarbeit, Prüfung, benotet Bei Fragen zu Ihrem Studiengang können Sie sich an Ihr Prüfungsamt, an Ihren Studiengangskoordinator bzw. Ihre Studiengangskoordinatorin oder an Ihre Studienberatung wenden. Vorbemerkungen V-4
Programmierausbildung im Bachelorstudiengang Imperative und objektorientierte Programmierung: Programmieren I Programmieren II (Java, 1. Sem.) (Java, 2. Sem.) Softwaretechnik: Softwaretechnik I (UML, 3. Sem.) Softwareentwicklungspraktikum (Java oder andere Sprache, UML, 4. Sem.) Funktionale Programmierung, weiterführende Konzepte: Programmieren f. Fortgeschrittene (Haskell, Wahlpflichtbereich) Vorbemerkungen V-5
Angebot im Masterstudiengang (Wahlpflichtbereich) Deduktive Programmierung: Logik in der Informatik (Prolog) Bedeutung von Programmen: Semantik von Programmiersprachen Implementierung von Programmiersprachen: Compiler I, II Compilerbaupraktikum Vorbemerkungen V-6
Programmieren I + II Programmieren I: 6 LP, 2+2 (+ Rechnerübungen), im Wintersemester Inhalt: Grundzüge der imperativen und objektorientierten Programmierung, Java Programmieren II: 6 LP, 2+2 (+ Rechnerübungen), im Sommersemester Inhalt: Vertiefung der objektorientierten Programmierung, Programmierung von Datenstrukturen, Parallelprogrammierung, Grafikprogrammierung, Ausblick Prüfungsvorleistung/Studienleistung (je nach Studiengang): Hausaufgaben Prüfung: Klausur Vorbemerkungen V-7
Inhalte der Module Einführung: Algorithmus und Programm, Programmiersprache Erste Schritte in Java Grundlagen der Sprache: Datentypen, Ausdrücke und Anweisungen, imperative Programmierung Objektorientierte Programmierung: Klassen, Objekte, Attribute, Methoden, Vererbung, Schnittstellen, statische Attribute und Methoden, Variablentypen, Polymorphismus, Beziehungen zwischen Klassen/Objekten Rekursive Methoden, ein Blick auf funktionale Programmierung Zuverlässigkeit von Programmen: Ausnahmebehandlung, Verifikation, Test Methoden zur Ein- und Ausgabe Ergänzungen und Fallstudien Vorbemerkungen V-8
Inhalte der Module Weitere Sprachkonzepte von Java: lokale, anonyme Klassen, Wrapper-Klassen, spezielle String-Klassen, Aufzählungstypen, Packages, Annotationen Java und Datenstrukturen: generische Datentypen, Listen, Keller, Schlangen, Bäume, Graphen, Suchen u. Sortieren, Hash-Verfahren, Java Collections Framework (JCF) Parallelprogrammierung in Java, das Concurrent-Paket Grafikprogrammierung, Java Foundation Classes (JFC), AWT- und Swing-Klassen Ausblick: Entwurfsmuster, Paradigmen und Sprachen, Software Engineering Ergänzungen und Fallstudien Vorbemerkungen V-9
Algorithmen und Datenstrukturen Die Gegenstände der Veranstaltung Algorithmen und Datenstrukturen, die in dieser Vorlesung benötigt werden, werden soweit erforderlich wiederholt/zusammengefasst. Vorbemerkungen V-10
Lesen und Schreiben Das Buch als Betriebssystem ist noch lange nicht am Ende. (Hans Magnus Enzensberger: Album. Suhrkamp, 2010) Wer Inhalte handschriftlich notiert, verankert sie dadurch tiefer und fester, als wer sie nur mittels einer Tastatur eingibt. (Manfred Spitzer: Digitale Demenz. Artikel, 2013) Vorbemerkungen V-11
Allgemeine Literatur zur Informatik Ausführliche Empfehlungen finden Sie in der kommentierten Literaturliste, die wir in einer der nächsten Übungen besprechen werden. Heinz-Peter Gumm, Manfred Sommer: Einführung in die Informatik. 10., vollständig überarbeitete Auflage, 2013, Oldenbourg Verlag, München. Peter Rechenberg, Gustav Pomberger: Informatik-Handbuch. 4., aktualisierte und erweiterte Auflage, 2006, Hanser Verlag, München, Wien. Meyers Lexikonredaktion: Duden Informatik. 4. Auflage, 2006, Dudenverlag, Mannheim. Vorbemerkungen V-12
Literatur zu Algorithmen David Harel, Yishai Feldman: Algorithmik Die Kunst des Rechnens. 2009, Springer-Verlag, Berlin Heidelberg. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Algorithmen Eine Einführung. 3. überarbeitete und erweiterte Auflage, 2010, Oldenbourg Verlag, München. Martin Dietzfelbinger, Kurt Mehlhorn, Peter Sanders: Algorithmen und Datenstrukturen. 2014, Springer Vieweg, Berlin Heidelberg. In jeder Vorlesung gibt es eigene Hinweise auf die Literatur zur Veranstaltung! Vorbemerkungen V-13
Literatur zu Java Reinhard Schiedermeier: Programmieren mit Java. 2. aktualisierte Auflage, 2010, Pearson Studium, München. Robert Sedgewick, Kevin Wayne: Einführung in die Programmierung mit Java. 1. Auflage, 2011, Pearson, München. Dietmar Ratz [u. a.]: Grundkurs Programmieren in Java. 6. aktualisierte und erweiterte Auflage, 2011, Carl Hanser Verlag, München Wien. Beachten Sie, dass es verschiedene Java-Versionen gibt. Vorbemerkungen V-14
Literatur zur Veranstaltung Programmieren und Software Engineering Begleitmaterial für die gleichnamigen Veranstaltungen an der Technischen Universität Braunschweig. Zusammengestellt von Ina Schaefer und Werner Struckmann, Pearson Custom Publishing, 2012, München, Harlow. Dieses Buch ist nur in einer Braunschweiger Buchhandlung erhältlich. Werner Struckmann, Dietmar Wätjen: Mathematik für Informatiker. 2007, Spektrum Akademischer Verlag, Heidelberg. Vorbemerkungen V-15
Literatur vom RRZN Regionales Rechenzentrum für Niedersachsen, Leibniz Universität Hannover. Java, 1. und 2. Band Grundlagen der Programmierung Unix Eine Einführung in die Benutzung Linux Nutzung mit der grafischen Oberfläche KDE Diese Bücher sind im Gauß-IT-Zentrum der TU erhältlich. Vorbemerkungen V-16
Zum Inhalt der Folien Die Folien beinhalten nicht die gesamte Vorlesung. Schreiben Sie nicht das auf, was auf den Folien steht, sondern das, was dazu gesagt oder angeschrieben wird. Vorbemerkungen V-17