{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Einführung und Installation:\n", "\n", "In diesem Notebook wollen wir Sie mit den Grundlagen des Kurses sowie dem Aufbau des Jupyter-Servers und des Jupyter-Notebooks vertraut machen. Bitte lesen Sie die folgenden Abschnitte aufmerksam durch und vervollständigen Sie die Installation des Kursmaterials am Ende des Notebooks.\n", "\n", "## Das Kursmaterial:\n", "Das Kursmaterial streckt sich über mehrere Lektionen und wird Ihnen die für das Physikalische Grundpraktikum benötigten Grundlagen der Datenauswertung vermitteln. Hierbei fokussieren sich die verschiedenen Lektionen auf verschiedene Aspekte der Datenauswertung mit Python, welche Sie im Zuge des Praktikums benötigen werden. \n", "\n", "Das Kursmaterial wird Ihnen hierbei als eine Art „Online-Workshop“ zur Verfügung gestellt. Das bedeutet Sie können die verschiedenen Lektionen sich jederzeit in Eigenverantwortung erarbeiten. Jede Lektion beinhaltet einige Beispiele mit Erklärungen, welche durch kleinere Aufgaben unterstützt werden. Beispiellösungen für die einzelnen Aufgaben befinden sich ebenfalls in den Notebooks. Sollte Ihnen mal eine Aufgabe nicht auf Anhieb gelingen schauen Sie bitte nicht direkt in die Lösungen. Knobeln Sie ruhig erst ein wenig herum und probieren Sie verschiedene Ansätze aus. \n", "\n", "Sie können das Kursmaterial selbstverständlich in Ihrem eigenen Tempo erarbeiten, wir empfehlen Ihnen jedoch sich auf ein bis zwei Lektionen pro Tag zu beschränken. Bevor Sie eine neue Lektion beginnen, schauen Sie, ob sie noch alle Aufgaben vom Vortag zufriedenstellend lösen können.\n", "\n", "Bitte beachten Sie, dass dieser Kurs Ihnen lediglich die Grundalgen liefert und zur Auffrischung Ihrer Kenntnisse gedacht ist. Wir empfehlen Ihnen daher vor beginn des Grundpraktikums bereits einen anderen Kurs, wie zum Beispiel Programmieren für Physiker oder Einführung in die Programmierung, gehört zu haben.\n", "\n", "\n", "## Jupyter-Notebooks ausführen\n", "\n", "In diesem Abschnitt wollen wir Ihnen erklären, wie Sie auf den Jupyter-Server der JGU zugreifen können und wie Sie sich hier zurecht finden können.\n", "\n", "### ZDV JupyterHub/JupyterServer\n", "\n", "Sie können das gesamte Kursmaterial sowie alle Versuchsauswertungen mit Hilfe des Jupyter Hub der ZDV (https://jupyterhub.zdv.uni-mainz.de) durchführen.\n", "\n", "Um Zugang zum Jupyter-Hub zu erhalten, müssen Sie sich zunächst mit Ihrem Uni-Account anmelden. Danach erscheint eine Auswahlseite, auf der Sie die Art der Jupyter Umgebung auswählen. Für das Praktikum ist die Standardumgebung die richtige Wahl, s. Bild unten.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Screenshot_ZDV_JupyterHub.png)\n", "\n", "Klicken Sie auf die Schaltfläche **Spawn**, dann öffnet sich das Notebook Dashboard.\n", "\n", "### Lokale Installation\n", "\n", "Sofern Sie nach diesem Kurs lieber mit einer lokalen Version von Jupyter arbeiten möchten, empfehlen wir Ihnen die Installation via Anaconda. Folgen Sie hierfür dem folgenden [Link](https://www.anaconda.com/distribution/). Wählen Sie zunächst das von Ihnen verwendete Betriebssystem aus und installieren Sie die letzte Python Version (64-Bit). Bei diesem Python-Kurs wird eine lokale Installation nicht gebraucht.\n", "\n", "## Ein neues Notebook-Dokument anlegen\n", "\n", "Ein neues Notebook kann jederzeit erstellt werden, entweder über das Dashboard oder über die Menüoption File ‣ Neu aus einem aktiven Notebook heraus. Das neue Notebook wird im selben Verzeichnis erstellt und öffnet sich in einem neuen Browser-Tab. Es wird auch als neuer Eintrag in der Notebookliste auf dem Dashboard angezeigt.\n", "\n", "![](https://jupyter-notebook.readthedocs.io/en/latest/_images/new-notebook.gif)\n", "\n", "## Notebooks öffnen\n", "\n", "Ein offenes Notebook hat genau eine interaktive Sitzung, die mit einem Kernel verbunden ist, der den vom Benutzer gesendeten Code ausführt und die Ergebnisse zurückgibt. Dieser Kernel bleibt aktiv, wenn das Webbrowser-Fenster geschlossen ist, und das erneute Öffnen desselben Notebooks über das Dashboard stellt die Verbindung zwischen der Webanwendung und demselben Kernel wieder her.\n", "\n", "## Die Notebook-Benutzeroberfläche\n", "\n", "Wenn Sie ein neues Notebook-Dokument erstellen, werden Ihnen der Name des Notebooks, eine Menüleiste, eine Symbolleiste und eine leere Codezelle angezeigt.\n", "\n", "![](https://jupyter-notebook.readthedocs.io/en/latest/_images/blank-notebook-ui.png)\n", "\n", "**Notebook-Name**: Der Name, der oben auf der Seite neben dem Jupyter-Logo angezeigt wird, spiegelt den Namen der .ipynb-Datei wider. Wenn Sie auf den Namen des Notebooks klicken, öffnet sich ein Dialog, in dem Sie ihn umbenennen können. Wenn Sie also ein Notebook im Browser von \"Untitled0\" in \"My first notebook\" umbenennen, wird die Datei Untitled0.ipynb in My first notebook.ipynb umbenannt.\n", "\n", "**Menüleiste**: Die Menüleiste zeigt verschiedene Optionen, mit denen Sie die Funktionsweise des Notebooks beeinflussen können.\n", "\n", "**Symbolleiste**: Die Symbolleiste bietet eine schnelle Möglichkeit, die am häufigsten verwendeten Operationen innerhalb des Notebooks durchzuführen, indem Sie auf ein Symbol klicken.\n", "\n", "**Codezelle**: Der Standardtyp der Zelle; lesen Sie weiter, um eine Erklärung der Zellen zu erhalten.\n", "\n", "## Aufbau eines Notebook-Dokuments\n", "\n", "Das Notebook besteht aus einer Folge von Zellen. Eine Zelle ist ein mehrzeiliges Texteingabefeld, dessen Inhalt mit **Shift + Enter** oder durch Anklicken der Schaltfläche \"Play\" in der Symbolleiste oder Cell, Run in der Menüleiste ausgeführt werden kann. Das Ausführungsverhalten einer Zelle wird durch den Zellentyp bestimmt. Es gibt drei Arten von Zellen: Codezellen, Textzellen (wie diese hier) und Rohzellen. Jede Zelle beginnt damit, eine Codezelle zu sein, aber ihr Typ kann über ein Dropdown-Menü in der Symbolleiste (das zunächst \"Code\" sein wird) oder über Tastenkombinationen geändert werden.\n", "\n", "### Code-Zellen\n", "\n", "Eine Codezelle ermöglicht es Ihnen, neuen Code zu bearbeiten und zu schreiben, mit voller Syntaxhervorhebung und Vervollständigung der Registerkarte. Die von Ihnen verwendete Programmiersprache hängt vom Kernel ab, und der Standardkernel (IPython) führt Python-Code aus.\n", "\n", "Wenn eine Codezelle ausgeführt wird, wird der darin enthaltene Code an den dem Notebook zugeordneten Kernel gesendet. Die Ergebnisse, die von dieser Berechnung zurückgegeben werden, werden dann im Notebook als Ausgabe der Zelle angezeigt. Zum Beispiel beim Berechnen von:\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:41:45.375773Z", "start_time": "2020-04-26T08:41:45.336524Z" } }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 + 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Um diese Code-Zelle auszuführen, müssen Sie die jeweilige Zelle anwählen und die Tastenkombination: **STRG + ENTER** oder **SHIFT + ENTER** verwenden. Das Ergebnis wird direkt unterhalb der Zelle angezeigt." ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:38:43.464348Z", "start_time": "2020-04-26T08:38:43.414416Z" } }, "source": [ "Die Ausgabe beschränkt sich nicht nur auf Text, sondern es sind auch viele andere mögliche Ausgabeformen möglich, darunter matplotlib-Figuren und HTML-Tabellen. \n", "\n", "### Markdown-Zellen\n", "\n", "Sie können den Berechnungsprozess versiert dokumentieren, indem Sie beschreibenden Text mit Code abwechseln und Rich Text verwenden. In IPython wird dies durch die Markierung von Text mit der Markdown-Sprache erreicht. Die entsprechenden Zellen werden als Markdown-Zellen bezeichnet. Die Markdown-Sprache bietet eine einfache Möglichkeit, dieses Textmarkup durchzuführen, d.h. festzulegen, welche Teile des Textes hervorgehoben werden sollen (Kursivschrift), Fett, Formularlisten usw.\n", "\n", "Innerhalb von Markdown-Zellen können Sie mathematische Ausdrücke auch auf einfache Weise mit der Standard-LaTeX-Notation einbinden: `$...$` für Inline-Mathematik und `$$...$$` für angezeigte Mathematik. Wenn die Markdown-Zelle ausgeführt wird, werden die LaTeX-Abschnitte automatisch in der HTML-Ausgabe als Gleichungen mit hochwertiger Typografie dargestellt.\n", "\n", "Es existiert also eine ganze Bandbreite an Formatierungsmöglichkeiten. Hier einige Beispiele:\n", "\n", "**Überschriften:**\n", "\n", "# Level 1.\n", "## Level 2.\n", "### Level 3.\n", "\n", "**Aufzählungen: **\n", "\n", "* Mit normalen\n", "* Aufzählungspunkten\n", " 1. oder \n", " 2. Numerierungen\n", " * Auf unterschiedlichen\n", " 1. Ebenen\n", "\n", "**Schriftarten:**\n", "\n", "**Fett**\n", "\n", "*Italic (Kursive)*\n", "\n", "`True type`\n", "\n", "bzw. Syntax highlighting\n", "\n", "```python \n", "def EasyFunc(x):\n", " return 2 * x\n", "```\n", "\n", "**Formeln mithilfe des LaTeX-Syntax:**\n", "\n", "$ f(x) = \\int\\limits_0^\\infty e^{-x} \\, dx $\n", "\n", "(LaTeX werden Sie verstärkt im F-Praktikum kennenlernen)\n", "\n", "\n", "**Bilder:**\n", "\n", "![The Python logo](https://www.python.org/static/community_logos/python-powered-w-200x80.png \"Das Python Logo\")\n", "\n", "\n", "Darüber hinaus bietet uns das Jupyter Notebook noch diverse weitere Optionen an, welche unseren harten Alltag vereinfachen. Bevor wir hier jedoch mehr ins Detail gehen, sollten wir die Installation des Kursmaterials abschließen. Hierzu führen Sie die nachfolgende Zelle aus:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-04-26T08:54:42.827020Z", "start_time": "2020-04-26T08:54:33.726074Z" } }, "outputs": [], "source": [ "%run costum_set_up.py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hierdurch werden einige Styleoptionen installiert, welche die von Ihnen zu bearbeitenden Aufgaben optisch hervorheben. Nachdem Sie die Optionen installiert haben müssen Sie den Jupyter-Server neustarten. Gehen Sie hierfür wie folgt vor (**Lesen Sie zuerst die ganze Anweisung!**):\n", "\n", "1. Speicheren Sie das Notebook ab, in dem Sie auf das kleine Disketensmbol in der obigen Menüleiste klickt.\n", "2. Anschließend müssen wir das aktuelle Notebook schließen. Gehen Sie hierfür auf **File** --> **Close and Halt**. Jetzt müssen wir nur noch unseren Server neustarten. Klicken Sie hierfür in der oberen rechten Ecke auf die Schaltfläche **Control Panel** und anschließend auf die Fläche **Stop My Server**.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/JupyterServerNeustarten.png)\n", "\n", "3. Anschließend können Sie mit der Schaltfläche **Start My Server** den Jupyter-Server neustarten. Wählen Sie wieder das **default environment** aus und spawnen Sie den Server.\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Screenshot_ZDV_JupyterHub.png)\n", "\n", "4. Öfnnen Sie nun die erste Lektion und bearbeiten Sie dieses. Sofern die Installation der Styleoptionen erfolgreich war sollten ihnen die Aufgaben wie folgt dargestellt werden:\n", "\n", "![images/Screenshot_ZDV_JupyterHub.png](images/Aufgaben_Style_Beispiel.png)\n", "\n", "Wird Jupyterlab statt Jupyter genutzt, dann kann es sein, dass die besondere Formatierung nicht funktioniert. Dies ist kein Problem, da es sich dabei um eine rein optische Verbesserung handelt." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" } }, "nbformat": 4, "nbformat_minor": 4 }