Programmieren I + II Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2012/2013 Sommersemester 2013
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 (ab 1. Semester) Wahlpflichtbereich Informatik (ab 2./3. Semester) Pflichtbereich Mathematik (ab 1. Semester) Wahlpflichtbereich Mathematik (ab 2. Semester) Nebenfach (ab 3. Semester) Schlüsselqualifikationen (ab 1. Semester) Seminar, Teamprojekt, Bachelorarbeit Vorbemerkungen V-3
Bereich 1. Semester (WS) 6LP 6LP 15 LP 5LP 8LP 5LP 6LP 5LP 5LP 5LP 5LP 5LP 5LP 5LP 4LP 10 LP 10 LP 5LP 5LP 5LP 31 Pflichtmodule Wahlpflichtmodule Wahlpflicht Modul Informatik: Wahlpflicht Modul Informatik: Wahlpflicht Modul Nebenfach Modul Wahlpflicht Modul Nebenfach Modul 5 LP Nebenfach Modul 5 LP Wissenschaftliches 30 30 5 LP 2 LP Mathematik: Wahlpflicht Modul "Schwerpunkte im Informatikstudium" Ringvorlesung Elektrotechnische Grund Informatik lagen der Technischen Informatik: Wahlpflicht Modul Seminar 5 LP Teamprojekt 5 LP Computernetze 1 Software Engineering 12 LP Betriebssysteme Informatik: Kompetenz bereich Mathematik [35 LP] Lineare Algebra Analysis Nebenfach [14 19 LP] Mathematik: Orientierungstage Programmieren 1 Algorithmen und Datenstrukturen Diskrete Mathematik Schlüsselqualifikationen Arbeiten 29 180 LP Schlüssel qualifikationen [10 LP] Schlüsselqualifikationen 4 LP 4 LP 29 Musterstudienplan Bachelorstudium Informatik (Beginn: Wintersemester) 2. Semester (SS) Kompetenz bereich Informatik [116 121 LP] Masterarbeit Programmieren 2 Einführung in die Logik Theoretische Informatik 1 Bachelorarbeit 5. Semester (WS) 6. Semester (SS) 3. Semester (WS) 4. Semester (SS) Wahlmodule 31 Relationale Datenbanksysteme 1 Theoretische Informatik 2 Technische Informatik 1 + 2 8 LP Vorbemerkungen V-4
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-5
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, Wahlpflichtveranstaltung) 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
Programmieren I Einführung: Vom Algorithmus zum Programm, Lexik, Syntax, Semantik 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: Methoden zur Ein- und Ausgabe Ergänzungen und Fallstudien Ausnahmebehandlung, Verifikation, Test Vorbemerkungen V-8
Programmieren II 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 Das Buch als Betriebssystem ist noch lange nicht am Ende. (Hans Magnus Enzensberger: Album. Suhrkamp, 2010) Vorbemerkungen V-11
Allgemeine Literatur Ausführliche Empfehlungen finden Sie in der kommentierten Literaturliste. 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. 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. Vorbemerkungen V-12
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-13
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. Werner Struckmann, Dietmar Wätjen: Mathematik für Informatiker. 2007, Spektrum Akademischer Verlag, Heidelberg. Vorbemerkungen V-14
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-15
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-16