• Keine Ergebnisse gefunden

Inhalte des Moduls Programmieren 1

N/A
N/A
Protected

Academic year: 2021

Aktie "Inhalte des Moduls Programmieren 1"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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

(3)

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)

(4)

Angebot im Masterstudiengang (Wahlpflichtbereich)

• Deduktive Programmierung:

◦ Logik in der Informatik (Prolog)

• Bedeutung von Programmen:

◦ Semantik von Programmiersprachen

• Implementierung von Programmiersprachen:

◦ Compiler I, II

◦ Compilerbaupraktikum

(5)

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.

(6)

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.

(7)

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

(8)

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.

(9)

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.

(10)

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.

(11)

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

(12)

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

(13)

Logik in der Informatik

• In dieser Vorlesung werden verschiedene Logiken und einige Anwendungen in der Informatik behandelt.

• Beispielanwendung: Programmiersprache Prolog

• Master-Studiengang

(14)

Änderung

Einige der auf den vorherigen Seiten erwähnten Module

• sind evtl. von einem anderen Institut oder

• gibt es nicht mehr!

(15)

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

(16)

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

(17)

Mathematik und Informatik: Grundlagen und Grenzen

Grenzen der Mathematik und Informatik

Mathematik Informatik

Axiomatische Mengenlehre Berechenbarkeit/Entscheidbarkeit

Logik

(18)

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

Referenzen

ÄHNLICHE DOKUMENTE

„Es gab intensive Kontakte und Gespräche mit unseren Kooperationspartnern aus anderen Ländern und anderen Organi- sationen, die sich für die DGI und deren Aktivitäten

§6 (5) Die Zahl der nach Absatz 1 Satz 3 verbleibenden Sitze wird so lange erh¨oht, bis jede Partei bei der zweiten Verteilung der Sitze nach Absatz 6 Satz 1 mindestens die bei

§6 (5) Die Zahl der nach Absatz 1 Satz 3 verbleibenden Sitze wird so lange erh¨oht, bis jede Partei bei der zweiten Verteilung der Sitze nach Absatz 6 Satz 1 mindestens die bei

– Typeset by Foil – 23.. Bemerkung zu Reg. aber keine Gruppe, weil man im Allgemeinen nicht dividieren kann. ) ist Halbring.. Beispiel

Dynamisch getypte Sprachen Daten sind typisiert, Namen sind nicht typisiert. LISP, Clojure, PHP, Python,

(C: wird sowieso nicht gepr¨uft, Java: nein, Perl: ja) in Java: wenn man das will, dann will man statt Array eine LinkedList, statt String einen StringBuffer. wenn man mit

• release: falls Queue leer, dann Z¨ahler erh¨ohen, falls Queue nicht leer, dann eine Task aus Queue entfernen und aktivieren.

In diesem Zu- sammenhang gibt es eine interessante Homepage SL08 , die sich mit allge- meinen Leitlinien zum Thema MS im Kindesalter befasst!. Hinter SL09 verbirgt sich