Programmieren I + II
Werner Struckmann
Institut für Programmierung und Reaktive Systeme
Wintersemester 2017/2018 Sommersemester 2018
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.
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.
Aufbau des Bachelorstudiengangs Informatik
• Pflichtbereich Informatik
• Wahlpflichtbereich Informatik
• Pflichtbereich Mathematik
• Wahlpflichtbereich Mathematik
• Nebenfach
• Schlüsselqualifikationen
• Seminar, Teamprojekt
• Bachelorarbeit
Anmerkungen zu den Studiengängen
Die Studiengänge unterscheiden sich. 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.
Programmierausbildung im Bachelorstudiengang
• Imperative und objektorientierte Programmierung, etwas funktionale Programmierung:
◦ Programmieren I (Java, 1. Sem.)
◦ Programmieren II (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)
Angebot im Masterstudiengang (Wahlpflichtbereich)
• Deduktive Programmierung:
◦ Logik in der Informatik (Prolog)
• Bedeutung von Programmen:
◦ Semantik von Programmiersprachen
• Implementierung von Programmiersprachen:
◦ Compiler I, II
◦ Compilerbaupraktikum
Programmieren I + II
Programmieren I: 6 LP, 2+2 (+ Rechnerübungen), im Sommer- und im Wintersemester
Inhalt: Grundzüge der imperativen und objektorientierten Programmierung, etwas funktionale Programmierung, Java
Programmieren II: 6 LP, 2+2 (+ Rechnerübungen), im Sommer - und im Wintersemester
Inhalt: Vertiefung der objektorientierten Programmierung, Programmierung von komplexen/dynamischen Datenstrukturen, Parallelprogrammierung,
Beispiel für eine Anwendung: Grafikprogrammierung, Ausblick.
Studienleistung: Hausaufgaben Prüfung: Klausur
Inhalte des Moduls Programmieren 1
• 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
Inhalte des Moduls Programmieren 2
• 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)
• Grafikprogrammierung, Java Foundation Classes (JFC), AWT- und Swing-Klassen
• Parallelprogrammierung in Java, das Concurrent-Paket
• Ausblick: Entwurfsmuster, Paradigmen und Sprachen, Software Engineering
• Ergänzungen und Fallstudien
Algorithmen und Datenstrukturen
Die Gegenstände der Veranstaltung
Algorithmen und Datenstrukturen,
die in dieser Vorlesung benötigt werden, werden – soweit erforderlich – wiederholt/zusammengefasst.
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)
Allgemeine Literatur zur Informatik
Ausführliche Empfehlungen finden Sie in der kommentierten Literaturliste, die wir demnächst 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.
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!
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.
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.
2016, neue Auflage, Spektrum Akademischer Verlag, Heidelberg.
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.
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.