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

Merge branch 'master' into pandoc-pdf

parents 4e96b974 98cafb09
......@@ -16,3 +16,4 @@ _book
*.pdf
notizen-kurs.md
book.md
......@@ -30,6 +30,9 @@
* [[04] 2017-05-08](sitzungen/04-Mo-2017-05-08.md)
* [Arbeitsauftrag INF1](sitzungen/auftraege/04-Mo-2017-05-08-auftrag-inf1.md)
* [Arbeitsauftrag INF2](sitzungen/auftraege/04-Mo-2017-05-08-auftrag-inf2.md)
* [[05] 2017-05-15](sitzungen/05-Mo-2017-05-15.md)
* [Arbeitsauftrag INF1](sitzungen/auftraege/05-Mo-2017-05-15-auftrag-inf1.md)
* [Arbeitsauftrag INF2](sitzungen/auftraege/05-Mo-2017-05-15-auftrag-inf2.md)
## Material
* [Webtechnologien](material/webtechnologien.md)
......@@ -44,24 +47,23 @@
* [Lernleitfäden](material/typen/lernleitfaden.md)
* [Spickzettel](material/typen/cheatcheets.md)
* [Referenzen](material/typen/referenzen.md)
- [Sitzungsmaterial](material/sitzungsmaterial/einleitung.md)
- [Studienleistungen mit GitLab hochladen](material/sitzungsmaterial/studienleistungen-in-gitlab-hochladen.md)
- [Experiment: Client-/Serverkommunikation](material/sitzungsmaterial/analyse-client-server.md)
- [Sechszeiler in Markdown](material/sitzungsmaterial/sechszeiler-in-markdown.md)
- [Flask auf der Serverseite](material/sitzungsmaterial/flask/flask-auf-der-serverseite.md)
- [Request-Daten mit Flask auswerten](material/sitzungsmaterial/flask/request-daten-mit-flask-auswerten.md)
- [Aus statisch mach dynamisch](material/sitzungsmaterial/flask/aus-statisch-mach-dynamisch.md)
- [Installation von *remote-sync*](material/sitzungsmaterial/flask/installation-von-remote-sync.md)
- [Einrichtung Raspberry Pi](material/sitzungsmaterial/einrichtung-rpi.md)
* [Sitzungsmaterial](material/sitzungsmaterial/einleitung.md)
* [Studienleistungen mit GitLab hochladen](material/sitzungsmaterial/studienleistungen-in-gitlab-hochladen.md)
* [Experiment: Client-/Serverkommunikation](material/sitzungsmaterial/analyse-client-server.md)
* [Sechszeiler in Markdown](material/sitzungsmaterial/sechszeiler-in-markdown.md)
* [Einrichtung Raspberry Pi](material/sitzungsmaterial/einrichtung-rpi.md)
* [Linux-Quickstart](material/sitzungsmaterial/linux.md)
* [Flask auf der Serverseite](material/sitzungsmaterial/flask/flask-auf-der-serverseite.md)
* [Request-Daten mit Flask auswerten](material/sitzungsmaterial/flask/request-daten-mit-flask-auswerten.md)
* [Aus statisch mach dynamisch](material/sitzungsmaterial/flask/aus-statisch-mach-dynamisch.md)
* [Installation von remote-sync](material/sitzungsmaterial/flask/installation-von-remote-sync.md)
## Referenzen
* [Literatur](material/literatur.md)
## Anhang
* [Atom Editor](anhang/atom/atom.md)
* [Packages](anhang/atom/packages.md)
* [Linux-Quickstart](material/linux.md)
* [Atom Editor](./anhang/atom/atom.md)
* [Packages](./anhang/atom/packages.md)
## Meta
* [Impressum und Kontakt](meta/impressum.md)
......@@ -26,7 +26,7 @@ Die folgenden Schritte beschreiben **für Lehrende**, wie GitLab eingerichtet we
Um die Umgebung von GitLab kennen zu lernen und die Teilnehmenden zunächst nicht mit der steilen Lernkurve von Git zu überfordern, werden Dateien erst einmal in der Art eines einfachen Dateiuploads bereitgestellt.
1. Dazu richtet jeder Teilnehmer ein neues Projekt mit dem Namen *Studienleistungen* ein.
1. Dazu richtet jeder Teilnehmer ein neues Projekt mit dem Namen *Studienleistungen_[Ihr Name]* ein.
1. Anschließend erstellt er die *README.md*, da mit der ersten Datei im Repository überhaupt erst der Menüpunkt *Repository* sichtbar wird.
1. Nun wechselt der Teilnehmer auf die Ansicht *Repository* und erstellt einen Ordner mit dem Datum der Aufgabe, z.B. `zu-03-Mo-2017-04-24`. Es wird automatisch eine Datei `.gitkeep` angelegt, da leere Ordner in GitLab nicht zugelassen sind. Die Datei kann gelöscht werden, sobald eine weitere Datei existiert.
![Anlegen eines neuen Ordners im Repository](abb/ordner-anlegen.gif)
......
......@@ -45,7 +45,7 @@ Die eigene Subgroup findet man am besten durch den Einstieg in die Gruppe der Ve
Benutzer_innen in GitLab können eine bestimmte Anzahl von Projekten anlegen, in der Regel fünf.
Im folgenden werden Sie ein neues Projekt anlegen und ihm den Namen *Studienleistungen* geben. Hier kann alles hochgeladen werden, was Sie im Laufe der kommenden Sitzungen erarbeiten.
Im folgenden werden Sie ein neues Projekt anlegen und ihm den Namen *Studienleistungen_[Ihr Name]* geben. Hier kann alles hochgeladen werden, was Sie im Laufe der kommenden Sitzungen erarbeiten.
Für das Anlegen eines Projekts starten Sie in der Subgroup mit Ihrem Namen.
......
......@@ -14,10 +14,20 @@ In der heutigen Veranstaltung werden Sie gemeinsam verschiedene Raspberry Pi-Com
## Geplante Inhalte und Ablauf
1. Feedback zu den Arbeitsaufträgen
1. Referatsthemen
1. Ausleihe Raspberry Pi
1. Gruppenübergreifende Einrichtung des Raspberry Pi
1. Feedback zu den Arbeitsaufträgen
1. Referatsthemen
## Angesprochene Inhalte in der Veranstaltung
- Linux-Distributionen
- Debian
- Raspbian
- Ubuntu
- Fedora
- Redhat
- Übersicht verschiedener Microcontroller für Unterricht und Lehre (Calliope, BBC micro:bit, Arduino, Raspberry Pi)
## Aufgabe in der Sitzung
......
# [05] Montag, 15. Mai 2017
In der heutigen Veranstaltung werden Sie gemeinsam Ihre erstellten Webseiten auf dem Raspberry Pi veröffentlichen.
## Ziele
- Sie können eine SSH-Verbindung von Ihrem Rechner zum Raspberry Pi herstellen.
- Sie können Dateien über eine verschlüsselte Verbindung (SFTP) zwischen Ihrem Rechner und dem Raspberry übertragen.
- Sie kennen die Protokolle SSH, FTP und SFTP
- Sie kennen erste Linux-Befehle und können sich damit auf dem Raspberry orientieren.
- Sie können einen einfachen Entwicklungsserver auf Basis von Python auf dem Raspberry starten und Webdokumente darüber ausliefern.
- INF2: Sie können einfache Python-Skripte schreiben und ausführen.
<img style="max-width: 75%" src="https://c1.staticflickr.com/7/6170/6184017489_5e23356b49_b.jpg" title="<a href='https://www.flickr.com/photos/evablue/6184017489'>bitnorth 2011 - 91</a> von <a href='https://www.flickr.com/photos/evablue/'>Eva Blue</a>, <a href='https://creativecommons.org/licenses/by/2.0/'>CC-BY</a>" alt="bitnorth 2011 - 91 von Eva Blue">
## Geplante Inhalte und Ablauf
1. Feedback zu den Arbeitsaufträgen
1. Verteilung der Referatsthemen
1. Crashkurs Linux-Kommandozeile
1. Sitzungsaufgabe
## Crashkurs Linux-Kommandozeile
Sie lernen heute einige Befehle kennen, mit denen Sie auf einem entfernten Rechner administrative Aufgaben durchführen können. Eine Übersicht dieser Befehle finden Sie [im Sitzungsmaterial](/material/sitzungsmaterial/linux.md).
Wir verbinden uns gemeinsam auf den Raspberry und führen dort einige Aufgaben durch, die den Rechner für die kommenden Aufgaben vorbereiten.
## Aufgabe in der Sitzung
In der vergangenen Sitzung hatten Sie gemeinsam einen Raspberry Pi eingerichtet und sich per SSH mit ihm verbunden. Heute geht es darum, Dateien zwischen einem lokalen Rechner (z.B. Ihrem Laptop) und einem "entfernten" Rechner (dem Raspberry Pi) zu übertragen.
Das arbeitsprozessnahe Szenario hierfür ist das Bereitstellen von Webseiten für einen Kunden zur Ansicht und Abnahme.
### Vorbereitung
1. Installieren Sie, sofern noch nicht vorhanden, das FTP-Programm [FileZilla Client](https://filezilla-project.org/) auf Ihrem Rechner.
### Anmerkung
Derzeit ist die Pythonversion auf dem Raspberry 2.7.x. Eine Version Python 3.x ist ebenfalls installiert und muss mit dem Befehl `python3` angesprochen werden.
### Schritte
1. **Als Admin** legen Sie im Homeverzeichnis des Users `pi` jeweils einen Ordner für die Personen an, die auf dem Raspberry arbeiten.
1. **Als Endkunde** verbinden Sie sich mit FileZilla auf den Raspberry und laden Ihr Webseitenkonstrukt in Ihren Ordner hoch.
1. **Als Endkunde** starten Sie auf dem Raspberry den Entwicklungswebserver mit dem Befehl `python -m SimpleHTTPServer [Portnummer]` **in diesem Ordner**. Die Referenz für dieses kleine Programm finden Sie [im Netz](https://docs.python.org/2/library/simplehttpserver.html#module-SimpleHTTPServer).
Achten Sie darauf, dass dieser Entwicklungswebserver unter Python 3.x [anders aufgerufen wird](https://docs.python.org/3.4/library/http.server.html#module-http.server): `python3 -m http.server [Portnummer]`.
1. Rufen Sie auf Ihrem lokalen Rechner Ihre Website vom Raspberry Pi ab. Welche Adresse müssen Sie dafür im Browser eingeben? Wie setzt sich diese Adresse zusammen?
1. Teilen Sie in Mattermost Ihre Webadresse mit den anderen und fordern Sie sie auf, Ihre Webpräsenz zu besuchen!
# Auftrag zu [06], 2017-05-22
Der folgende Arbeitsauftrag ist für die Gruppe **INF1** gedacht.
## Ziele
* Sie können ein Webseitenkonstrukt auf einem öffentlichen Server bereitstellen.
## Inhalte und Aufgaben des Auftrags
### 1. HTML & CSS
Diese Woche geht es darum, dass Sie einmal eine Website bei einem "amtlichen" Webhoster online stellen.
#### Aufgaben
1. Erstellen Sie ein HTML5-konformes, sehr gut formatiertes **einfaches** HTML-Dokument, **mit dem Sie keine Rechtsverletzungen begehen**. Das bedeutet, dass Sie bei diesem Dokument auf jegliche Inhalte verzichten, an denen andere Rechte haben. Schreiben Sie am besten eine eigene Geschichte oder verwenden Sie [Blindtext](http://www.blindtextgenerator.de/) und [Dummybilder](http://placekitten.com/). Wenn Sie sich mit [Creative Commons](https://de.creativecommons.org/) auskennen, verwenden Sie gern Inhalte, die korrekt zitiert und ausgezeichnet sind.
1. Registrieren Sie sich bei [Uberspace](https://uberspace.de/register) für einen 30-Tage-Account. Lesen Sie sich die [Geschäftsbedingungen](https://uberspace.de/privacy) genau durch und nehmen Sie zur Kenntnis, dass Sie nach 30-Tagen aufgefordert werden, mindestens € 1,- monatlich für den Erhalt Ihres Webspace zu zahlen. Keine Sorge, wenn Sie das nicht tun, bekommen Sie zwei Warnmails, dass der Account bei Nichtzahlung deaktiviert wird. Sie können also getrost alles im Sande verlaufen lassen, oder - für sehr wenig Geld eine tolle Sandkiste mieten.
1. Lesen Sie [die Anleitung zum Bereitstellen von Webseiten](https://wiki.uberspace.de/start:web) und folgen Sie den dort angegeben Schritten, um Ihr HTML-Dokument zu veröffentlichen.
1. Posten Sie die URL zu Ihrer Website in Mattermost.
1. Stellen Sie das HTML & CSS der Seite in GitLab ein.
### 2. Referat zu Lernmaterialtypen
#### Aufgaben
Teilen Sie in Mattermost Ihren Wunschtermin für Ihr Referat mit - sonst wird das Dozententeam die Festlegung vornehmen.
## Abgabetermin
* Geben Sie möglichst früh eine erste Version ab. Sie erhalten dann Feedback zu Ihrer Arbeit.
* Geben Sie die finale Version am **Sonntag, den 21.05.2017**, ab.
**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 an Ihrem Text leisten!
# Auftrag zu [06], 2017-05-22
Der folgende Arbeitsauftrag ist für die Gruppe **INF2** gedacht.
## Ziele
- Sie können einfache Programme in Python schreiben.
- Sie kennen Variablen, Datentypen und Kontrollstrukturen in Python.
- Sie können kollaborativ schwierige Aufgaben lösen und sind in der Lage, sich bei anderen Hilfe zu holen.
## Inhalte und Aufgaben des Auftrags
### 1. Sechszeiler
Arbeiten Sie weiter an Ihrem Sechszeiler. Machen Sie ihn zu einem Vielzeiler und fangen Sie an, längere Texte zu Ihrem Vorhaben zu verfassen. Lassen Sie sich von [dem Merkblatt der Uni Bielefeld zum Verfassen eines Exposés](http://www.uni-bielefeld.de/soz/ab3/wissenschaftlich-arbeiten/pdf/Exposes_schreiben_2016-03.pdf) leiten. Es ähnelt stark dem Sechszeiler-Merkblatt, geht aber weiter und enthält weitergehende Hinweise.
### 2. Übungen in Python
Vor dem Hintergrund Ihrer Forschungsvorhaben richtet sich der Python-Stoff der Veranstaltung an typischen Problemstellungen der Webentwicklung aus. Die folgenden Übungen sind Bausteine, mit denen Sie in Ihren Projekten wahrscheinlich alle zu tun haben werden.
#### Aufgaben
1. Lesen Sie [die Einführung zu den Sprachbestandteilen von Python](http://www.python-kurs.eu/python3_kurs.php), aber vor allem die folgenden Unterseiten des Tutorials:
- [Ausführen von Python-Code](http://www.python-kurs.eu/python3_skript_ausfuehren.php)
- [Strukturierung durch Einrückung](http://www.python-kurs.eu/python3_bloecke.php)
- [Datentypen und Variablen](http://www.python-kurs.eu/python3_variablen.php)
- [Ausdrücke und Operatoren](http://www.python-kurs.eu/python3_operatoren.php)
- [Sequentielle Datentypen](http://www.python-kurs.eu/python3_sequentielle_datentypen.php)
- [Listen](http://www.python-kurs.eu/python3_listen.php)
Lesen Sie nicht nur, sondern führen Sie die Programme auch aus, indem Sie Dateien in Atom erstellen, die Sie dann ausführen. **Wichtig!** Das Tutorial verwendet [die interaktive Shell](http://www.python-kurs.eu/python3_interaktiv.php), eine Art, Python auszuprobieren, die sehr sinnvoll ist. Es macht aber in Anbetracht der wenigen Zeit, die wir haben, wenig Sinn, mit dieser Methode zu beginnen. In der kommenden Woche werden wir Flask-Scripte in Dateien schreiben - Grund genug, jetzt schon damit anzufangen.
1. Lösen Sie die folgende Aufgabe. Gegeben ist eine Liste von Tieren in Form des Python-Datentyps *list*:
`tiere = ['Igel', 'Giraffe', 'Hirsch', 'Fliege', 'Iltis']`
Geben Sie zunächst mithilfe [eines Schleifenkonstrukts](http://www.python-kurs.eu/python3_for-schleife.php) die Werte aus.
Geben Sie nun die Werte in Form [einer ungeordneten HTML-Liste](https://www.w3schools.com/tags/tag_ul.asp) aus.
Die Aufgabe hat es in sich, sowohl bezüglich des Lesepensums als auch hinsichtlich der Transferleistung, die Sie mit der Aufgabe erbringen sollen. Teilen Sie sich die Zeit bis zum kommenden Veranstaltungstermin gut ein, arbeiten Sie mit anderen zusammen (in der Präsenz oder über Mattermost). Stellen Sie Ihre Fragen unmittelbar bei der Arbeit an der Aufgabe. Wenn etwas nicht funktioniert, melden Sie sich beim Dozententeam. Es sollte nicht so sein, dass Sie am kommenden Montag berichten, dass Sie gar kein Python auf Ihrem Rechner installieren konnten.
## Abgabetermin
* Geben Sie möglichst früh eine erste Version ab. Sie erhalten dann Feedback zu Ihrer Arbeit.
* Geben Sie die finale Version am **Sonntag, den 21.05.2017**, ab.
**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 an Ihrem Text leisten!
# Fahrplan
| Nr. | Datum | Inhalte INF2 | Auftrag Inhalte INF1 | Auftrag | |
| --- | -------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| 1 | 03.04.17 | Vorstellung, Vorbereitung, Organisatorisches | Installation bzw. Einrichtung Python auf dem eigenen Rechner | Vorstellung, Vorbereitung, Organisatorisches | [Voraussetzungen](/voraussetzungen/zusammenfassung.html) |
| 2 | 10.04.17 | [Grundlagen HTML-Formulare](/sitzungen/02-Mo-2017-04-10.md) | Ideensammlung Projekt; [Arbeitsauftrag](/sitzungen/02-auftrag-inf2.md) | Vorstellung Arbeitsauftrag; [Grundlagen HTML und CSS](sitzungen/02-Mo-2017-04-10.md) | Selbstständige Erarbeitung HTML/CSS-Grundlagen am [Arbeitsauftrag](/sitzungen/02-auftrag-inf1.md) |
| - | Ostermontag | - | - | - | - |
| 3 | 24.03.17 | [HTML-Formularversand und serverseitige Datenverarbeitung](/sitzungen/03-Mo-2017-04-24.md) | [Anfertigung eines 6-Zeiler-Exposés; Ausarbeitung Formular](/sitzungen/auftraege/03-Mo-2017-04-24-auftrag-inf2.md) | [Referatswahl: Lernmaterialtypen; Navigation & Bilder mit HTML/CSS](/sitzungen/03-Mo-2017-04-24.md) | [Navigationen & Bilder; Referat zu Lernmaterialtypen](/sitzungen/auftraege/03-Mo-2017-04-24-auftrag-inf1.md) |
| - | Tag der Arbeit | - | - | - | - |
| 4 | 08.05.17 | Einrichtung Raspberry Pi | Schreiben: Einleitung für das eigene Projekt | Technische Zusammenhänge des WWW | Verfeinerung HTML-Seite; Referatsvorbereitung |
| 5 | 15.05.17 | Bereitstellung Formularwebsite auf RPI | Einrichtung Hosting für INF1 auf RPI | Referat; Grundlagen Linux (Bash-Befehle) | Eine HTML-Seite auf den RPI laden |
| 6 | 22.05.17 | Vorstellung Flask | Aufgabe Flask | Referat | |
| 7 | 29.05.17 | Wiederholung und Rückschau | Schreiben: Flask und Formulare | Referat | |
| - | Pfingstmontag | - | - | - | - |
| 8 | 12.06.17 | Arbeit am Projekt | | Referat | |
| 9 | 19.06.17 | Arbeit am Projekt | Schreiben: Versuchsanordnung | Referat | |
| 10 | 26.06.17 | Arbeit am Projekt | | | |
| 11 | 03.07.17 | Arbeit am Projekt | | | |
| 12 | 10.07.17 | Abschlussbesprechung, Feedback | Anfertigung der Hausarbeit | Abschlussbesprechung, Feedback | Vorbereitung mdl. Prüfung |
| Nr. | Datum | Inhalte INF2 | Auftrag | Inhalte INF1 | Auftrag | |
| --- | -------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | --- |
| 1 | 03.04.17 | Vorstellung, Vorbereitung, Organisatorisches | Installation bzw. Einrichtung Python auf dem eigenen Rechner | Vorstellung, Vorbereitung, Organisatorisches | [Voraussetzungen](/voraussetzungen/zusammenfassung.html) | |
| 2 | 10.04.17 | [Grundlagen HTML-Formulare](/sitzungen/02-Mo-2017-04-10.md) | Ideensammlung Projekt; [Arbeitsauftrag](/sitzungen/02-auftrag-inf2.md) | Vorstellung Arbeitsauftrag; [Grundlagen HTML und CSS](sitzungen/02-Mo-2017-04-10.md) | Selbstständige Erarbeitung HTML/CSS-Grundlagen am [Arbeitsauftrag](/sitzungen/02-auftrag-inf1.md) | |
| - | Ostermontag | - | - | - | - | |
| 3 | 24.03.17 | [HTML-Formularversand und serverseitige Datenverarbeitung](/sitzungen/03-Mo-2017-04-24.md) | [Anfertigung eines 6-Zeiler-Exposés; Ausarbeitung Formular](/sitzungen/auftraege/03-Mo-2017-04-24-auftrag-inf2.md) | [Referatswahl: Lernmaterialtypen; Navigation & Bilder mit HTML/CSS](/sitzungen/03-Mo-2017-04-24.md) | [Navigationen & Bilder; Referat zu Lernmaterialtypen](/sitzungen/auftraege/03-Mo-2017-04-24-auftrag-inf1.md) | |
| - | Tag der Arbeit | - | - | - | - | |
| 4 | 08.05.17 | Einrichtung Raspberry Pi | Schreiben: Einleitung für das eigene Projekt | Technische Zusammenhänge des WWW | Verfeinerung HTML-Seite; Referatsvorbereitung | |
| 5 | 15.05.17 | Administration Raspberry Pi | Sechszeiler erweitern; Übungen in Python | Bereitstellung einer Website auf dem Raspberry Pi | Bereitstellung einer Website bei einem öffentlichen Webhoster | |
| 6 | 22.05.17 | Vorstellung Flask | Aufgabe Flask | Referat | | |
| 7 | 29.05.17 | Wiederholung und Rückschau | Schreiben: Flask und Formulare | Referat | | |
| - | Pfingstmontag | - | - | - | - | |
| 8 | 12.06.17 | Arbeit am Projekt | | Referat | | |
| 9 | 19.06.17 | Arbeit am Projekt | Schreiben: Versuchsanordnung | Referat | | |
| 10 | 26.06.17 | Arbeit am Projekt | | | | |
| 11 | 03.07.17 | Arbeit am Projekt | | | | |
| 12 | 10.07.17 | Abschlussbesprechung, Feedback | Anfertigung der Hausarbeit | Abschlussbesprechung, Feedback | Vorbereitung mdl. Prüfung | |
Anmerkung: Zum Ende der Veranstaltung gibt es noch Lücken in der Planung. Das ist Absicht, um auf die sich entwickelnden Projekte eingehen zu können.
## Anmerkungen zum Fahrplan der Veranstaltung
......
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