# Versionierung von Softwareprojekten (GIT)

Im Zuge der Digitalisierung des Informatikunterrichts in Baden-Württemberg wird angestrebt, den Schülerinnen und Schülern die Grundkonzepte einer Versionsverwaltung nahezubringen und im alltäglichen Unterricht gewinnbringend einzusetzen. Das Land Baden-Württemberg bietet dazu den Schulen einen Git-Service unter dem Namen [Gitcamp Baden-Württemberg](https://fortbildner.gitcamp-bw.de/) an.

Dieses Projekt vermittelt die Grundlagen des Arbeiten mit GIT in der Schule, der Administration von GitCamp und stellt unterschiedliche Szenarien vor, wie GIT im Gymnasium in den Klassenstufe 9 bis 13 (IMP und Informatik-Kursstufe) eingesetzt werden kann.


## Material

### Bearbeitung
Die vorliegenden Unterrichtsmaterialien wurden im [Ascii-Doc Format (.adoc)](https://asciidoc.org/) erstellt. Sie können sie mit einem einfachen Texteditor editieren. Für größere Änderungen empfiehlt sich die Verwendung von [Visual Studio Code](https://code.visualstudio.com/) mit der Extension Asciidoc oder von [AsciidocFX](https://github.com/asciidocfx/AsciidocFX). Beide Programme zeigen die formatierte Ausgabe fortlaufend während der Bearbeitung des Codes an. Möglicherweise machen dabei die mathematischen Formeln oder die Diagramme probleme, die Erweiterungen der normalen Asciidoc Syntax darstellen. Beim Konvertieren in pdf-Dokumente werden diese aber korrekt dargestellt.

### Einstellungen
Sie können entweder jedes einzelne Kapitel oder alles gemeinsam in ein pdf-Dokument überführen. Die Dokumente zu den Einzelkapitel befinden sich in den Unterordnern. In jedem Dokument können am Anfang einige Einstellungen vorgenommen werden. Sie können entscheiden, ob das erzeugte pdf-Dokument die Kommentare für Lehrer enthalten soll oder nicht. Gleiches gilt für die Lösungen. In der Tablet-Version wird ausreichend Platz direkt nach den Aufgaben gelassen, dass die Schülerinnen und Schüler ihre Lösungen direkt in das Dokument hineinschreiben können. 

Im Hauptdokument können Sie außerdem wählen, welche Kapitel integriert werden soll. Damit können Sie Ihren Unterricht individuell gestalten.

### Konvertierung
Die Konvertierung in pdf-Dokumente ist aufgrund der mathematischen Formeln nicht ganz einfach, da die notwendige Erweiterung nur in einer bestimmten Linux-Version läuft. Sie funktioniert aber gut, wenn man den vorinstallierten Docker-Container verwendet.

Installieren Sie dazu das [Docker-System](https://docs.docker.com/get-docker/). Suchen Sie innerhalb des Docker-Programms nach dem Image asciidoc/docker-asciidoc und laden Sie es herunter. Unter Windows starten Sie dann in einer Powershell das Docker-Image: 
```
docker run -it -v F:/informatik/KuenstlicheIntelligenz/MLGit:/documents/ asciidoctor/docker-asciidoctor
```
Dabei wird in diesem Beispiel der Ordner F:/Informatik/KuenstlicheIntelligenz/MLGit mit dem Docker-Container verbunden und steht dort im Standard-Verzeichnis /documents zur Verfügung.

Mit dem folgenden Befehl wird dann das .adoc-File in ein pdf-Dokument übersetzt:
```
asciidoctor-pdf -R "." -o "maschine-learning-schueler.pdf" -a allow-uri-read -a imagesoutdir=./.asciidoctor/stem -r asciidoctor-diagram -r asciidoctor-mathematical machine-learning.adoc
```
Alternativ können Sie mit "./makePDF.sh" das Gesamtdokument in den drei Versionen für Lehrer, Schüler ohne Tablets und Schüler mit Tablets erzeugen lassen. Stellen Sie vorher im Hauptdokument ein, welche Kapitel einbezogen werden sollen.


