DVA Praktikum für Informatiker

Sommersemester 2021

Hubert Högl, <Hubert.Hoegl@hs-augsburg.de>, http://hhoegl.informatik.hs-augsburg.de

URL: http://hhoegl.informatik.hs-augsburg.de/hhwiki/DVAINF_Praktikum

Mitschnitt der Einführungsveranstaltung vom 26.3.20, 9:50-11:20, https://cloud.hs-augsburg.de/s/RdL8dim6FxgcGLB

Moodle-Kurs SoSe2021: https://moodle.hs-augsburg.de/enrol/index.php?id=4490

Gitlab: https://r-n-d.informatik.hs-augsburg.de:8080/dva/berichte-2021



Die Betreuung erfolgt durch

1   Ziele

Das DVA Praktikum für Informatiker hat zum Ziel, dass Sie mit möglichst vielen Gebieten der Informatik in praktischen Kontakt kommen. Aus einer Themenliste (siehe Abschnitt Versuche) werden Sie ein Semester lang alle ein bis zwei Wochen einen neuen Versuch bearbeiten. Die technische Schwierigkeit steht dabei wegen der kurzen Bearbeitungszeit nicht im Vordergrund. Die Versuche werden eher leichte bis mittlere Anforderungen stellen.

Die Veranstaltung zählt mit 5 Creditpoints, das heisst der Arbeitswaufwand liegt bei 150 Stunden je Teammitglied (45 Std. Präsenz, 105 Std. Selbststudium).

2   Termine

Die Termine und Einteilungen finden Sie im Moodle Kurs.

3   Ablauf

http://hhoegl.informatik.hs-augsburg.de/dva/workflow/workflow1.png

Diese Menschen und Dienste sind beim DVA Praktikum beteiligt.

Die Studentinnen und Studenten werden in Teams eingeteilt, jedes Team hat in etwa vier bis sechs Mitglieder. Jedes Team sucht sich einen Versuch aus und bearbeitet ihn in der vorgegebenen Bearbeitungszeit (in der Regel zwei Wochen, gelegentlich auch nur eine Woche). Am Ende der Bearbeitungszeit wird der Versuch präsentiert Legen Sie Wert auf eine gute Versuchsvorführung, das macht die Präsentation lebhaft. In der Regel werden zur Vorführung und zum Bericht von ihren Betreuern Verbesserungsvorschläge gemacht, die innerhalb der darauffolgenden Woche umgesetzt werden müssen.

Jedes Team schreibt im Semester einen einzigen Bericht, der für jeden Versuch ein Kapitel enthält. Am Ende der Bearbeitungszeit eines Versuches muss der Bericht aktualisiert sein. Der Bericht wird mit Sphinx geschrieben und in einem Gitlab Repository fortlaufend aktualisiert. Der Bericht existiert nur in elektronischer Form. Auch die pro Versuch angefertigten Quelltexte und sonstigen notwendigen Dateien werden in gitlab abgespeichert.

In der Bearbeitungszeit des Versuchs arbeiten alle Team-Mitglieder zusammen. Typische Tätigkeiten sind Recherche, Aufteilung der Arbeit, Programmierung, Fehlersuche, Bericht, Präsentation und Vorführung erstellen. Sie können entweder ausserhalb der Hochschule oder in den Laboren der Hochschule (G2.09, G2.16) arbeiten. Dazu sind die Labore täglich geöffnet von ca. 8:00 bis 17 Uhr. Anmerkung: Seit Corona arbeiten wir nur noch Online zusammen.

Bei einer zweiwöchigen Bearbeitungszeit kann der Zwischentermin für eine "Lagebesprechung" im Labor oder per Zoom genutzt werden.

Die Versuche werden je Team als bestanden oder nicht bestanden gewertet. Die Betreuer führen je Versuch und Team einen "Zustandsautomaten", der wie folgt funktioniert:

dvafsm.png

Der Zustandsautomat der Bewertung.

Jedes Team muss bei allen Versuchen den Zustand "bestanden" erreichen.

3.1   Gitlab

Am Anfang der Veranstaltung werden die benötigte Anzahl Repositories von den Betreuern angelegt. Der Owner der Repositories ist ihr Betreuer. Als Maintainer wird ein Studierender pro Team ausgewählt, der dann selbständig die weiteren Teammitglieder einteilen kann.

In jedem Gitlab Repository liegt an oberster Stelle eine Datei README.md. Der Inhalt wird im Markdown Format geschrieben. Gitlab zeigt den Inhalt dieser Datei schön formatiert an. Die Datei dient als erste Beschreibung, wenn jemand das Repository auswählt. Deshalb sollte in etwa der folgende Inhalt enthalten sein:

# DVA Praktikum für Informatiker

Hochschule Augsburg \
Fakultät für Informatik \
Sommersemester 2021 \
Prof. Dr. Hubert Högl

**Team: 1**

<!-- Nr   Name       MatrNr  Studiengang+Sem,   E-mail -->
1. Hans Maier, #123456, INF6, <Hans.Maier@hs-augsburg.de>
2. Anna Huber, #126987, INF6, <Anna.Huber@hs-augsburg.de>
3. Franz Xaver, #349816, INF8, <Franz.Xaver@hs-augsburg.de>
4. Isolde Weber, #432190, INF8, <Isolde.Weber@hs-augsburg.de>

Der Bericht im HTML Format liegt hier: http://www.hs-augsburg.de/~maier/dva.

Statt der \-Zeichen kann man zum Zeilenumbruch auch zwei oder mehr Leerzeichen am Zeilenende verwenden.

Die Anzeige in gitlab sieht damit so aus:

README.png

Mit dem Werkzeug grip (https://github.com/joeyespo/grip) kann man bereits auf dem Entwicklungsrechner prüfen, wie die README.md Datei formatiert wird.

Den aktuellen Gitlab Link finden Sie am Anfang dieses Textes.

Sie können Ihr Repository dann entweder mit ssh oder https klonen:

  • git clone ssh://git@r-n-d.informatik.hs-augsburg.de:2222/dva/berichte-XXXX/1.git
  • git clone https://r-n-d.informatik.hs-augsburg.de:8080/dva/berichte-XXXX/1.git

Achtung: Das Verzeichnis heisst nach dem Klonen einfach 1. Falls Sie einen sprechenderen Namen möchten, müssen Sie diesen als weiteres Argument hinten angeben, also z.B. so:

  • git clone ssh://git@r-n-d.informatik..../1.git DVA21_Projektteam_1

3.2   Der Bericht

Es gibt einen Demo-Bericht, den Sie hier finden:

http://hhoegl.informatik.hs-augsburg.de/dva/sphinxbericht

Der "Quelltext" des Demo-Berichtes liegt auf dem Gitlab Server an folgender Stelle:

https://r-n-d.informatik.hs-augsburg.de:8080/hubert.hoegl/sphinxbericht

Der Bericht wird mit "make html" nach HTML übersetzt. Die generierte HTML Ausgabe des Berichts soll in Ihrem RZ WWW-Verzeichnis gespeichert werden. Auf dem Rechner login.rz.hs-augsburg.de findet man dieses Verzeichnis in /www/<user>, wobei <user> Ihr Login-Name ist. Dieses Verzeichnis finden Sie im WWW Browser dann unter http://www.hs-augsburg.de/~user.

WICHTIG Sie müssen am Anfang der Veranstaltung den Demo-Bericht mit git holen und ihn für Ihre Gruppe anpassen. Alle Teile im Bericht, die nur zur Demonstration geschrieben wurden, müssen Sie entfernen!

Der Bericht kann bei Bedarf über Sphinx auch als PDF Datei ausgegeben werden ("make latex"). Diese Option ist ganz praktisch, wenn man einen Überblick bekommen möchte, wie viele Seiten man schon geschrieben hat. Ausserdem sieht man, ob die Grösse der Bilder im PDF Format stimmt. Wir brauchen die Berichte nicht auf Papier (ganz nach dem "paperless" Motto).

Der Bericht enthält für jeden durchgeführten Versuch ein Kapitel. Jedes Versuchskapitel sollte in etwa folgende Gliederung aufweisen:

Datum, Thema

  1. Einleitung

    Motivation, Aufgabenstellung

  2. Grundlagen
  3. Versuchsdurchführung

    Vorbereitung, Durchführung, Ergebnisse, Probleme

  4. Zusammenfassung

    Fazit, Tipps für spätere Teams

  5. Literaturangaben

Ganz wichtig: Bei jedem Versuch muss nachvollziehbar sein, wer im Team welche Arbeit gemacht hat und welcher Zeitaufwand dafür in etwa nötig war! Der Bericht muss darüber Auskunft geben.

Hier ist ein Beispiel für einen Bericht aus dem Wintersemester 2017 (Technische Informatik):

3.3   Die Vorbereitungsaufgabe

Die Vorbereitungsaufgabe dient dazu, dass sich alle Teams an den Ablauf gewöhnen. Sie werden im wesentlichen

3.4   Moodle

Wie verwenden den Moodle-Kurs für diese Veranstaltung nur zum Eintragen der TeilnehmerInnen, zur Teambildung, und zur Benachrichtigung. Die Abgabe der Berichte wird in gitlab erfolgen.

4   Die Versuche

Diese Veranstaltung hat schon eine lange Tradition an der Hochschule (30 Jahre und mehr). In dieser Zeit haben sich natürlich die Themen stark gewandelt. Sie können mal kurz hineinschauen in die frühere Veranstaltungsseite um einen Eindruck davon zu bekommen. Hier ist auch eine`Zusammenfassung <DVAINF_VersucheAlt>`_ der alten Versuche.

Seit dem Sommer 2018 übertragen wir die alten Versuchsbeschreibungen, die grösstenteils direkt im HTML-Format geschrieben waren, in das Sphinx Format. Alle übertragenen Versuchsbeschreibungen (und einige neue) finden Sie unter diesem Link:

http://hhoegl.informatik.hs-augsburg.de/dva/inf/html/

Seit ein paar Jahren veranstalte ich (HH) auch das verwandte Praktikum DVA für Technische Informatiker. Diese Versuche möchte ich auch für Informatiker öffnen.

Ausserdem möchte ich folgende Gebiete verstärkt im Praktikum aufnehmen (Vorsicht, Liste wächst noch):

  • Programmiersprachen Python und Go
  • Embedded Linux
  • Embedded Systems
  • RFID/NFC
  • Open-Source Software
  • Open-Source Software Engineering
  • Linux-Treiber
  • Internet of Things
  • LoRa/TheThingsNetwork
  • Fablab
  • App-Entwicklung für Smartphones

Wenn Sie selber einen Versuch vorschlagen möchten, dann melden Sie sich unter der oben angegebenen E-mail Adresse!

5   Aktueller Stand

Die Kürzel in Grossbuchstaben in der Tabelle halten sich an die Vorgabe in DVAINF_VersucheAlt. Die kleingeschriebenen Kürzel bezeichnen neue Versuche.

DVA fuer Informatiker
Sommer 2020
H. Högl, <Hubert.Hoegl@hs-augsburg.de>
Teams 1-6 und 51-56, Versuche V1-V6

      V1                V2               V3               V4               V5               V6

2     JavaScript

3     Git/Gitlab

4     Gitlab CI/CD

5     ?

6     Git

51    Jenkins

52    Rust

53    Dart/Flutter

54    SE/CRYPT

56    Git

Neue Versuche:

  • app: Android App
  • ar: Augmented Reality (+ virtual reality)
  • blockchain
  • container
  • cs: Client/Server, Virtualisierung (ESX)
  • db: Datenbank
  • deep: Deep Learning
  • docker (auch mit "swarm")
  • git: Versionskontrolle mit Git
  • go: Programmiersprache Go
  • gopar: Parallele Programmierung in Go
  • gopy: Vergleich Go und Python
  • jscript
  • lxc/lxd
  • node: NodeJS
  • reactjs
  • reactos
  • textnn: Texterkennung mit neuronalen Netzwerken
  • web-secur: Web-Security
  • webshop

6   Alles Sonstige

7   Literatur zum Schreiben von Berichten, zur Teamarbeit und zum Programmieren

  1. In der Bibliothek gibt es ein Regal gleich in der Nähe des Empfangs, das ausgewählte Literatur enthält für Studierende die Berichte, Seminararbeiten, Bachelor- und Masterarbeiten schreiben müssen. Schauen Sie sich dort einfach mal um!
  2. Brian W. Fitzpatrick, Ben Collins-Sussman, Team Geek. A Software Developer's Guide to Working Well with Others, O'Reilly, 2012 (http://proquest.tech.safaribooksonline.de/book/work-relationships/9781449329839).

    Es gibt eine neuere Auflage mit dem Titel Debugging Teams, O'Reilly 2015. (http://proquest.tech.safaribooksonline.de/book/software-engineering-and-development/9781491932049)

  3. Kathrin Passig und Johannes Jander, Weniger schlecht programmieren, O'Reilly 2013 (http://proquest.tech.safaribooksonline.de/book/programming/9783955615697).
  4. Christina Czeschik und Matthias Lindhorst, Weniger schlecht über IT schreiben, O'Reilly 2018 (https://proquest.tech.safaribooksonline.de/book/communications/9781492070177).

DVAINF_Praktikum (zuletzt geƤndert am 2021-03-22 09:36:18 durch HubertHoegl)