DevOps

Unterlagen zur Vorlesung DevOps an der Hochschule Heilbronn im Bachelor Studiengang Software Engineering.

Projekt auf GitHubaheil/hhn-devops

Syllabus

Kurszeiten

Vorlesung: 1 Vorlesungseinheit / Woche, 90 Min. / Einheit

Voraussetzungen

• G2.3 Betriebssysteme (262007)
• H2.3 Grundlagen verteilter Systeme (262055)
• H3.2 Developer-Tools des SE (262051)
• H3.4 Software Engineering komplexer Systeme (262061)

Beschreibung

Die Veranstaltung basiert u.a. auf dem Buch Das DevOps Handbuch von Gene Kim at al. Die Veranstaltung vermittelt das Mindset der DevOps-Philosophie und führt in eine Reihe von Techniken und Technologien entlang eines typischen DevOps-Zyklus ein. Hier finden immer wieder aktuelle Technologien und Tools in der Veranstaltung Einzug. Der Kurs baut auf Veranstaltungen aus dem 2. und 3. Semester auf.

Programmierkenntnisse als auch ein sicherer Umgang mit Git bzw. GitLab wird vorausgesetzt. Der erfolgreiche Abschluss der Veranstaltung Developer Tools im Software Engineering (262051) ist daher empfohlen. Grundlagen in der Erstellung von Skripten sollten bereits in der Vorlesung Betriebssysteme (262007) erworben worden sein. Die erfolgreiche Teilnahme an Grundlagen verteilter Systeme (262055) und Software Engineering komplexer Systeme (262061) ist ebenfalls empfohlen, da zahlreiche Konzepte der darin behandelten Themen aufgegriffen werden.

Die Veranstaltung findet dabei überwiegend nach dem Konzept des Inverted Classroom statt. Als Vorbereitung auf die Präsenzveranstaltung stehen teilweise Screencasts zur Verfügung. In der Präsenzveranstaltung können offene Fragen aus den Screencasts und Übungsaufgabe besprochen. Exkurse und Diskussionen rund um aktuelle Themen und Tools runden die Veranstaltung ab.

In Einzel- und Gruppenarbeit werden wöchentliche Aufgabenstellungen erarbeitet, deren erfolgreiche Bearbeitung Voraussetzung zum Bestehen des Kurses ist.

Es werden vorlesungsbegleitend Tests geschrieben, die zum Bestehen des Kurses erfolgreich bestanden werden müssen.

Aufgaben umfassen mehrere praktische Abgaben (Labs) und ein Abschlussprojekt.

Der Inhalt der Veranstaltung kann aufgrund der Weiterentwicklung der Technologien von Semester zu Semester leicht variieren.

Vorlesungen

Jede Vorlesung behandelt ein spezielles Thema. Teilweise werden Aufgabenstellungen bereitgestellt, die bis 21:00 Uhr am Vorabend der darauffolgenden Vorlesung via ILIAS einzureichen sind.

Dies beinhaltet

Die Fragen werden im Kurs diskutiert. Fragen und Unterbrechungen sind willkommen. Ebenso Hinweise auf Fehler und Verbesserungsvorschläge.

Tests

Es wird zwei Tests während den regulären Vorlesungseinheiten geben. Es wird keine Abschlussprüfung geben. Beide Tests müssen zum bestehen des Kurses bestanden werden (40%). Am Ende des Vorlesungszeitraumes wird es während desregulären Prüfungszeitraumes einen Nachholtermin geben.

Hausaufgaben

Es gibt 3 Labs und ein Abschlussprojekt. Labs sind echte Aufgabenstellungen. Alle Labs sind im Pair Programming zu bearbeiten und werden als Gruppe bearbeitet. Das Abschlussprojekt wird in Gruppen von 4-6 Student*innen angefertigt und in der letzten Vorlesungseinheit dem Kurs vorgestellt.

Benotung

Die Note ergibt sich aus insgesamt 100 Punkten:

Aktivitäten Anteil an der Note
Hausaufgaben 30%
Labs 30%
Endprojekt und Präsentation 20 %
Quiz/Tests 20 %

Labs werden auf Basis der Korrektheit bewertet, inwiefern die angegebenen Spezifikationen erfüllt werden. Die Prüfung findet durch automatisierte Tests, Test Frameworks, Skripte und Checklisten statt.

Die Endnote berechnet sich nach der folgender Punkteskala:

                         
Punkte < 40 43 50 57 65 70.5 76 80 83 87 90 > 94
Note 5.0 4.7 4,0 3.7 3.3 3.0 2.7 2.3 2.0 1.7 1.3 1.0

Abgaben

Hausaufgaben als auch praktische Abgaben erfolgen via ILIAS zum angegebenen Zeitpunkt. Aufgaben, die nicht fristgemäß eingereicht wurden, werden mit 0 Punkte bewertet.

Zusammenarbeit

Tests und Hausaufgaben sind individuell zu bearbeiten. Es wird empfohlen sich bezüglich der Labs teamübergreifend auszutauschen. Die Aufgaben sind jedoch in Pair Programming zu bearbeiten. Ideen, Hilfestellungen etc. sowohl von anderen Kursmitgliedern als auch von externen Quelle sollten entsprechend gekennzeichnet und gemäß gültiger Standards referenziert werden. Bei Gruppenabgaben und Pair Programming werden alle Team-Mitglieder gleichermaßen bewertet, außer ein Team-Mitglied beschwert sich hinsichtlich der Bewertung. In diesem Fall findet anstelle dessen eine individuelle Bewertung jedes einzelnen Team-Mitgliedes statt.