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
•
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
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
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.
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.
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
Das softwaretechnische Industriepraktikum
Informatik
• Bachelor: Teamprojekt, Studienleistung, unbenotet, 5 LP.
• Master: Praktikum, Studienleistung, unbenotet, 5 LP.
Im Anschluss möglich: Bachelor-, Projekt-, Masterarbeit.
Die Punktezahlen hängen vom Studiengang und der Prüfungsordnung ab.
Wirtschaftsinformatik
• Bachelor: Teamprojekt, Prüfungsleistung, benotet, 6 LP. (im Rahmen der Projektarbeit)
• Diplom: Praktikum, 4 SWS.
Im Anschluss möglich: Bachelor-, Master-, Studien-, Diplomarbeit.
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.
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.
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
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
Logik in der Informatik
• In dieser Vorlesung werden verschiedene Logiken und einige Anwendungen in der Informatik behandelt.
• Beispielanwendung: Programmiersprache Prolog
• Master-Studiengang
Änderung
Einige der auf den vorherigen Seiten erwähnten Module
• sind evtl. von einem anderen Institut oder
• gibt es nicht mehr!
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
Algorithmen und Programme
Formale Algorithmusdefinition, Berechenbarkeit Paradigmen
Korrektheit
Komplexität
Abstrakte Datentypen
Entwurf von Algorithmen
Varianten des Algorithmusbegriffs
Intuitive Algorithmen: Konkrete Algorithmen und Datenstrukturen
Programme
Programmiersprachen
Lexik Syntax Semantik
Mathematik und Informatik: Grundlagen und Grenzen
Grenzen der Mathematik und Informatik
Mathematik Informatik
Axiomatische Mengenlehre Berechenbarkeit/Entscheidbarkeit
Logik