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 Schlussbemerkungen S-1
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 Schlussbemerkungen S-2
Programmierausbildung im Bachelorstudiengang Imperative und objektorientierte Programmierung, etwas funktionale 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) Schlussbemerkungen S-3
Angebot im Masterstudiengang (Wahlpflichtbereich) Deduktive Programmierung: Logik in der Informatik (Prolog) Bedeutung von Programmen: Semantik von Programmiersprachen Implementierung von Programmiersprachen: Compiler I, II Compilerbaupraktikum Schlussbemerkungen S-4
Softwaretechnik I In der Vorlesung Softwaretechnik I lernen Sie die Grundlagen des Software-Entwicklungsprozesses kennen. Voraussetzung ist die solide Beherrschung einer Programmiersprache. Software-Lebenszyklus Software-Qualitätsmerkmale Prozessmodelle Spezifikations- und Entwurfsverfahren Implementierung, Validierung, Test Werkzeuge Die Vorlesung Softwaretechnik I findet jeweils im Wintersemester statt. Schlussbemerkungen S-5
Software-Entwicklungspraktikum Ziel des Praktikums ist die Entwicklung eines Software-Systems unter Durchspielen des vollständigen Prozessmodells. Die Teilnehmer bilden Teams zu ca. fünf Studenten. Jeder ist während einer Phase für die Arbeit des gesamten Teams verantwortlich. Pflichtenheft Entwurf Spezifikation Implementierung Validierung Das Software-Entwicklungspraktikum findet jeweils im Sommersemester statt. Sinnvoll ist es, Kenntnisse der Vorlesungen Softwaretechnik I, Programmieren I und Programmieren II zu besitzen. Schlussbemerkungen S-6
Programmieren für Fortgeschrittene In dieser Vorlesung werden grundlegende Konzepte der Programmiersprachen aus einer übergeordneten Sichtweise betrachtet. Der Fokus liegt nicht auf einer Programmiersprache oder einem Programmierparadigma. In den Übungen besteht die Möglichkeit, eine weitere Programmiersprache zu erlernen (Haskell). Bachelor-Studiengang Schlussbemerkungen S-7
Das softwaretechnische Industriepraktikum Informatik Bachelor: Master: Teamprojekt, Studienleistung, unbenotet, 5 LP. Praktikum, Studienleistung, unbenotet, 5 LP. Im Anschluss möglich: Bachelor-, Projekt-, Masterarbeit. Wirtschaftsinformatik Die Punktezahlen hängen vom Studiengang und der Prüfungsordnung ab. Bachelor: Teamprojekt, Prüfungsleistung, benotet, 6 LP. (im Rahmen der Projektarbeit) Diplom: Praktikum, 4 SWS. Im Anschluss möglich: Bachelor-, Master-, Studien-, Diplomarbeit. Schlussbemerkungen S-8
Zielsetzung des Praktikums Die Lerninhalte des softwaretechnischen Industriepraktikums stellen eine praxisbezogene Ergänzung der Programmierausbildung des Studiums an der TU dar. Die zu schreibenden Programme werden unter realen Bedingungen angefertigt und später in der Firma eingesetzt. Schlussbemerkungen S-9
Ablauf des Praktikums Das Praktikum findet von Oktober bis Februar mit ca. 10 Teilnehmern statt. Die Teilnehmer(innen) sind zwei Tage pro Woche in Salzgitter anwesend. In den ersten Wochen finden Schulungen statt. Danach bearbeiten die Teilnehmer(innen) Aufgaben in kleinen Gruppen. Es wird eine Besichtigung der Stahlwerke angeboten. Am Ende finden ein Abschlussvortrag und eine Abschlussfeier statt. Schlussbemerkungen S-10
Compiler In diesem Themengebiet werden grundlegende Konzepte der Implementierung von Programmiersprachen vorgestellt. Es werden die folgenden Module angeboten: Compiler I, Compiler II, Compilerpraktikum. Master-Studiengang Schlussbemerkungen S-11
Semantik von Programmiersprachen In dieser Vorlesung werden die wichtigsten Konzepte zur Definition von Programmiersprachen vorgestellt. Behandelt werden die operationelle, die denotationale und die axiomatische Methode. Master-Studiengang Schlussbemerkungen S-12
Logik in der Informatik In dieser Vorlesung werden verschiedene Logiken und einige Anwendungen in der Informatik behandelt. Beispielanwendung: Programmiersprache Prolog Master-Studiengang Schlussbemerkungen S-13
Womit haben wir im ersten Semester begonnen? Vom Algorithmus zum Programm Was ist ein Algorithmus? Was ist ein Programm? Wie wird ein Algorithmus aufgeschrieben? Mit welchem Aufwand löst der Algorithmus das Problem? Löst der Algorithmus das Problem? Gibt es einen Algorithmus für das Problem? Software Engineering Vom kleinen zum großen Programm Weitere Aspekte Schlussbemerkungen S-14
Algorithmen und Programme Paradigmen Komplexität Entwurf von Algorithmen Formale Algorithmusdefinition, Berechenbarkeit Korrektheit Abstrakte Datentypen Varianten des Algorithmusbegriffs Intuitive Algorithmen: Konkrete Algorithmen und Datenstrukturen Programme Programmiersprachen Lexik Syntax Semantik Schlussbemerkungen S-15
Mathematik und Informatik: Grundlagen und Grenzen Grenzen der Mathematik und Informatik Mathematik Informatik Axiomatische Mengenlehre Berechenbarkeit/Entscheidbarkeit Logik Schlussbemerkungen S-16
Studium: Bildung statt nur Ausbildung Heraklit (ca. 540 480 v. Chr.): Bildung heißt ein Feuer entfachen und nicht einen leeren Eimer füllen. Das eigentlich Beständige ist der Wechsel. Alles fließt. Was meint Heraklit? Selbstständigkeit: weitere Beispiele, Literatur beschaffen und lesen,... Lebenslanges Lernen: gerade in einem Fach wie die Informatik unverzichtbar Schlussbemerkungen S-17