Syllabus

Title
5907 Rechnerpraktikum aus Programmierung
Instructors
Dr. Helena Lovasz-Bukvova
Type
PI
Weekly hours
2
Language of instruction
Deutsch
Registration
02/01/19 to 02/24/19
Registration via LPIS
Notes to the course
Subject(s) Bachelor Programs
Dates
Day Date Time Room
Tuesday 03/05/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 03/12/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 03/19/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 03/26/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 04/02/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 05/07/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 05/14/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 05/21/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Tuesday 05/28/19 09:00 AM - 11:30 AM D2.-1.019 Workstation-Raum
Contents

Die Veranstaltung baut auf dem vermittelten Wissen aus den "Grundzügen der Modellierung" und "Grundzügen der Programmierung" sowie BIS I und BIS II auf (siehe Vorkenntnisse).

  • Einführung in die KOTLIN Programmiersprache für die Entwicklung von Android Apps
  • Gestaltung von einfachen Android Apps in Android Studio
  • Datenverwaltung in Android Apps mit SQLite
  • Abwicklung eines Softwareprojekts von Anforderungsanalyse (Requirements-Engineering), über Design (UML) bis zur Implementierung und Testverfahren
  • Grundlagen des Managements von Softwareprojekten, insb. agile Softwareentwicklung

Es wird vorausgesetzt, dass die Teilnehmer kleine Programme in einer objektorientierte Programmiersprache wie Python oder Java bereits selbständig schreiben können und UML-Modelle interpretieren sowie erstellen können (siehe Vorkenntnisse für Details).

Learning outcomes

Nach einem erfolgreichen Besuch der Veranstaltung, werden Sie folgendes können:

  • die Architektur einer Android-App beschreiben
  • Projekte im Android Studio verwalten
  • UIs in Android gestalten
  • einfaches App-Verhalten mit KOTLIN programmieren können
  • Daten einer Android App mithilfe iener SQLite-Datenbank verwalten können
  • Ablauf eines agilen Software-Engineering-Projekts erklären
  • Vorgehensweise in einem agilen Software-Engineering-Projekts mitgestalten
Attendance requirements

Die Präsenzeinheiten dienen sowohl zur Vermittlung von neuen Wissen als auch zur Übung. In mehreren Einheiten finden notenrelevante Aktivitäten und Abstimmungen statt. Jede Einheit hat ein eigenes Thema und eigene Bedeutung; es wird daher empfohlen, dass Sie alle Einheiten besuchen. Wenn Sie an einer Einheit nicht teilnehmen können, müssen Sie mit dem Verlust der Punkte für die notenrelevante Aktivität (hier werden keine Nachholmöglichkeiten angeboten) bzw. zusätzlichem Aufwand rechnen.

Teaching/learning method(s)

Die Veranstaltung besteht aus zwei Teilen, Vorbereitung und agiles Projekt, mit unterschiedlichen Lehr-/Lernkonzepten.

  • Vorbereitung: Im ersten Teil der Veranstaltung werden Grundlagen in Form einer Übung vermittelt. Neue Konzepte werden vorgeführt und gemeinsam programmiert anhand eines einfachen Beispiels. Hausübungen werden für die weitere Übung angeboten und es wird erwartet, dass Sie ihr neues Wissen durch selbständige Übung festigen.
  • Agiles Projekt: Im zweiten Teil wird in Großgruppen eine App entwickelt. Zur Steuerung des Projekts wird die Scrum-Vorgehensweise verwendet. In diesem Teil wird es Impulsvorträge zu Projektmanagement in Software Engineering geben, ansonsten arbeiten Sie selbständig bzw. in Abstimmung mit anderen an der Umsetzung der App.
  • Zusätzlich kann ein indovoduelles Projekt durchgeführt werden. Dieser Erfolgt vollständig in Eigenregie.

In beiden Teilen stellen die Präsenzeinheiten nur etwa einen viertel des gesamten Lernaufwands dar. Gehen Sie davon aus, dass Sie für jede Lerneinheit mit ca. 4,5 h Nachbereitung rechnen müssen.

Assessment

Die Beurteilung beruht auf drei Teilleistungen:

Test Programmierung (40 Punkte)
Nach dem ersten Teil der Veranstaltung (in der fünften Lerneinheit) werden Ihre Kenntnisse und Fertigkeiten in einem  Test geprüft. In diesem Test werden sie eine Stunde Zeit haben um eine App nach Vorgaben zu programmieren. Beim Test dürfen Sie alle möglichen Unterlagen verwenden, Sie dürfen sich nur nicht mit jemanden absprechen.

Test Scrum (10 Punkte)
In Vorbereitung auf das agile Projekt lesen Sie sich in selbständig in Unterlagen ein und probieren Werkzeuge, die wir für das Projekt benutzen werden aus. Hierzu füllen Sie dann selbständig einen Single-Choice-Test auf Learn aus.

agiles Projekt (50 Punkte)
Im zweiten Teil der Veranstaltung nehmen Sie als Entwickler oder Scrum Master an einem Projekt in Großgruppe (ca. 10 Personen) Teil. Im Rahmen des Projekts erfüllen Sie Aufgaben und können so bis zu 50 Punkte sammeln.

Bonus: Individualprojekt (10 Punkte)
Sie bekommen zufällig ein App-Thema zugeteilt und führen selbständig eine Design und Coding Sprint durch. Die Anrechnun der Bonuspunkte setzt voraus, dass Sie auch ohne diese Leistung die Veranstaltung bestanden hätten.

Benotung:

ab 90 Punkten: "sehr gut" (1)
ab 75 Punkten: "gut" (2)
ab 60 Punkten: "befriedigend" (3)
ab 50 Punkten: "genügend" (4)
unter 50 Punkten: "nicht genügend" (5)

Prerequisites for participation and waiting lists

Teilnahmevoraussetzungen:

  • Anmeldung über LPIS
  • Nach Ende der Anmeldefrist werden verfügbare LV-Plätze den Studierenden der Warteliste, die noch keine gültige Anmeldung zum Planpunkt haben, gereiht nach Studienfortschritt zugeteilt, nicht nach Wartelistenplatz.
  • Teilnahme an der ersten Einheit (eine Entschuldigung vorab aus schwerwiegenden Gründen wird akzeptiert, vorausgesetzt, dass sie nur die erste Einheit betrifft)

Vergabe von Wartelistenplätzen:

Die Anzahl der Teilnehmer ist durch die Raumkapazität absolut eingeschränkt, eine Anmeldung über die vorgegebene Anzahl der Plätze hinaus ist nicht möglich. Einstieg aus der Warteliste ist nur in der ersten Einheit möglich, falls angemeldete Teilnehmer unentschuldigt fehlen.

Recommended previous knowledge and skills

Der Fokus der Veranstaltung liegt auf Entwicklung von Android Apps. Hierfür wird KOTLIN als Programmiersprache vermittelt, allerdings unter der Annahme, dass die Teilnehmenden bereits objektorientiert programmieren können. Die Einarbeitung ins KOTLIN erfolgt sehr zügig, ohne Grundlagen der Programmierung zu erklären. Ebenso werden UML-Modelle zur Visualisierung verwendet. Folgendes Vorwissen und Vorkenntnisse werden vorausgesetzt:

  • Sie sollten das objektorientierte Paradigma erklären und seine Umsetzung in der Programmierung aufzeigen und beschreiben können (z.B. Klassen, Vererbung, Interfaces).
  • Sie sollten in Python oder Java (oder einer anderen objektorientierten Sprache) programmieren können. Es wird erwartet, dass Sie in einer entsprechenden Umgebung kleine Programme erstellen und verwalten können. Insbesondere sollten Sie Umgang mit Datentypen, Datenverwaltung (z.B. Variablen, Arrays), Kontrollelemente (z.B. Verzweigungen, Schleifen), Nutzerinteraktion (Ein- und Ausgabe), Definition von Methoden beherrschen.
  • Sie sollten UML Diagramme interpretieren können sowie die Struktur und Aktivität eines Programms mithilfe geeigneter Diagramme selbständig beschreiben.

Dieses Wissen wird von der ersten Einheit an gebraucht und wird nicht mehr vermittelt. Es wird daher dringend empfohlen, dass Sie die Veranstaltungen "Grundlagen der Programmierung" und "Grundlagen der Modellierung" bereits vor der Veranstaltung besucht haben.

Availability of lecturer(s)

Vortragende:   Helena Lovasz-Bukvova

E-Mail:      helena.lovasz-bukvova@wu.ac.at

Unit details
Unit Date Contents
1

Kursstruktur, Android Studio, Android Architektur

2

Screen Design, Programmierung mit Kotlin

3

Dynamische Screens, Multi-Screen Apps

4

Datenverwaltung mit SQLite

5

Test

6

agiles Projekt: Kick-off

7

agiles Projekt: Integration

8

agiles Projekt: Testen

9

agiles Projekt: Präsentation der Ergebnisse, Ausblick

Last edited: 2019-01-22



Back