Commit 99816260 authored by Axel Dürkop's avatar Axel Dürkop
Browse files

Update Veranstaltung

parent 18b30985
......@@ -5,3 +5,8 @@ Auf so genannten Cheat Sheets werden die wichtigsten Befehle und Ausdrücke eine
Eine Internetrecherche z.B. nach "cheat sheet html" fördert einige zutage, bei [Envato](https://envato.com/blog/cheatsheets-web-designers/) findet sich auch eine gute Sammlung.
![Screenshot eines Cheat Sheets von <a href='https://websitesetup.org/HTML5-cheat-sheet.pdf'>WebsiteUp</a>](/abb/material/typen/html-cheat-sheet.png)
### Python
- https://ehmatthes.github.io/pcc/cheatsheets/README.html
-
# [05] 2017-11-17
## Thema: Dynamische Webseiten
Die Inhalte dynamischer Webseiten werden häufig nach bestimmten Regeln generiert. Diese Regeln werden durch Programmierer_innen festgelegt und beim Aufruf einer Seite ausgeführt. Ein bekanntes Beispiel sind Suchmaschinen: Die Eingabe der Suchbegriffe entscheidet darüber, wie die Inhalte der Seite nach der Antwort des Servers aussehen.
Die eingebenen Suchbegriffe werden mit dem HTTP-Request zum Server des Suchmaschinenbetreibers geschickt. Dort wird eine Abfrage an dessen Datenbank gestellt, die rohe Daten zurückliefert. Mit den Suchbegriffen wird also die gesamte Menge der Daten in der Datenbank gefiltert. Es kommen nur die Daten zurück, zu denen die Suchbegriffe passen.
Wir werden das Konzept einer solchen Abfrage im Folgenden an einem einfachen Beispiel nachvollziehen. Dafür bauen wir uns zunächst eine entsprechende Datenbankstruktur auf, ohne gleich ein [Datenbankmanagementsystem](https://de.wikipedia.org/wiki/Datenbank#Datenbankmanagementsystem) wie [SQLite](https://www.sqlite.org/), [MySQL](https://www.mysql.com/) oder [MongoDB](http://mongodb.com/) einzusetzen.
## Ziele
- Sie können das Konzept dynamischer Webseiten erklären.
- Sie können den Datentyp *Dictionary* erklären und sinnvoll zur Strukturierung von Daten einsetzen.
- Sie verstehen, dass Dictionarys, die in einer Liste gespeichert sind, mit einer Tabelle vergleichbar sind.
- Sie verstehen das Konzept des Filterns von Daten bei der Ausgabe und können es erklären und anwenden.
- Sie kennen die *if-Anweisung* und können Sie auch in Kombination mit Operatoren einsetzen.
- Sie können aus komplexeren Datenstrukturen HTML-Fragmente generieren.
## Inhalte
- [Strukturierung durch Einrückungen](https://www.python-kurs.eu/python3_bloecke.php)
- [Variablen](https://www.python-kurs.eu/python3_variablen.php)
- Datentypen
- Number
- Float
- Boolean
- [String](https://www.python-kurs.eu/python3_sequentielle_datentypen.php)
- [List](https://www.python-kurs.eu/python3_sequentielle_datentypen.php)
- [Dictionary](https://www.python-kurs.eu/python3_dictionaries.php)
- [Operatoren](https://www.python-kurs.eu/python3_operatoren.php)
- Rechenoperatoren
- Zuweisungsoperator
- Vergleichoperatoren
- Logische Operatoren
## Inhalte, die sich in der Veranstaltung ergeben haben
Zu Anfang der Veranstaltung wurden wieder einige Themen und Fragen aufgeworfen, die im Folgenden kurz zusammengefasst sind.
### Textverarbeitungen und Wortprozessoren
Neben dem berühmt-berüchtigten Officepaket existieren zahlreiche Alternativen, mit denen sich Texte verfassen lassen. Diese sind hinsichtlich des Datenschutzes und der Privatsphäre weitaus zuverlässiger, bieten aber ggf. nicht den gewohnten Komfort und bedürfen einer gewissen Einarbeitungszeit.
- [LibreOffice](https://www.libreoffice.org/)
- [LaTeX](https://www.latex-project.org/)
- [Lyx](http://www.lyx.org/)
- [Pandoc](http://pandoc.org/)
- [Etherpad](http://etherpad.org/), an der TUHH unter https://pads.rz.tuhh.de/
### Persönliche Cloudlösungen
Dropbox, OneDrive und GoogleDrive sind weit verbreitet, nicht zuletzt wegen ihres Funktionsumfang sowie der leichten Bedienbarkeit. Hinsichtlich des Datenschutzes und der umfangreichen Analyse Ihrer Daten sollten Sie Lösungen ins Auge fassen, die frei und kostenlos sind und für studentische Zwecke ebenfalls zahlreiche Vorteile haben.
- [NextCloud](https://nextcloud.com/), an der TUHH unter https://www.tuhh.de/rzt/services/dateidienste/cloud.html
- [GitLab](https://about.gitlab.com/), an der TUHH unter https://collaborating.tuhh.de/
### Hostingdienste
Um freie Serversoftware ausprobieren zu können, muss nicht gleich ein eigener Rechner aufgesetzt werden. Zahlreiche Anbieter stellen für wenig Geld sehr umfangreiche Lösungen bereit, auf denen ohne langfristige Verpflichtungen Neues ausprobiert werden kann. Neben vielen anderen Anbietern nenne ich im Folgenden zwei, mit denen ich mich persönlich gut auskenne und die daher für Lehr-Lernzwecke empfehlen kann. Daneben gibt es zahlreiche Mitbewerber.
- [Digital Ocean](https://www.digitalocean.com/)
- [Uberspace](https://uberspace.de/)
## Auftrag
- Arbeiten Sie das Jupyter Notebook [Komplexe Datenstrukturen filtern](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/05-2017-11-17/komplexe-datenstrukturen.ipynb) durch.
# Arbeitsauftrag
Aufbauend auf den Jupyter Notebooks [Ungeordnete Liste mit Python generieren](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/04-2017-11-10/00_Ungeordnete%20_Liste_mit_Python_generieren.ipynb), [Die pythonische Küche](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/die_pythonische_kueche.ipynb) und [Komplexe Datenstrukturen filtern](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/05-2017-11-17/komplexe-datenstrukturen.ipynb) sollen Sie üben, verschiedene HTML-Fragmente zu generieren.
## Ziele
- Sie können souverän in einem Jupyter Notebook arbeiten.
- Sie können aus komplexeren Datenstrukturen verschiedene HTML-Fragmente generieren.
## Aufgaben
1. Erweitern Sie die Tierdatenbank aus dem Jupyter Notebook [Komplexe Datenstrukturen filtern](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/05-2017-11-17/komplexe-datenstrukturen.ipynb) um eine Bildinformation für jedes Tier!
1. Der Löwe hat heute Geburtstag und ist nun ein Jahr älter. Ändern Sie den entsprechenden Wert in der Datenbank.
1. Das Krokodil hat ein neues Zuhause gefunden. Löschen Sie seinen Datensatz mit `del`.
1. Erstellen Sie ein HTML-Fragment, das ein Bild eines jeden Tieres zusammen mit seinen Daten zeigt.
1. Setzen Sie die dynamische Generierung des HTML mit Python um. Nutzen Sie die Daten aus dem Tierheim-Beispiel oder eigene.
## Allgemeine Hinweise
- **Führen Sie die Aufgaben in einer Kopie des Jupyter Notebook [Komplexe Datenstrukturen filtern](https://collaborating.tuhh.de/itbh-inf-wise201718/jupyter-notebooks/blob/master/05-2017-11-17/komplexe-datenstrukturen.ipynb) durch.**
- Verschaffen Sie sich Erfolgserlebnisse, keinen Frust!
- Tun Sie das gleiche mehrfach, das übt und gibt Ihnen das Gefühl, Ihre Werkzeuge zu beherrschen.
- Stellen Sie sich selbstgesetzten Herausforderungen!
- Gehen Sie kleinschrittig vor.
### Abgabe
Geben Sie Ihr Ergebnis bis zum **Mittwoch, d. 22.11.2017**, ab:
- Jupyter Notebooks mit Ihren Lösungen
- Alle weiteren Dateien, die zu diesen Lösungen geführt haben oder dafür notwendig sind.
**Wichtig!** Die Abgabe erfolgt bitte nicht mehr per Mail, sondern wie in der Anleitung ["Studienleistungen in GitLab hochladen"](../../material/sitzungsmaterial/studienleistungen-in-gitlab-hochladen.md) beschrieben. Nur so kann das Dozententeam detailliertes und konstruktives Feedback zu Ihrer Arbeit geben!
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment