Syllabus

Title
0262 Grundzüge der Programmierung
Instructors
Assoz.Prof PD Dr. Stefan Sobernig
Contact details
Type
LVP
Weekly hours
2
Language of instruction
Deutsch
Registration
09/07/20 to 09/30/20
Registration via LPIS
Notes to the course
Dates
Day Date Time Room
Monday 10/12/20 11:00 AM - 01:00 PM Online-Einheit
Monday 10/19/20 11:00 AM - 01:00 PM Online-Einheit
Monday 11/02/20 01:00 PM - 03:00 PM Online-Einheit
Monday 11/09/20 01:00 PM - 03:00 PM Online-Einheit
Monday 11/16/20 01:00 PM - 03:00 PM Online-Einheit
Monday 11/30/20 01:00 PM - 03:00 PM Online-Einheit
Monday 12/07/20 01:15 PM - 03:15 PM Online-Einheit
Monday 12/14/20 01:00 PM - 03:00 PM Online-Einheit
Monday 12/21/20 01:00 PM - 03:00 PM Online-Einheit
Monday 01/11/21 01:00 PM - 03:00 PM Online-Einheit
Monday 01/18/21 01:00 PM - 03:00 PM Online-Einheit
Monday 01/25/21 10:00 AM - 12:00 PM Online-Einheit
Procedure for the course when limited activity on campus

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. Die folgenden Abweichungen sind zu beachten:

  • Die Präsenztermine lt. Syllabus finden als Webkonferenzen statt; Einladungen dazu erfolgen zu gegebener Zeit.
  • Die 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.
Contents

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

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

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, und einer Programmiersprache (Java).
Attendance requirements
  • Die Teilnahme an der Lehrveranstaltung Grundzüge der Programmierung ist nicht verpflichtend und wird auch nicht kontrolliert.
  • 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.
Teaching/learning method(s)

Der Kurs ist in sechs inhaltliche Blöcke gegliedert:

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

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 welchen Programme für gegebene Problemstellungen für Bonuspunkte auszuarbeiten sind.

In den Zeiträumen der Programmierlabore stehen die BetreuerInnen für Hilfestellungen bei der Ausarbeitung zur Verfügung (via LEARN per Chat oder Forum bzw. in Laborstunden).

Der sechste Block besteht aus Präsenzeinheiten dient der Wiederholung und Prüfungsvorbereitung.

Assessment

Beim LVP-Modus basiert die Beurteilung ausschließlich auf einer schriftlichen Leistungsfeststellung (LVP) mit mündlicher Nachbesprechung mit insgesamt 60 bzw. 75 (Wahlfach) erreichbaren Punkten.

  • Die Anmeldung zur Prüfung ist unabhängig von der Anmeldung zur Vorlesung. Die Studierenden melden sich über LPIS-„Studienplan“ zur LVP-Prüfung an. 
  • Anmeldeschluss ist immer eine Woche vor der Prüfung um 23:59 Uhr.
  • Bei Fragen bezüglich der Prüfungsanmeldung wenden Sie sich bitte direkt an pruefungsorganisation@wu.ac.at
  • Es werden pro Semester 3 Prüfungstermine angeboten (in jeder Prüfungswoche):
    • 1. Prüfungstermin (im Distanzmodus):
      • Schriftliche Prüfung: Mo. 5.10.2020, 13:00-15:00;
      • Mündliche Nachbesprechung zum Zweck der Feststellung der eigenständigen Prüfungsleistung: Fr. 9.10.2020, ab 10:00 (genaue Zeitvereinbarung erfolgt nach der schriftlichen Prüfung);
    • 2. Prüfungstermin (im Distanzmodus):
      • Schriftlicher Prüfung: Mo. 23.11.2020, 10:00-12:00;
      • Mündliche Nachbesprechung zum Zweck der Feststellung der eigenständigen Prüfungsleistung: Fr. 27.11.2020, ab 10:00 (genaue Zeitvereinbarung erfolgt nach der schriftlichen Prüfung);
    • 3. Prüfungstermin (im Distanzmodus):
      • Schriftlicher Prüfung: Mo. 25.01.2021, 10:00-12:00;
      • Mündliche Nachbesprechung zum Zweck der Feststellung der eigenständigen Prüfungsleistung: Fr. 29.01.2021, ab 10:00 (genaue Zeitvereinbarung erfolgt nach der schriftlichen Prüfung);
  • Begleitende Lernmaterialien und Übungsbeispiele finden Sie in der Lehrmaterialsammlung: Algorithmisches Denken und Programmierung.

Notenschlüssel:
Ab 30 Punkte genügend, ab 38 befriedigend, ab 45 gut, ab 54 sehr gut

Notenschlüssel (Wahlfach):
Ab 38 Punkte genügend, ab 48 befriedigend, ab 58 gut, ab 67 sehr gut

Bonuspunkte:

Im Laufe der Vorlesung wird es die Möglichkeit geben, Bonuspunkte für die LVP-Prüfung zu sammeln.

  • Bis zu 10% Bonuspunkte für die LVP Prüfung
  • Gelten nur in diesem Semester und beim ersten Termin nächstes Semester
  • Nur beim ersten Prüfungsantritt 
Readings
1 Author: Gunter Saake, Kai-Uwe Sattler
Title:

Algorithmen und Datenstrukturen


Publisher: dpunkt.verlag
Edition: 5
Remarks: Sh. https://permalink.obvsg.at/wuw/AC15572284
Year: 2014
Recommendation: Essential reading for all students
Type: Book
Other

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. 

Datum Uhrzeit Ort Inhalt
Montag 12.10.2020 16:00 - 17:30 MS-Teams Java Einführung, Arbeitsumgebung
Montag 19.10.2020 16:00 - 17:30 MS-Teams Java Einführung, Arbeitsumgebung
Montag 2.11.2020 16:00 - 17:30 MS-Teams Registermaschinen
Montag 9.11.2020 16:00 - 17:30 MS-Teams Suchen und Sortieren
Montag 16.11.2020 16:00 - 17:30 MS-Teams Methoden
Montag 30.11.2020 16:00 - 17:30 MS-Teams Datenstrukturen
Montag 7.12.2020 16:00 - 17:30 MS-Teams verkettete Listen
Montag 14.12.2020 16:00 - 17:30 MS-Teams Baumstrukturen
Montag 11.1.2021 16:00 - 17:30 MS-Teams Hashing
Montag 18.1.2021 16:00 - 17:30 MS-Teams Fragestunde
Last edited: 2021-01-11



Back