INF1003 Programmieren 1

Modulverantwortliche
  • Prof. Dr. Dominikus Herzberg
Lehrende
  • Prof. Dr. Ing. Diethelm Bienhaus
  • Prof. Dr. Dominikus Herzberg
  • Nadja Krümmel
  • Prof. Dr. Christian Überall
Notwendige Voraussetzungen zur Teilnahme

Keine

Empfohlene Voraussetzungen zur Teilnahme

Nach individuellem Bedarf: Brückenkurs Programmieren

Kurzbeschreibung

Die Studierenden erlernen grundlegende Konzepte einer modernen Programmiersprache, die prozedurale und objektorientierte Sprachkonstrukte umfasst. Die Studierenden können kürzere Programme entwickeln, die die erlernten Sprachkonzepte umsetzen und kombinieren.

Inhalte
  • Generelles Programmierwissen, wie u.a. Syntax-Beschreibungen, Literale, Datentypen, Programmier-Paradigmen, Typsystem (statisch/dynamisch), Information Hiding, Modularisierung, Datenkapselung, Einfluss statischer Typisierung auf die Code-Kohärenz und -Konsistenz
  • Prozedurale Konzepte, wie u.a. Variablen, Namensräume und Scope, Verschachtelung, Zuweisungen, Schleifen, Entscheidungen, Iteration & Rekursion
  • Grundlegende objektorientierte Konzepte, wie u.a. Klasse, Vererbung, Interfaces, Enumerationen, Arrays, Instanzbegriff, Polymorphie, Variablen (lokale, Klassen- und Instanzvariablen), Gültigkeitsbereich, Klassen- und Instanzmethoden, Konstruktoren, Ausnahmebehandlung (Exceptions), Sichtbarkeitskonzept, Anweisungen und Ausdrücke, Operatoren, abstrakte Datentypen
  • Grundlegende Laufzeitkonzepte, wie u.a. Callstack/Frames, Heap, Garbage Collection, Datenwerte und ihre Kodierung
  • Grundlegende Programmiertätigkeiten, wie u.a. Programmeingabe, einfache Fehlersuche und -behebung, Programmausführung, Anwendung von Coding Conventions, Ablaufvisualisierung
  • Grundlegender Technikeinsatz, wie u.a. Programmier- und Entwicklungswerkzeuge (Editor, Entwicklungsumgebung, Compiler)
Qualifikations- und Lernziele

Fachkompetenzen

  • Die Studierenden können vor dem Hintergrund algorithmischen Denkens unter Rückgriff auf Basistypen und Array-Datentypen mathematisch/formale Beschreibungen in funktionierende Algorithmen übersetzen (Algorithmik, prozedurale Programmierung).
  • Die Studierenden können alle grundlegenden (Sprach-)Konzepte der Objektorientierung benennen. Sie können das Verständnis der Konzepte gezielt zur Programmentwicklung nutzen (Objektorientierung).
  • Die Studierenden können sich fachlich korrekt ausdrücken, wenn sie über Programme und die verwendeten Sprachkonstrukte sprechen und Programmabläufe beschreiben (Versprachlichung).

Methodenkompetenzen (fachlich & überfachlich)

  • Die Studierenden sind in der Lage, kleinere Programme zu schreiben, die die Beherrschung verschiedenster Sprachkonzepte und ihrer Kombination demonstrieren (Programmentwicklung).
  • Die Studierenden können sich ohne Schwierigkeiten in ihren Entwicklungswerkzeugen und Hilfsmitteln zurechtfinden. (Handwerkszeug)

Sozialkompetenzen

  • Die Studierenden können andere Studierende im Entwicklungsprozess unterstützen.

Selbstkompetenzen

  • Sie können kleinere Projektaufgaben eigenständig konzipieren, entwerfen und als lauffähige Programme umsetzen.
  • Die Studierenden können ihren Lernprozess reflektieren.
ECTS-Leistungspunkte (CrP)
  • 6 CrP
  • Arbeitsaufwand 180 Std.
  • Präsenzzeit 90 Std.
  • Selbststudium 90 Std.
Lehr- und Lernformen
  • 6 SWS
  • Vorlesung 2 SWS
  • Übung 2 SWS
  • Praktikum 2 SWS
Studiensemester
  • Bioinformatik (B.Sc. 2022)
  • Informatik (B.Sc. 2022)
  • Ingenieur-Informatik (B.Sc. 2022)
Dauer
1 Semester
Häufigkeit des Angebots
Jedes Semester
Unterrichtssprache
Deutsch
Bonuspunkte

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üfungsleistungen

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) und/oder Praktikumsleistungen, Klausur und/oder Entwicklung in der Informatik (zusammen 100%)

(Art und Umfang des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)

Benotung
Die Bewertung des Moduls erfolgt gemäß §§ 9, ggf. 12 (Teilleistungen), ggf. 18 (Arbeiten, Kolloquien) der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung).
Verwendbarkeit
Gemäß § 5 der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung) Verwendbarkeit in allen Bachelorstudiengänge der THM möglich.
Literatur, Medien
  • Gosling, J. et al.: The Java Language Specification. https://docs.oracle.com/javase/specs/
  • Kofler, M.: Java. Der Grundkurs.Rheinwerk.
  • Günster, K.: Einführung in Java. Rheinwerk.
  • Lahres, B.; Raýman, G.; Strich, S.: Objektorientierte Programmierung. Das umfassende Handbuch. Rheinwerk.
  • Ousterhout, J.: A Philosophy of Software Design. Yaknyam.
  • Thomas, D.; Hunt, A.: Der Pragmatische Programmierer. Hanser.

Rechtliche Hinweise