Programmieren II

Werbung
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: Ausnahmebehandlung, Verifikation, Test
• Methoden zur Ein- und Ausgabe
• Ergänzungen und Fallstudien
Schlussbemerkungen
S-1
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
Schlussbemerkungen
S-2
Programmierausbildung im Bachelorstudiengang
• Imperative und objektorientierte 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, Wahlpflichtveranstaltung)
Schlussbemerkungen
S-3
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-4
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-5
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-6
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.
• Diplom: Praktikum, 4 SWS.
(im Rahmen der Projektarbeit)
Im Anschluss möglich: Bachelor-, Master-, Studien-, Diplomarbeit.
Schlussbemerkungen
S-7
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-8
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-9
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-10
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-11
Logik in der Informatik
• In dieser Vorlesung werden verschiedene Logiken und einige Anwendungen in der
Informatik behandelt.
• Beispielanwendung: Programmiersprache Prolog
• Master-Studiengang
Schlussbemerkungen
S-12
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-13
Algorithmen und Programme
Paradigmen
Formale Algorithmusdefinition, Berechenbarkeit
Komplexität
Korrektheit
Entwurf von Algorithmen
Abstrakte Datentypen
Varianten des Algorithmusbegriffs
Intuitive Algorithmen: Konkrete Algorithmen und Datenstrukturen
Programme
Programmiersprachen
Lexik
Schlussbemerkungen
Syntax
Semantik
S-14
Mathematik und Informatik: Grundlagen und Grenzen
Grenzen der Mathematik und Informatik
Mathematik
Informatik
Axiomatische Mengenlehre
Berechenbarkeit/Entscheidbarkeit
Logik
Schlussbemerkungen
S-15
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-16
Herunterladen