Syllabus

Titel
2263 Algorithmisches Denken und Programmierung
LV-Leiter/innen
Assoz.Prof PD Dr. Stefan Sobernig
Kontakt
  • LV-Typ
    VUE
  • Semesterstunden
    2
  • Unterrichtssprache
    Deutsch
Anmeldung
08.09.2020 bis 30.09.2020
Anmeldung über LPIS
Hinweise zur LV
Planpunkt(e) Bachelor
Termine
Wochentag Datum Uhrzeit Raum
Montag 12.10.2020 11:00 - 13:00 Online-Einheit
Montag 19.10.2020 11:00 - 13:00 Online-Einheit
Montag 02.11.2020 13:00 - 15:00 Online-Einheit
Montag 09.11.2020 13:00 - 15:00 Online-Einheit
Montag 16.11.2020 13:00 - 15:00 Online-Einheit
Montag 30.11.2020 13:00 - 15:00 Online-Einheit
Montag 07.12.2020 13:15 - 15:15 Online-Einheit
Montag 14.12.2020 13:00 - 15:00 Online-Einheit
Montag 21.12.2020 13:00 - 15:00 Online-Einheit
Montag 11.01.2021 13:00 - 15:00 Online-Einheit
Montag 18.01.2021 13:00 - 15:00 Online-Einheit
Montag 25.01.2021 10:00 - 12:00 Online-Einheit
Freitag 29.01.2021 10:00 - 18:00 Online-Einheit

Ablauf der LV bei eingeschränktem Campusbetrieb

Die Veranstaltung findet im Distanzmodus zu den im Syllabus angekündigten Terminen statt. Inhalte, Art und Weise der Aufgaben (Onlineaktivitäten), die Bestandteile und die Art und Weise der Kenntniskontrolle erfolgen unverändert, wie beschrieben. Der Erfordernisse an die Anwesenheit in einer VUE gelten weiterhin, und werden mit geeigneten Mitteln erfasst. Die folgenden Abweichungen sind zu beachten:

  • Die Präsenztermine lt. Syllabus finden als Webkonferenzen statt; Einladungen dazu erfolgen zu gegebener Zeit.
  • Der schriftliche Teil der Abschlussprüfung findet als sog. "Online Exam" mit "Online Proctoring" statt; die Abschlussprüfung hat dabei den Charakter einer "Open-Book-Prüfung", d.h. ausgewählte LV-Unterlagen dürfen verwendet werden.
  • Weitere Details zur Prüfung werden spätestens eine Woche vor dem Prüfungstermin bekanntgegeben.

Inhalte der LV

Grundlagen der Programmierung:

  • Variablen, Datentypen und Operatoren 
  • Kontrollstrukturen und Schleifen 
  • Zeichenketten

Algorithmische Grundkonzepte:

  • Notation und Analyse von Algorithmen
  • Notation von Datenstrukturen
  • Komplexitätsanalyse 

Suchen und Sortieren:

  • Ausgewählte Algorithmen
  • Analyse von Such- und Sortierverfahren

Rekursion:

  • Ausgewählte rekursive Algorithmen
  • Rekursive/ dynamische Datentypen

Baumstrukturen:

  • Begriffe und Konzepte
  • Binäre Bäume
  • Ausgewählte Algorithmen (Traversierung, Suche, Einfügen und Löschen)

Hashverfahren:

  • Grundlagen und Verfahren
  • Kollisionen
  • Analyse von Hashverfahren

Lernergebnisse (Learning Outcomes)

Theoretisches Grundverständnis:

  • Kenntnis der wichtigsten Grundkonzepte von Algorithmen.
  • Die Umsetzung dieser Konzepte in einer konkreten Programmiersprache.
  • Ausgewählte Algorithmen zur Lösung von grundlegenden Problemen der Informatik (z.B. Such- und Sortierverfahren), und deren Umsetzung in einer Programmiersprache. 

Analysieren und Verstehen von Algorithmen:

  • Die Fähigkeit, Algorithmen hinsichtlich ihrer Effizienz zu evaluieren und kritisch zu vergleichen;
  • von Dritten erstellte Programme zu erfassen, nachzuvollziehen und zu analysieren. 

Entwurf von Programmen:

  • Die Fähigkeit, grundlegende Algorithmen zur Lösung eines bestimmten Problems selbstständig zu formulieren, mit Hilfe natürlicher Sprache, eines Pseudocodes, oder einer Programmiersprache (Java).

Regelung zur Anwesenheit

  • Die Teilnahme an der Lehrveranstaltung ist grundsätzlich verpflichtend und wird kontrolliert (Anwesenheitsliste). Die Mindestanwesenheit zur Möglichkeit einer Beurteilung liegt bei 70% der Einheiten. Jede Abwesenheit muss rechtzeitig angezeigt und mit einem Abwesenheitsgrund belegt sein.
  • Für die Online-Aktivitäten gilt ebenfalls die Anwesenheitspflicht und An- bzw. Abwesenheiten werden über LEARN erfasst.
  • Die Teilnahme am ersten Termin sowie am Haupttermin der Prüfung sind für Studierende jedenfalls verpflichtend zu besuchen und von der oben genannten Ausnahme zur Anwesenheitspflicht ausgenommen.
  • Eine unentschuldigte und unbegründeteAbwesenheit in der ersten Einheit kann zum Verlust des Platzes führen.
  • Die Möglichkeit der Ersatzleistung für die Prüfung zum Nachtermin besteht nur, wenn der Haupttermin begründet und entschuldigt versäumt wurde.
  • Eine möglichst vollständige Teilnahme am Kurs wird auf jeden Fall zur Erreichung der Lernziele empfohlen.

Lehr-/Lerndesign

Der Kurs ist in sechs inhaltliche Blöcke gegliedert:

  • Einführung: Grundlagen der Programmierung
  • Suchalgorithmen
  • Sortieralgorithmen und Datenstrukturen
  • Rekursion
  • Hashfunktionen
  • Design

image:adp_blocks11.png

Die ersten fünf Blöcke bestehen jeweils aus zwei Bausteinen (Präsenzeinheit, Programmierlabor):

(a) Eine Präsenzeinheit von 2 Stunden zu Konzepten mit geführten Programmierübungen (auf Basis des begleitenden Lehrbuchs), die gemeinsam mit den BetreuerInnen in einer interaktiven Arbeitsumgebung schrittweise erarbeitet werden.

(b) Ein Programmierlabor, zur Anwendung der Konzepte und Fertigkeiten in selbstständig auszuarbeitenden Aufgaben, in welchem drei Aufgaben auszuarbeiten sind. Zu diesem Zweck wird das Programmierlabor nicht in Form einer Präsenzveranstaltung abgehalten, sondern über Online-Aktivitäten in LEARN. Diese Aktivitäten im "Blended-Learning-Modus" werden begleitet (Forum, Chat, Laborstunden der BetreuerInnen) und durch die BetreuerInnen beurteilt. Der sechste Block ("Design") besteht aus einer abschließenden Präsenzeinheit, die auch der Rückmeldung zu den Ergebnissen der Programmierlabore und der Prüfungsvorbereitung dient, ohne angeschlossenes Labor.

Das erste Programmierlabor ist ein Präsenztermin, in denen dieBetreuerInnen eine Einführung zu den notwendigen Arbeitsumgebungen (Kommandozeile, Editor, LEARN, Jupyter Notebooks) und unmittelbare Hilfestellung bei individuellen Problemen bieten.

Online-Aktivitäten (ausgewählte Beispiele)

  • Online-Diskussion (MyLearn: Chat, Forum):
    In der Kleingruppe erarbeiten Sie in Form eines Chats eine Beschreibung in natürlicher Sprache für einen vorgegebenen, bereits implementierten Algorithmus.
  • Kollaborative Codeannotation (MyLearn: Wiki, GitLab):
    In der Kleingruppe studieren Sie vorgegebene Programme (sog. "code review") in einer Kollaborationsumgebung für ProgrammiererInnen (GitLab). Mit Hilfe von Annotationen sind die zentralen Programmbestandteile zu markieren und zu beschreiben.
  • Online-Abgabegespräch (MyLearn: Lecturecast):
    Als Einzelner erarbeiten Sie eine Implementierung für ein vorgegebenes Berechnungsproblem. Dieses ist in Form eines Jupyter-Notebooks zu dokumentieren (Implementierung und Codekommentare). Zusätzlich, und anhand eines Leitfadens mit Fragen, erstellen Sie ein Präsentationsvideo (max. 3-4 Minuten), in welchem Sie Ihren KollegInnen und den BetreuerInnen wichtige Lösungsschritte und Details der Implementierung erläutern.

Leistung(en) für eine Beurteilung

Die drei Programmierlabore, die im "Blended-Learning-Modus" abgehalten werden, gelten als 2. Teilleistung neben der Abschlussprüfung:

  • Online-Aktivitäten + Abgaben: 40 Punkte
  • Abschlussprüfung (schriftlich mit mündlicher Nachbesprechung): 60 Punkte

Notenschlüssel:

90 - 100 1
76 - 89 2
63 - 75 3
50 - 62 4
0 - 49 5

Wahlfach:

  • Online-Aktivitäten + Abgaben: 45 Punkte
  • Abschlussprüfung (schriftlich mit mündlicher Nachbesprechung): 75 Punkte

Notenschlüssel:

108 - 120 1
92 - 107 2
76 - 91 3
60 - 75 4
0 - 59 5

Literatur

1 Autor/in: Gunter Saake, Kai-Uwe Sattler
Titel:

Algorithmen und Datenstrukturen


Verlag: dpunkt.verlag
Auflage: 5
Anmerkungen: Sh. https://permalink.obvsg.at/wuw/AC15572284
Jahr: 2014
Empfehlung: Unbedingt notwendige Studienliteratur für alle Studierenden
Art: Buch
Zuletzt bearbeitet: 17.01.2021



Zurück