INF1004 Programmieren 2
- Prof. Dr. Dominikus Herzberg
- Prof. Dr. Dominikus Herzberg
- Nadja Krümmel
- Bioinformatik (B.Sc. 2022)
- Informatik (B.Sc. 2022)
- Ingenieur-Informatik (B.Sc. 2022)
Die Studierenden beherrschen grundlegende Konzepte einer modernen Programmiersprache, die sowohl prozedurale, objektorientierte als auch funktionale Sprachkonstrukte umfasst. Sie sind dazu befähigt, ein umfangreicheres Programmiervorhaben im Rahmen des Integrationsprojekts umzusetzen.
- Fortgeschrittene objektorientierte Konzepte: Pakete/Module, Generizität von Klassen/Methoden, Annotationen, generische Datentyp-Bibliotheken, Bibliotheken zur Ein-/Ausgabe, zum Daten-/Verzeichniszugriff und zum Netzzugriff
- Grundlegende funktionale Konzepte, wie u.a. Funktionen, Closures, Lambda-Ausdrücke, Immutabilität und referentielle Transparenz, Higher-Order-Functions, Streams, abstrakte Datentypen
- Fortgeschrittene Laufzeitkonzepte, Introspektion und Reflection, Threads, Nebenläufigkeit und Parallelität, Ereignissteuerung, Probleme interaktiver Anwendungen
- Fortgeschrittene Programmiertätigkeiten, wie u.a. Programmanalyse, Daten- und Programm-Modellierung, Qualitätssicherung, Dokumentation, Nutzung von Entwicklerdokumentation z.B. API-Dokumentation und Sprachstandards
- Fortgeschrittener Technikeinsatz, wie u.a. Entwicklungswerkzeuge inkl. Debugger, Build-Werkzeug etc., Programmiertechniken (wie z.B. Design by Contract, datenflussorientierte Programmierung, Programmiermuster) und Nutzung von Rahmenwerken (wie z.B. zum Testing, zur Server-Programmierung).
- Web-Basiswissen: wie u.a. Client/Server-Architektur, Frontend/Backend, HTTP, Sockets, HTML, CSS, basale JavaScript-Kenntnisse, Interaktionselemente, Web-Framework
Fachkompetenzen
- Die Studierenden können neben erweiterten (Sprach)konzepten der Objektorientierung grundlegende Sprachkonzepte der funktionalen Programmierung benennen; Sie können das Verständnis der Konzepte gezielt zur Programmentwicklung nutzen (Objektorientierung, funktionale Programmierung).
- Sie können eine Anwendung entwickeln und sind in der Lage, die Darstellung und Dokumentation des Codes nach professionellen Ansprüchen aufzubereiten (Anwendungsentwicklung).
Methodenkompetenzen (fachlich & überfachlich)
- Die Studierenden sind in der Lage, eine Programmieraufgabe zu analysieren und auf Problemlösestrategien zurückgreifen, um einen Umsetzungsplan zu formulieren (Modellierung).
- Sie sind in der Lage, ihre Programme einerseits auf Erfüllung der Anforderung hin zu testen und andererseits Fehler zu entdecken und zu beheben (Testing, Debugging).
Sozialkompetenzen
- Die Studierenden können andere Studierende im Entwicklungsprozess unterstützen.
Selbstkompetenzen
- Die Studierenden können erlernte Handlungs- und Entwicklungsmuster routiniert nutzen (Verinnerlichung).
- Sie können sich nach dem ersten Programmierjahr eigenständig in andere objektorientierte und funktional-hybride Programmiersprachen einarbeiten, sowie Programme in einer anderen Programmiersprache lesen und verstehen (Transfer).
- 6 CrP
- Arbeitsaufwand 180 Std.
- Präsenzzeit 60 Std.
- Selbststudium 120 Std.
- 4 SWS
- Vorlesung 1 SWS
- Übung 1 SWS
- Praktikum 2 SWS
- Bioinformatik (B.Sc. 2022)
- Informatik (B.Sc. 2022)
- Ingenieur-Informatik (B.Sc. 2022)
Ja
Bonuspunkte werden gemäß § 9 (4) der Allgemeinen Bestimmungen vergeben. Art und Weise der Zusatzleistungen wird den Studierenden zu Veranstaltungsbeginn rechtzeitig und in geeigneter Art und Weise mitgeteilt.
Prüfungsvorleistung:
Hausübungen und Kurztests
(Anzahl und Umfang der Vorleistung wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)
Prüfungsleistung:
Regelmäßige Teilnahme am Praktikum (mindestens 80% der Zeit), Klausur und/oder Entwicklung in der Informatik (zusammen 100%)
(Art und Umfang des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)
- Bioinformatik (B.Sc. 2022)
- Informatik (B.Sc. 2022)
- Android-Praktikum: Anwendungsentwicklung (INF2502)
- Anwendung systemnaher Konzepte in der Programmierung (INF2201)
- Cross-Platform Development (INF2507)
- Einführung in den systematischen Softwaretest (INF2510)
- Entwicklung mobiler Applikationen (INF2504)
- Funktionale Programmierung (INF2517)
- Generische Programmierung (INF2524)
- Nebenläufige und verteilte Programme (INF2509)
- Ruby On Rails (INF2513)
- Smart Products - Design, Entwicklung und Produktion (II2523)
- Ingenieur-Informatik (B.Sc. 2022)
- Anwendung systemnaher Konzepte in der Programmierung (INF2201)
- Einführung in den systematischen Softwaretest (INF2510)
- Funktionale Programmierung (INF2517)
- Generische Programmierung (INF2524)
- Nebenläufige und verteilte Programme (INF2509)
- Ruby On Rails (INF2513)
- Smart Products - Design, Entwicklung und Produktion (II2523)
- Gosling, James et al.: The Java Language Specification. https://docs.oracle.com/javase/specs/
- Ullenboom, C.: Java ist auch eine Insel. Einführung, Ausbildung, Praxis. Rheinwerk.
- Prähofer, H.: Funktionale Programmierung in Java. Eine umfassende Einführung. dpunkt.
Rechtliche Hinweise
- Diese Informationen geben den in den Online-Diensten für Studierende erfassten Datenbestand wieder.
- Die rechtskräftigen und damit verbindlichen Fassungen der Modulhandbücher finden Sie im Amtlichen Mitteilungsblatt der THM (AMB).
- Alle gültigen Prüfungsbestimmungen für die THM-Studiengänge können Sie außerdem in komfortabler Leseversion über den Downloadbereich auf der Homepage des Prüfungsamts einsehen.