diff --git a/Tutorium/tut03/GIT.md b/Tutorium/tut03/GIT.md new file mode 100644 index 0000000..a9cefdf --- /dev/null +++ b/Tutorium/tut03/GIT.md @@ -0,0 +1,55 @@ +# Beispiel Workflow mit Git + +## SSH-Key generieren + +1. `ssh-keygen` in der Konsole eingeben + - generiert einen privaten und öffentlichen Schlüssel in euer SSH-Verzeichnis `~/.ssh` +2. Kopiert den Inhalt des öffentlichen Schlüssel `.pub` + +```sh +cd ~/.ssh # wir gehen in unser .ssh directory +ssh-keygen # danach key namen eingeben und enter bis zum ende +cat eidp_key.pub # gibt den public key aus, diesen kopieren +``` + +Wie das ganze aussieht: + +![image how I generated the key](./img/ssh-key.png) + +## SSH-Key zum Git hinzufügen + +1. Settings +2. Keys +3. Add Key +4. Kopiert den Inhalt von `.pub` in Content + +![image how to add the key](./img/gitea.png) + +## Repository clone und VSCode + +1. Wir kopieren oder besser gesagt klonen das Git Repository mit `git clone ` + - die URL findet ihr rechts oben im repository auf der Website +2. Das Repository wird in einem Ordner gespeichert der wie das Repository heißt +3. Jetzt öffnen wir diesen Ordner in VSCode +4. Über den Git Tab können wir Datein hinzufügen und hochladen oder Änderungen herunterladen + +![image how clone git](./img/git-clone.png) + +alternative kann man auch direkt in VSCode das Repository herunterladen + +1. Git-Tab auswählen + ![img of git tab](./img/git-tab.png) +2. Clone Repository +3. Die URL zum Repository einfügen +4. Speicherort auswählen + +Nach dem öffnen sieht das dann so aus: + +![img how vscode looks with the repository](./img/git-project-open.png) + +## Dateien über Git-Tab hochladen + +1. Fügt die Datein mit dem `+` hinzu +2. Gebt eine Nachricht ein und drückt auf `Commit` +3. Zum endgültigen hochladen `Sync changes` +![img how to upload files](./img/git-upload.png) \ No newline at end of file diff --git a/Tutorium/tut03/README.md b/Tutorium/tut03/README.md new file mode 100644 index 0000000..d4933b8 --- /dev/null +++ b/Tutorium/tut03/README.md @@ -0,0 +1,173 @@ +--- +marp: true +paginate: true +theme: rose-pine +footer: EidP 2024 - Nils Pukropp - https://git.narl.io/nvrl/eidp-2024 +style: ".columns {\r display: grid;\r grid-template-columns: repeat(2, minmax(0, 1fr));\r gap: 1rem;\r }" + +--- + +# Tutorium 03 - 2024-10-31 + +Blatt 02, Workflow, Blatt 03 + +--- + +# Blatt 02 + +Welche Fehler wurden gemacht? + +--- + +# Hochladen + +- Probleme beim Hochladen + - Binary statt Textdatei + - Tutorial: [Beispiel Workflow mit Git](./GIT.md) + +--- + +# keine korrekte Ausgabe + +
+ +
+ +- Expectation: + +``` +p = -4.0 +q = -5.0 +x1 = 5.0 +x2 = -1.0 +``` + +
+ +
+ +- Reality: + +``` +Geben Sie nun einen Wert für p an: +> -4.0 +Geben Sie nun einen Wert für q an: +> -5.0 +Die Lösungsmenge ist L := {5.0, -1.0} +``` + +
+
+ +- Gebt bitte alles exakt wie vorgeschrieben in der Console aus! + +--- + +# One-Liner in 2.4 + +```python +print((((((float(input())) * 2) + 3) ** 2) - (float(input()))) / 4) +``` + +Falsch, weil `input` zwei mal aufgerufen wird + +--- + +# One-Liner in 2.4 + +```python +print((((((float(x := input())) * 2) + 3) ** 2) - (float(x))) / 4) +``` + +Das wäre korrekt, aber `:=` kam noch nicht in der Vorlesung vor + +--- + +# Blatt 02 - Vorrechnen + +--- + +# Recap Vorlesung +Funktionen, Loops + +--- + +# Funktionen + +- Ihr habt schon die ganze Zeit mit Funktionen gearbeitet + - `print(...)` + - `int(...)` + - ... +- Funktionen haben ihren eigenen *Scope* +- Funktionen sollten auch nur lokale Objekte verwenden + +--- + +```python +def my_func(param1: type, param2: type) -> type: + ... + +if __name__ == '__main__': + my_func(...) +``` + +--- + +```python +def add(a: int, b: int) -> int: + return a + b + +if __name__ == '__main__': + print(add(1, 2)) # 3 +``` + +--- + +# Was ist `if __name__ == '__main__'? + +- Damit bestimmter Code auch nur ausgeführt wird wenn wir die Datei als Hauptdatei ausführen +- Beim importieren von anderen Python-Datein möchten wir nicht dass irgend etwas Ausgegeben wird/Eingaben erfragt werden + +--- + +# Iteration - for + +```python +for some_item in some_iterable: + ... +``` + +- Wenn wir für jedes *Element* in einer *Menge* machen wollen + +--- + +```python +def print_even_numbers(max: int): + for num in range(0, max + 1): + print(num) +``` + +--- + +# Iteration - while + +```python +while condition: + ... +``` + +- Wenn wir eine Bendingung haben die vor jedem Durchlauf gelten muss + +--- + +```python +def find_next_prime(n: int) -> int: + next_prime = n + 1 + while !is_prime(next_prime): + next_prime += 1 + return next_prime +``` + +--- + +# Blatt 03 \ No newline at end of file diff --git a/Tutorium/tut03/tutorium-03.pdf b/Tutorium/tut03/tutorium-03.pdf new file mode 100644 index 0000000..ef6645a Binary files /dev/null and b/Tutorium/tut03/tutorium-03.pdf differ