diff --git a/notebooks/seminar01.ipynb b/notebooks/seminar01.ipynb
index 29e75eb46bced26a8b25ca11ba6118fa2446f078..378797464ab3618dcf26ddea15bf540c4db06f18 100644
--- a/notebooks/seminar01.ipynb
+++ b/notebooks/seminar01.ipynb
@@ -259,13 +259,7 @@
    "metadata": {},
    "source": [
     "## Werte und Datentypen\n",
-    "\n",
-    "Ein **Wert**, also z.B. eine Zahl oder eine Zeichenkette, ist eines der grundlegenden Dinge, die in einem Programm verarbeitet werden. Beispiele für Werte, die wir schon gesehen haben sind `\"Hello World!\"`, `17` und `3.1415926`. Diese Werte haben verschiedenen **Datentypen**:\n",
-    "- `\"Hello World!\"` ist eine **Zeichenkette** (Englisch: *string*)\n",
-    "- `17` ist eine **ganze Zahl** (Englisch: *integer*)\n",
-    "- `3.1415926` ist eine **Gleitkommazahl** (Englisch: *float*)\n",
-    "\n",
-    "Wenn wir uns nicht sicher sind, welchen Datentyp ein Wert hat, können wir es mit der Funktion `type` herausfinden:"
+    "\n"
    ]
   },
   {
@@ -278,6 +272,18 @@
     "YouTubeVideo('https://www.youtube.com/watch?v=1WqFJ5wsA4o&list=PL_pqkvxZ6ho3u8PJAsUU-rOAQ74D0TqZB&index=5')"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Ein **Wert**, also z.B. eine Zahl oder eine Zeichenkette, ist eines der grundlegenden Dinge, die in einem Programm verarbeitet werden. Beispiele für Werte, die wir schon gesehen haben sind `\"Hello World!\"`, `17` und `3.1415926`. Diese Werte haben verschiedenen **Datentypen**:\n",
+    "- `\"Hello World!\"` ist eine **Zeichenkette** (Englisch: *string*)\n",
+    "- `17` ist eine **ganze Zahl** (Englisch: *integer*)\n",
+    "- `3.1415926` ist eine **Gleitkommazahl** (Englisch: *float*)\n",
+    "\n",
+    "Wenn wir uns nicht sicher sind, welchen Datentyp ein Wert hat, können wir es mit der Funktion `type` herausfinden:"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
diff --git a/notebooks/seminar02.ipynb b/notebooks/seminar02.ipynb
index 95f5881ee7ff78d11aed898237e643fe38044c00..65dcea0adc33776446b6612aaf54effb05d1c479 100644
--- a/notebooks/seminar02.ipynb
+++ b/notebooks/seminar02.ipynb
@@ -75,8 +75,7 @@
    "source": [
     "\n",
     "## Zuweisung\n",
-    "\n",
-    "Die **Zuweisung** ist eine besondere Form der Anweisung. Sie erzeugt eine neue Variable  und gibt ihr einen Wert. \n"
+    "\n"
    ]
   },
   {
@@ -103,6 +102,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
+    "Die **Zuweisung** ist eine besondere Form der Anweisung. Sie erzeugt eine neue Variable  und gibt ihr einen Wert. \n",
     "Wenn bereits eine Variable mit dem selben Namen existiert wird dieser nur ein Wert zugewiesen:"
    ]
   },
@@ -328,9 +328,7 @@
     "- \n",
     "\n",
     "## Reihenfolge von Operatoren\n",
-    "\n",
-    "Enthält ein Ausdruck mehrere Operatoren, so werden diese in der folgenden Reihenfolge ausgewertet:\n",
-    "- Zuerst werden Klammern ausgewertet (wie in der Mathematik dürfen wir Klammern verwenden, um die Reihenfolge bei der Berechnung festzulegen)."
+    "\n"
    ]
   },
   {
@@ -345,6 +343,14 @@
     "# Ab Minute 3:45 bis zum Ende"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Enthält ein Ausdruck mehrere Operatoren, so werden diese in der folgenden Reihenfolge ausgewertet:\n",
+    "- Zuerst werden Klammern ausgewertet (wie in der Mathematik dürfen wir Klammern verwenden, um die Reihenfolge bei der Berechnung festzulegen)."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
diff --git a/notebooks/seminar03.ipynb b/notebooks/seminar03.ipynb
index b2da71aa82dcb3ecfa971b54089a4a1ecef27899..755998316b3823f387891d77a2f880a5680c86e7 100644
--- a/notebooks/seminar03.ipynb
+++ b/notebooks/seminar03.ipynb
@@ -428,7 +428,23 @@
    "metadata": {},
    "source": [
     "## Neue Funktionen hinzufügen\n",
-    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from IPython.lib.display import YouTubeVideo\n",
+    "YouTubeVideo('https://www.youtube.com/watch?v=LQCfN5HS9xI&list=PL_pqkvxZ6ho3u8PJAsUU-rOAQ74D0TqZB&index=18')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "Bisher haben wir nur Funktionen genutzt, die bei Python schon \"mitgeliefert\" werden. Es ist aber auch möglich, eigene Funktionen hinzuzufügen. Eine **Funktionsdefinition** gibt den Namen der Funktion an und beschreibt die Folge von Anweisungen, die ausgeführt werden, wenn die Funktion aufgerufen wird:"
    ]
   },
@@ -622,7 +638,23 @@
    "metadata": {},
    "source": [
     "## Parameter und Argumente\n",
-    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from IPython.lib.display import YouTubeVideo\n",
+    "YouTubeVideo('https://www.youtube.com/watch?v=af9ORp1Pty0&list=PL_pqkvxZ6ho3u8PJAsUU-rOAQ74D0TqZB&index=19')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "Einige der Funktionen, die wir schon gesehen haben, benötigen **Argumente** (z.B. `print` oder `type`). Wenn wir `math.sin` aufrufen, müssen wir eine Zahl als Argument übergeben. Einige Funktionen benötigen auch mehrere Argumente (z.B. benötigt `math.pow` zwei Argumente: die Basis und den Exponenten).\n",
     "\n",
     "Innerhalb einer Funktion werden die Argumente Variablen zugewiesen. Diese speziellen Variablen werden **Parameter** genannt. Schauen wir uns eine Funktion an, die ein Argument erwartet:"
@@ -856,7 +888,23 @@
    "metadata": {},
    "source": [
     "## Funktionen mit Rückgabewert\n",
-    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from IPython.lib.display import YouTubeVideo\n",
+    "YouTubeVideo('https://www.youtube.com/watch?v=ehSP-sYoKCY&list=PL_pqkvxZ6ho3u8PJAsUU-rOAQ74D0TqZB&index=20')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "Einige der Funktionen, die wir bisher verwendet haben (z.B. die mathematischen Funktionen) geben einen Wert zurück. Andere führen eine Aktion aus, geben aber keinen Wert zurück (z.B. `print_twice`). Diese werden auch **void functions** — also leere Funktionen genannt.\n",
     "\n",
     "Wenn wir eine Funktion mit Rückgabewert aufrufen, wollen wir meistens etwas mit dem Rückgabewert anfangen; ihn z.B. einer Variable zuweisen oder innerhalb eines Ausdrucks verwenden:"