Beschreibung einzelner Lerneinheiten (ECTS-Lehrveranstaltungsbeschreibungen) pro Semester

Programmierparadigmen und -techniken

Studiengang Informatik - Digital Innovation
Fachbereich Technik
Studiengangsart Bachelor
Berufsbegleitend
Sommersemester 2023
Titel der Lehrveranstaltung / des Moduls Programmierparadigmen und -techniken
Kennzahl der Lehrveranstaltung / des Moduls 083121120101
Unterrichtssprache Deutsch
Art der Lehrveranstaltung (Pflichtfach, Wahlfach) Pflichtfach
Semesterwochenstunden 5
Studienjahr 2023
Niveau der Lehrveranstaltung / des Moduls laut Lehrplan
Anzahl der zugewiesenen ECTS-Credits 9
Name des/der Vortragenden Verena FASTENBAUER, Stefan GRASBÖCK
Voraussetzungen und Begleitbedingungen

Keine

Lehrinhalte
  • Strukturierte/Prozedurale Programmierkonzepte: Variablen, Datentypen und Operatoren, Ausdrücke, An-/Zuweisungen, Kontrollstrukturen, Arrays und Listen, Funktionen, Modularisierung und Namespaces, Integration von Programmbibliotheken
  • Fundamentale Entwicklungsmethoden (prozedurale Abstraktion, dynamisches und statisches Programmverstehen, Prüfen auf Korrektheit, Debugging) und Programmierwerkzeuge inklusive einer integrierten Entwicklungsumgebung
  • Einsatz von Frameworks am Beispiel Windows .NET
  • Grundlegende Elemente und Konzepte der Benutzerschnittstellenerstellung und -programmierung
  • Ein- und Ausgabe mit Überprüfung von Eingaben
  • Zeichenkettenfunktionen und reguläre Ausdrücke
  • Mathematische, Zeit- und Datumsfunktionen
  • Implementierung und wesentliche Eigenschaften rekursiver Datenstrukturen (Listen, Bäume) und Rekursion
  • Abstraktion über Datenstrukturen mit vergleichbaren Zugriffsfunktionen
  • Fehler- und Ausnahmebehandlung
  • Einfache Testmethoden und Code-Review
  • Objektorientierten Programmierung: Klassen, Objekte, Klassenmember, Geheimnisprinzip, Generizität, Konstruktoren und Destruktoren, Kapselung inkl. Zugriffsschutz, Vererbung, Polymorphismus und Schnittstellen
  • Delegaten und Event-Handling
  • Multithreading (Threads, Tasks, async-await Pattern)
  • Präprozessordirektiven
  • Programmablaufpläne und UML-Klassendiagramme
  • Algorithmen und Datenstrukturen: Definition, Darstellungsformen, Arten, Effizienz, Backtrack-Prinzip und Datenstrukturen anhand ausgewählter Algorithmen (Sortier- und Suchverfahren, Geometrische Algorithmen, Baumstrukturen und Graphen)
Lernergebnisse

Prognosen weisen immerwährend auf den aktuellen und zukünftigen IT-Fachkräftemangel hin, denn die zunehmende Digitalisierung führt dazu, dass mittel- und langfristig die meisten Jobs programmiertechnische Fähigkeiten bedingen. Algorithmische Denkmuster als auch die Kenntnis einer Programmiersprache werden genauso selbstverständlich sein wie eine fundierte Fremdsprachenkenntnis. Ziel dieser Lehrveranstaltung ist es, eine Basis für eine weiterführende Programmierausbildung zu legen. Der Schwerpunkt liegt dabei auf einer systematischen Vorgehensweise beim Programmieren, wodurch die Studierenden neben theoretischen Fachkenntnissen vor allem praktische Fertigkeiten in der Programmierung erwerben. Gleichzeitig werden abstrakte Denkweisen gefördert.

Fach- und Methodenkompetenz (F/M)

  • Die Studierenden sind in der Lage eine IDE (Integrated Development Environment) zum Programmieren und zur Fehlersuche zu benutzen. Darüber hinaus kennen sie die systematische Vorgehensweise (von der Modellierung über die Codierung zur Dokumentation) und Werkzeuge beim Programmieren und können diese anwenden.
  • Die Studierenden kennen die wichtigsten Konzepte der strukturierten Programmierung und objektorientierte Programmierparadigmen. Ausgehend von einer Problemstellung erlernen sie die Implementierung objektorientierter Modelle (UML - Klassendiagramme), sowie algorithmische Denkmuster und die Zerlegung der Aufgabe in Teilschritte (Programmablaufpläne), um zu einer Lösung zu gelangen. Darüber hinaus können die Studierenden diese Grundlagen in einer Programmiersprache (C#) anwenden und einfache praktische Aufgabenstellungen implementieren.
  • Die Studierenden können kleine Probleme der realen Welt mit strukturierten, modularen Programmen lösen. Sie sind in der Lage, häufige Fehlerquellen zu erkennen und Techniken zur Qualitätssicherung zu integrieren.
  • Die Studierenden haben einen Überblick über wichtige Algorithmen und Datenstrukturen in der Informatik. Zudem sind sie in der Lage, die Aufwände der Algorithmen zu quantifizieren und in Komplexitätsmaße zu fassen. Sie können eine gegebene Problemstellung in einen Algorithmus fassen und diesen in ein effizient laufendes Programm überführen.

Sozial- und kommunikative Kompetenzen (S/K) und Selbstkompetenzen (S)

  • Die Studierenden können gestellte Aufgaben selbständig und fristgerecht lösen (Zuverlässigkeit) sowie in Zweierteams zusammenarbeiten (Teamfähigkeit/Kooperation) und die erstellten Lösungen inklusive der Programmeigenschaften kommunizieren und begründen (Ausdrucksvermögen und Auftreten).
  • Die Studierenden verstehen die Lösungen anderer und können konstruktive Verbesserungsvorschläge einbringen und mit Feedback umgehen (Kritikfähigkeit) sowie die eigenen Fähigkeiten und Grenzen reflektieren (Selbstreflexionsfähigkeit).
  • Fähigkeit und Bereitschaft, sich neues Wissen selbstständig anzueignen und aus Erfolgen und Misserfolgen zu lernen (Lernkompetenz und -motivation).
Geplante Lernaktivitäten und Lehrmethoden

Integrierte Lehrveranstaltung: 2 SWS ILV und 3 SWS ILV in 2 Gruppen

Vorträge mit den theoretischen Inhalten und begleitende Übungsaufgaben als Programmieraufgaben (alleine oder in Zweierteams), die innerhalb vorgegebener Fristen oder unter kontrollierten Bedingungen selbständig gelöst und in der nächsten Übungseinheit von zufällig ausgewählten Studierenden live implementiert oder präsentiert und in der Gruppe besprochen werden.

Prüfungsmethode und Beurteilungskriterien
  • Bewertung der Übungen (35 %)
  • Zwischenklausur + Abschließende theoretische und praktische Prüfung (65 %)

Für eine positive Gesamtnote müssen in jedem Prüfungsteil mindestens 50% der Punkte erzielt werden.

Kommentar

Keine

Empfohlene Fachliteratur und andere Lernressourcen
  • Doberenz, Walter u.a. (2018): Visual C# 2017 – Grundlagen, Profiwissen und Rezepte. München: Carl Hanser Verlag GmbH & Co. KG.
  • Geirhos, Matthias (2015a): Entwurfsmuster: Das umfassende Handbuch. 1. Aufl. Bonn: Rheinwerk Computing.
  • Geirhos, Matthias (2015b): Professionell entwickeln mit C# 6 und Visual Studio 2015: Das Praxisbuch. Alle Phasen in der Praxis: vom Entwurf bis zum Deployment. 3. Aufl. Bonn: Rheinwerk Computing.
  • Ottmann, Thomas; Widmayer, Peter (2017): Algorithmen und Datenstrukturen. 6., durchges. Aufl. Wiesbaden: Springer Vieweg.
  • Price, Mark J. (2017): C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development - Third Edition: Create powerful applications with .NET Standard 2.0, ASP.NET Core 2.0, ... 2017 or Visual Studio Code. 3rd Revised edition. Packt Publishing.
  • Reynders, Fanie (2018): Modern API Design with ASP.NET Core 2: Building Cross-Platform Back-End Systems. 1st ed. New York, NY: Apress.
  • Rimscha, Markus von (2018): Algorithmen kompakt und verständlich: Lösungsstrategien am Computer. 4., durchgesehene Aufl. 2017. Wiesbaden: Springer Vieweg.
  • Schwichtenberg, Holger (2018): Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin. München: Carl Hanser Verlag GmbH & Co. KG.
  • Theis, Thomas (2017): Einstieg in C# mit Visual Studio 2017: Ideal für Programmieranfänger. 5. Aufl. Bonn: Rheinwerk Computing.
Art der Vermittlung (Präsenzveranstaltungen, Fernstudium usw.)

Präsenzveranstaltung mit der Möglichkeit online teilzunehmen und Anwesenheitspflicht in den Übungseinheiten.

Zusätzlich wird das Video im Anschluss an die Lehrveranstaltung als Download zur Verfügung gestellt.

Präsenzveranstaltung