---
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 01 - 2024-10-17
Vorstellen, Orga, Zusammenfassung, Installation von WSL/VS Code
---
# Über mich
* Nils Pukropp
* Informatik B.Sc. 5. Semester
* EidP Tutor seit zwei Semestern
* Gerne einfach "Du"
```py
print("Hello", "Tutorium", "2024!")
>>> "Hello Tutorium 2024!"
```
---
# Wie wird das Tutorium ablaufen?
* Vorstellen des letzten Blatt
* Wichtiges aus Vorlesung/für nächstes Blatt
* Fragen zum nächsten Blatt
* Allgemeine Fragen zur Vorlesung
* Am Ende QR-Code für Anwesenheit
* Ihr könnt mir gerne am Ende privat noch Fragen über die Vorlesung oder das Studium stellen
---
# Kontakt
- Mail: [nils@narl.io](mailto:)
- Tutorium-Files: [git.narl.io/nvrl/eidp-2024](https://git.narl.io/nvrl/eidp-2024)
- Telegram: [@narl_np](https://t.me/narl_np)
---
# Orga
Was müsst ihr machen/wissen
---
# Studienleistung bekommen
* Im HisInOne sich für dieses (oder ein anderes) Tutorium anmelden + Studienleistung (wird noch freigeschaltet)
* 14 Blätter, jeden Dienstag auf der [EidP Website](https://proglang.github.io/teaching/24ws/eidp.html)
* 2x Vorrechnen
* Muss nicht korrekt sein
* Ich werde gute Abgaben fragen
* 3 Punkte für Anwesenheit
* Ab nächstem Tutorium
* Über [QR-Code](https://auth.laurel.informatik.uni-freiburg.de/)
* Ihr braucht insgesamt mehr als 50% der Punkte (>50%)
---
# Prüfung
- Nach den Vorlesungen (Ende Februar/März)
- Setzt die Studienleistung vorraus
- Schwerere/Schwerste Klausur im ersten Semester
---
# Warum fällt vielen EidP so schwer?
- Zeitdruck in der Klausur
- In der Studienleistung schummeln ist einfach, in der Klausur nicht
- fehlende Übung im Programmieren
- Nicht ausreichend mit den Themen befasst
- Wahrscheinlich die Übungsblätter nicht vollständig selbst bearbeitet
- Nachdem man die Studienleistung hat (>50% Punkte) aufgehört sich mit der Vorlesung zu beschäftigen
---
# ChatGPT
- Wir tolerieren den Gebrauch
- **ABER**: Ihr müsst in der Klausur alles verstanden haben und genug Übung im Umgang mit Python haben
- Ob ihr jetzt Stunden braucht um die Lösung von ChatGPT nachzuvollziehen oder euch in Stunden die Lösung selbst erarbeitet und dabei praktische Programmiererfahrung sammelt ist eure Entscheidung.
- Aus eigenem Interesse würde ich generierte Stellen mit einem Kommentar versehen, damit ich einen Überblick habe welche Aufgaben schwerer fallen und wie viel ChatGPT verwendet wird
---
# Plagiat
- Wir tolerieren **kein** Plagiat
- Nicht von anderen Abschreiben
- Keine Lösungen aus dem Internet
- Erster Plagiat: 0 Punkte
- Zweiter Plagiat: Viel Erfolg im nächsten Jahr
---
# Abschließend
- Stellt Fragen im Tutorium
- Im Tutorium für alle
- Nach dem Tutorium für eine genauere Erklärung
- Nutzt die Studienleistung zum Üben
- Vor der Klausur werde ich wieder ein Zusatz-Tutorium veranstalten um euch Abschließend auf die Klausur vorzubereiten
- Gerne auch Fragen übers Studieren/Studium
---
# Zusammenfassung der Vorlesung
Was müsst ihr Wissen?
---
# Was muss ich installieren?
- [Setup Guide](https://proglang.github.io/teaching/24ws/eidp/setup.html)
- Zusammengefasst:
- WSL/Linux
- Python 3.12.x
- VS Code
- VS Code-Extensions:
- Python, Pylance, Flake8, autopep8
- Git
---
# Warum Linux statt WSL?
- Ihr werdet euch im Studium sowieso mit Linux auseinandersetzen
- Endlich kein Windows mehr
- Wir haben nicht einen Tutor der Windows benutzt
- Deutlich kürzere Installation auch in zukünftigen Vorlesungen
- Ihr lernt den Umgang mit der Shell deutlich schneller
---
# Was ist die Shell?
- Die Shell ermöglicht wie die UI mit dem Betriebssystem zu interagieren
- Ermöglicht einen präziseren Umgang mit eurem Betriebssystem
- Ungewohnt am Anfang, aber mit etwas Übung deutlich effektiver/schneller als auf UIs angewiesen zu sein
- Viele Prozesse sind nur mit der Shell möglich (haben kein UI)
---
# Was ist Git?
- Git dient der Versionskontrolle
- Ihr könnt neue/veränderte Datein zu Git hinzufügen um so eine Version einer Datei abzuspeichern
- Hat noch viele weiter Funktionen für die Software Entwicklung
- Für die Vorlesung braucht ihr lediglich `add`, `commit`, `pull`, `push`, (`status`)
---
# `git status`
- Zeigt neue/veränderte/staged Datein an
# `git add`
- Fügt neue/veränderte Datein in den `staged` Bereich von Git
- Diese Datein sind noch nicht vollständig gespeichert
- Mit `git status` könnt ihr sehen welche bereits `staged` sind
---
# `git commit -m "commit message"`
- "Speichert" die Dateien, welche mit `git add` hinzugefügt wurden
---
# Git-Server
- Die Dateien sind jetzt aber nur lokal gespeichert
- Git-Server ermöglichen den Austausch von Quellcode im Internet
- So können auch mehrere an einem Quellcode arbeiten
---
# `git pull`
- Der Git-Server wird nach neuen Änderungen gefragt
- Die neuen Änderungen werden heruntergeladen
# `git push`
- Lokal gespeicherte Änderungen werden auf den Git-Server hochgeladen
- Davor muss `git commit` verwendet worden sein
---
# Python
- Wird in `.py` Datein geschrieben
- Wird mit dem Befehl `python filename.py` ausgeführt
- Python übersetzt die Datei, und führt diese Zeile für Zeile aus
# Python Shell
- Interaktive Shell (ähnlich wie die Linux Shell)
- wartet auf Benutzereingaben
- interpretiert Benutzereingaben nacheinander
- Wird mit dem Befehl `python` ausgeführt
---
# Zahlentypen
## `int`
- Ganzzahlen $\mathbb{Z}$
- In Python nur durch verfügbaren Speicher limitiert
## `float`
- Rationale Zahlen $\mathbb{R}$
- neben Speicherlimitierung auch noch limitiert in der Genauigkeit (Floatpoint Precision)
---
# Rechenoperation
- Wie mans kennt eigentlich
- Addition `+`
- Subtraktion `-`
- Multiplikation `*`
- Division `/`
- Ganzzahlige Division `//`
- Potenzen `**`
- Modulo `%`
---
# Übungsblatt 1 + Installationsprobleme