Syllabus

Titel
2146 Algorithmisches Denken und Programmierung
LV-Leiter/innen
Dr. Sebastian Neumaier, B.Sc.
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
Dienstag 01.12.2020 11:00 - 13:15 Online-Einheit
Donnerstag 03.12.2020 11:30 - 13:45 Online-Einheit
Donnerstag 10.12.2020 11:00 - 13:15 Online-Einheit
Dienstag 15.12.2020 11:00 - 13:15 Online-Einheit
Donnerstag 17.12.2020 11:00 - 13:15 Online-Einheit
Dienstag 22.12.2020 11:00 - 13:15 Online-Einheit
Dienstag 12.01.2021 11:00 - 13:15 Online-Einheit
Donnerstag 14.01.2021 11:00 - 13:15 Online-Einheit
Dienstag 19.01.2021 11:00 - 13:15 Online-Einheit
Donnerstag 21.01.2021 11:00 - 13:15 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

  • Der Kurs findet im Distanzmodus zu den angegebenen Kursterminen statt. Wir wechseln auf eine Online-Kursumgebung (MS Teams etc.).
  • Die Teilnahmevoraussetzungen, die Lehrmethode, die Aufgaben und die Bewertung bleiben wie im Lehrplan beschrieben. Ein Wechsel des Lehrmodus (Online-Lernen) hat keine Auswirkungen auf den Lehrplan.

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:

  • Rekursive Algorithmen
  • Rekursive/dynamische Datentypen

Baumstrukturen:

  • Begriffe und Konzepte
  • Binäre Bäume
  • Traversierung, Suche, Einfügen und Löschen

Hashverfahren:

  • Grundlagen und Verfahren
  • Kollisionen
  • Analyse von Hashverfahren

 

Begleigtende Lernmaterialien und Übungsbeispiele finden Sie in der Lehrmaterialsammlung: Algorithmisches Denken und Programmierung.

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 mit Hilfe natürlicher Sprache, eines Pseudocodes, oder einer Programmiersprache selbstständig zu formulieren.
  • In der Lehrveranstaltung wird die Programmiersprache Python verwendet.

Regelung zur Anwesenheit

Für Studien nach Studienplan 2019 (VUE Algorithmisches Denken und Programmierung)

  • Die Teilnahme an der Lehrveranstaltung ist grundsätzlich verpflichtend (volle Präsenzlehre), es gilt jedoch eine reduzierte Anwesenheitspflicht von 70% der angekündigten Lehrveranstaltungseinheiten.
  • 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 unbegründete und entschuldigte Abwesenheit 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.
  • Die Teilnahme am Kurs ist daher zwar grundsätzlich vorgesehen, jedoch innerhalb der Grenzen der reduzierten Anwesenheitspflicht optional. Eine möglichst vollständige Teilnahme am Kurs wird jedoch empfohlen.

Für Studien nach Studienplan 2012 (LVP Grundzüge der Programmierung / Wahlfach Kurs II - Grundzüge der Programmierung und Modellierung)

  • Die Teilnahme an der Lehrveranstaltung Grundzüge der Programmierung ist nicht verpflichtend und es gilt auch keinerlei Anwesenheitspflicht für die angemeldeten Studierenden.
  • Ebenso findet auch keine Leistungsbeurteilung für die Teilnahme an diesem Kurs statt. Die Leistungsfeststellung für den entsprechenden Planpunkt erfolgt durch die entsprechende Lehrveranstaltungsprüfung (LVP).
  • Es wird die Möglichkeit geben, bis zu 10% Bonuspunkte für die LVP-Prüfung zu sammeln. Diese gelten nur bei Prüfungsantritt im aktuellen Semester. 
  • Eine Teilnahme am Kurs ist für Studierende somit nicht verpflichtend, jedoch zu empfehlen.

Lehr-/Lerndesign

Der Kurs "Algorithmisches Denken und Programmierung" (ADP) ist in sechs inhaltliche Blöcke gegliedert:

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

image:adp_blocks1.png

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

(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

  • Online-Diskussion im Umfang von 2 Nettoarbeitsstunden (LEARN: 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 im Umfang von 2,5 Nettoarbeitsstunden (LEARN: Chat, Wiki):
    In der Kleingruppe studieren Sie vorgegebene Programme (sog. "code review"). Mit Hilfe von Annotationen sind die zentralen Programmbestandteile zu markieren und zu beschreiben.
  • Online-Abgabegespräch im Umfang von 4 Nettoarbeitsstunden (LEARN: Screencast):
    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 Teilleistungen 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

Online-Zugriff verfügbar: https://permalink.obvsg.at/wuw/AC15572284


Verlag: dpunkt.verlag
Auflage: 5
Jahr: 2014
Prüfungsstoff: Nein
Diplomprüfungsstoff: Nein
Empfehlung: Stark empfohlen (aber nicht absolute Kaufnotwendigkeit)
Art: Buch

Sonstiges

Tutorium

Begleitend zur  Lehrveranstaltung wird ein freiwilliges Tutorium angeboten. Hier werden Hilfestellungen bei den Aufgaben und bei Verständnisproblemen angeboten, sowie Inhalte wiederholt und vertieft.

Es besteht keine Anwesenheitspflicht. 

Mittwoch 9.12.2020 15:00 - 17:00 MS-Teams Python Einführung, Arbeitsumgebung
Mittwoch 16.12.2020 15:00 - 17:00 MS-Teams Schleifen, Funktionen, Klassen
Mittwoch 13.1.2021 15:00 - 17:00 MS-Teams Suchen, Sortieren
Mittwoch 20.1.2021 15:00 - 17:00 MS-Teams verkettete Listen, Bäume
Zuletzt bearbeitet: 17.01.2021



Zurück