"**Herzlichen Glückwunsch! Sie haben die erste Hürde gemeistert. :)**\n",
"\n",
"Diese Notebooks sind im Wesentlichen eine Übersetzung der 2. Ausgabe des Buches [Think Python](http://greenteapress.com/wp/think-python-2e/) von Allen B. Downey.\n"
"Diese Notebooks sind im Wesentlichen eine Übersetzung der 3. Ausgabe des Buches [Think Python](https://allendowney.github.io/ThinkPython/) von Allen B. Downey.\n"
]
},
{
...
...
@@ -224,11 +224,24 @@
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"pygments_lexer": "ipython3"
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
# Seminar Problemorientierte Programmierung
Falls Sie im Python Programmierkurs sind und dies ihr erstes geöffnetes Jupyter Notebook ist:
**Herzlichen Glückwunsch! Sie haben die erste Hürde gemeistert. :)**
Diese Notebooks sind im Wesentlichen eine Übersetzung der 2. Ausgabe des Buches [Think Python](http://greenteapress.com/wp/think-python-2e/) von Allen B. Downey.
Diese Notebooks sind im Wesentlichen eine Übersetzung der 3. Ausgabe des Buches [Think Python](https://allendowney.github.io/ThinkPython/) von Allen B. Downey.
%% Cell type:markdown id: tags:
<h1>Table of Contents<spanclass="tocSkip"></span></h1>
<divclass="toc"><ulclass="toc-item"><li><span><ahref="#Lernziele-und-Ablauf-diese-Seminars"data-toc-modified-id="Lernziele-und-Ablauf-diese-Seminars-1"><spanclass="toc-item-num">1 </span>Lernziele und Ablauf diese Seminars</a></span></li><li><span><ahref="#Tipps"data-toc-modified-id="Tipps-2"><spanclass="toc-item-num">2 </span>Tipps</a></span></li><li><span><ahref="#Wiederkehrende-Abschnitte"data-toc-modified-id="Wiederkehrende-Abschnitte-3"><spanclass="toc-item-num">3 </span>Wiederkehrende Abschnitte</a></span></li><li><span><ahref="#Hinweise-zur-Benutzung-von-Jupyter"data-toc-modified-id="Hinweise-zur-Benutzung-von-Jupyter-4"><spanclass="toc-item-num">4 </span>Hinweise zur Benutzung von Jupyter</a></span><ulclass="toc-item"><li><span><ahref="#Jupyter-Notebook-Grundlagen-und-Informationen"data-toc-modified-id="Jupyter-Notebook-Grundlagen-und-Informationen-4.1"><spanclass="toc-item-num">4.1 </span>Jupyter Notebook Grundlagen und Informationen</a></span></li><li><span><ahref="#Standardbrowser"data-toc-modified-id="Standardbrowser-4.2"><spanclass="toc-item-num">4.2 </span>Standardbrowser</a></span><ulclass="toc-item"><li><span><ahref="#Anleitungen"data-toc-modified-id="Anleitungen-4.2.1"><spanclass="toc-item-num">4.2.1 </span>Anleitungen</a></span></li></ul></li><li><span><ahref="#Shortcuts"data-toc-modified-id="Shortcuts-4.3"><spanclass="toc-item-num">4.3 </span>Shortcuts</a></span><ulclass="toc-item"><li><span><ahref="#Beispiel:-Markdown-Zelle-vs.-Code-Zelle"data-toc-modified-id="Beispiel:-Markdown-Zelle-vs.-Code-Zelle-4.3.1"><spanclass="toc-item-num">4.3.1 </span>Beispiel: Markdown Zelle vs. Code Zelle</a></span></li></ul></li></ul></li><li><span><ahref="#Exkurs:-Was-mir-an-Python-gefällt:"data-toc-modified-id="Exkurs:-Was-mir-an-Python-gefällt:-5"><spanclass="toc-item-num">5 </span>Exkurs: Was mir an Python gefällt:</a></span></li></ul></div>
%% Cell type:markdown id: tags:
## Lernziele und Ablauf diese Seminars
Unser Lernziel ist, dass Sie Programmieren lernen (mit Python :-)). Bis dahin ist es ein weiter Weg. Der beste Tipp ist: üben, üben, üben.
Das Seminar wird wie folgt ablaufen:
1. Sie arbeiten als Pair-Programming-Team diese Jupyter-Notebooks durch.
- Währenddessen bin ich für Sie da, um Fragen zu beantworten und Probleme zu lösen
- Nutzen Sie gerne auch das [gemeinsame Etherpad](https://etherpad.gwdg.de/p/Pro2P), um Probleme, Fragen oder fehlerhaften Code zu posten.
2. Alle ca. 15 Minuten unterbrechen wir das Programmieren und Sie wechseln die Rollen (NavigatorIn <--> FahrerIn)
3. Die Schritte 1. und 2. wiederholen wir bis zum Ende des Seminars
4. Zuhause arbeiten Sie gemeinsam das durch, was Sie im Seminar nicht geschafft haben. Dies gilt besonders für die Aufgaben
- Wir werden im Seminar entscheiden, bis zu welchem Notebook Sie kommen sollten.
## Tipps
- Arbeiten Sie die Notebooks selbständig im Team durch und probieren Sie möglichst viel aus. Seien Sie kreativ, neugierig und manchmal auch destruktiv. Denn auch durch Fehler lernen Sie.
- Sie können alles in Ihrem Notebook bearbeiten ... nutzen Sie diese Möglichkeit. Ergänzen Sie also Text, löschen Sie, was Sie überflüssig finden, fügen Sie Ihre eigenen Notizen oder Programme hinzu. Dieses Notebook kann Ihr "Portfolio" werden: eine Demonstration dessen, was Sie schon können.
- Denken Sie daran, alle Code-Blöcke auszuführen. "Unbekannter" Code führt in Jupyter häufig zu leicht vermeidbaren Fehlern.
- Falls Sie mal nicht weiterkommen: helfen Sie sich gegenseitig und versuchen Sie verschiedene Dinge. Schreiben Sie Ihr Problem z.B. einfach mal ganz genau hier im Notebook auf. Oft hilft das Aufschreiben eines Problems schon bei der Lösung eines Problems.
## Wiederkehrende Abschnitte
-**Exkurse** sind Material, welches Sie sich nur anschauen brauchen, falls es Sie interessiert. Bitte schauen Sie sich die Exkurse eher zu Hause an, als während des Seminars, damit Sie vorwärts kommen. Die Inhalte der Exkurse sind nicht notwendig, um vorwärts zu kommen, aber hilfreich, um mehr zu lernen.
-**Debugging-Abschnitte** erklären, wie Sie Fehler finden und beheben können.
-**Glossar-Abschnitte** listen die Begriffe auf, die im Kapitel vermittelt wurden. Es ist eine gute Übung für zu Hause, jeden Begriff dort noch einmal in eigenen Worten zu definieren.
- Schließlich gibt es **Übungen**, diese sollten Sie unbedingt durchführen und erst fortfahren, wenn Sie die Aufgaben lösen konnten und verstanden haben.
%% Cell type:markdown id: tags:
## Hinweise zur Benutzung von Jupyter
### Jupyter Notebook Grundlagen und Informationen
- open-source, browserbasiertes Tool für verschiedene Programmiersprachen (wir benutzen Python)
-**Vorteil**: Code, Visualisierungen und Text / Erklärungen in einem Dokument
- Notebook besteht aus Blöcken bzw. Zellen
- Unter der Zelle wird der Rückgabewert des letzten Statements ausgegeben
- Quellcode kann auf mehrere Blöcke aufgeteilt werden (Variablen behalten ihre Gültigkeit/Sichtbarkeit)
- Es gibt zwei Arten von Blöcken: "Code" ist für Python-Code, "Markdown" ist für Texte, die Sie mit Hilfe der [Markdown-Syntax](https://de.wikipedia.org/wiki/Markdown#Auszeichnungsbeispiele) formatieren können.
- Sie können auf Text doppelt klicken, um sich den Markdown-Quellcode anzuzeigen. Probieren Sie es mit diesem Text aus.
- durch die Tastenkombination "Strg" und "Enter" oder durch Drücken von dem "Run" Button oben im Menü kommen Sie wieder in den Lesemodus
- Wenn Sie mal etwas "kaputtgespielt" haben, hilft es evtl., im "Kernel"-Menü den "Restart"-Eintrag auszuwählen.
### Standardbrowser
Bitte verwenden Sie **nicht** Safari oder Internet Explorer. Auch mit Windows Edge gab es in der Vergangenheit Probleme. Wir empfehlen die Verwendung von Firefox, aber auch Google Chrome lief in der Vergangenheit problemlos. Wenn Sie unsicher sind, was ihr aktueller Standardbrowser ist, folgen Sie einfach der folgenden Anleitung zum Ändern des Standardbrowsers und gehen Sie sicher, dass der richtige Standardbrowser ausgewählt ist.
#### Anleitungen
**Änderung des Standardbrowsers in...**
*macOS:*
1. Öffnen sie die Systemeinstellungen.
2. Klicken Sie auf „Allgemein“.
3. Wählen Sie unter „Standard-Webbrowser“ den gewünschten Browser aus.
*Ubuntu Linux:*
1. Öffnen Sie die System Settings.
2. Klicken Sie auf „Applications“.
3. Wählen Sie in der linken Spalte „Default Applications“ aus.
4. Klicken Sie in der Spalte rechts davon auf „Web Browser“.
5. Wählen Sie „in the following browser:“ aus.
6. Wählen Sie den gewünschten Browser aus.
*Windows:*
1. Öffnen Sie die Systemsteuerung.
2. Klicken Sie auf „Standardprogramme“.
3. Klicken Sie auf „Standardprogramme festlegen“.
4. Klicken Sie in der Liste auf den gewünschten Browser.
5. Klicken Sie dann auf „Dieses Programm als Standard festlegen“.
### Shortcuts
**Bitte probieren Sie alle unten stehenden Befehle und verstehen Sie, was gemacht wird. Das ist die Basis, die Sie für das Arbeiten mit Jupyter Notebooks brauchen.**
Übersicht: *Menü Help -> Keyboard Shortcuts*
Wichtigste Shortcuts:
-*Enter*: Editiermodus für selektierte Zelle (grün umrandet)
-*Shift + Enter*: Selektierte Zelle ausführen und in nächste Zelle springen
Im Editiermodus:
-*Tab*: Autocomplete oder Einrücken
-*Shift + Tab*: Einrücken rückwärts
Im Kommando-/Lesemodus:
-*B*: Zelle darunter einfügen
-*A*: Zelle darüber einfügen
-*DD*: Zelle löschen
-*M*: Zelltyp Markdown (für formatierte beschreibende Texte, zB diese Zelle)
-*Y*: Zelltyp Code (Default)
%% Cell type:markdown id: tags:
#### Beispiel: Markdown Zelle vs. Code Zelle
%% Cell type:markdown id: tags:
Dies ist eine **Markdown Zelle**. Hier kann jeglicher Text geschrieben werden. Durch Strg+Enter wird er in den Lesemodus gebracht, durch ein einfach Enter (oder Doppelklick) in den Editiermodus.
Hier werden keine Rechnungen ausgeführt, siehe:
5+3
In diesen Feldern werden Erklärungen, Aufgabenstellungen und schriftliche Antworten von euch stehen.
%% Cell type:code id: tags:
```
```python
# Das ist eine **Code Zelle**, bei Strg+Enter wird die folgende Rechnung ausgeführt und darunter angezeigt
# Mit Enter kommt man in den Editiermodus, mit Strg+Enter wird der Code ausgeführt.
# Der Text kann hier nur stehen, da eine Raute am Anfang der Zeile steht.
# Dadurch werden diese Zeilen nicht ausgeführt.
31+11
# In diesen Zellen wird der Python Code geschrieben, manchmal müssen Sie ihn schreiben,
# manchmal steht der Code schon dort und muss von Ihnen nur ausgeführt werden.
```
%% Cell type:markdown id: tags:
## Exkurs: Was mir an Python gefällt:
In dieser Rubrik, die normalerweise am Anfang eines Kapitels steht, möchte ich Ihnen zeigen, wofür ich Python nutze und warum ich es mag. Sie werden vielleicht noch nicht verstehen, was ich genau mache, aber Sie sehen damit schon einmal die Möglichkeiten von Python und können später darauf zurückgreifen. Da dies ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.
**Hier müssen Sie den Code NIE verändern. Einfach Ausführen durch: *Strg+Enter* oder im Menü unter *> Run*.**
*Sollten Sie den Code doch einmal versehentlich verändert haben, sodass der Exkurs nicht mehr korrekt funktioniert, können Sie das Jupyter-Notebook erneut in Gitlab herunterladen*
Ich finde toll, dass ich mit Python ganz einfach Zufallsexperimente durchtesten kann. Das hilft mir, Stochastik besser zu verstehen. Z.B. das Würfeln mit zwei Würfeln:
Dieses Notebook ist als freies Werk unter der Lizenz [Creative Commons Attribution-NonCommercial 3.0 Unported](http://creativecommons.org/licenses/by-nc/3.0/) verfügbar. Sie dürfen die Inhalte kopieren, verteilen und verändern, solange Sie die Urheber nennen und sie nicht für kommerzielle Zwecke nutzen.