diff --git a/notebooks/hausaufgabe4.ipynb b/notebooks/hausaufgabe4.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..1db1033bc29ea5d9b8884db6c7a6c80a77e4e5f6
--- /dev/null
+++ b/notebooks/hausaufgabe4.ipynb
@@ -0,0 +1,178 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 4. Hausaufgabe\n",
+    "\n",
+    "Geben Sie diese Hausaufgabe gemeinsam mit Ihrem/r Partner/in ab. Füllen Sie dazu dieses Notebook aus und speichern Sie es ab (Disketten-Icon oben links). Laden Sie dann die Datei (`hausaufgabe4.ipynb`) in Moodle hoch. Verwenden Sie Kommentare im Python-Quellcode und Markdown-Textboxen im Jupyter-Notebook ([Syntax-Beispiele](https://de.wikipedia.org/wiki/Markdown#Auszeichnungsbeispiele)) um ihr Programm zu kommentieren. Für diese Hausaufgabe sollten Sie alles bis zum 7. Kapitel durchgearbeitet haben, da Iteration, Rekursion, Verzweigungen und Funktionen mit Rückgabewert benötigt werden.\n",
+    "\n",
+    "Wir wünschen viel Erfolg beim Lösen der Aufgaben!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Aufgabe 1\n",
+    "\n",
+    "*(Dies ist [Aufgabe 1 im 7. Kapitel](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar07.ipynb#aufgabe-1).)*\n",
+    "\n",
+    "Kopieren Sie die Schleife aus [Abschnitt 7.5](seminar07.ipynb#7.5-Quadratwurzeln) und verkapseln Sie sie in eine Funktion `mysqrt` die einen Parameter `a` erwartet, einen sinnvollen Wert für `x` wählt und eine Näherung für die Quadratwurzel von `a` zurückliefert."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Implementieren Sie hier die Funktion mysqrt\n",
+    "\n",
+    "\n",
+    "# Testen Sie hier die Funktion\n",
+    "print(\"Die Wurzel von 2 ist ungefähr \", mysqrt(2))\n",
+    "print(\"Die Wurzel von 23 ist ungefähr \", mysqrt(23))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Testen Sie die Funktion, indem Sie eine Funktion `test_square_root` schreiben, die eine Tabelle der folgenden Art ausgibt:\n",
+    "\n",
+    "```\n",
+    "a   mysqrt(a)     math.sqrt(a)  diff\n",
+    "-   ---------     ------------  ----\n",
+    "1.0 1.0           1.0           0.0\n",
+    "2.0 1.41421356237 1.41421356237 2.22044604925e-16\n",
+    "3.0 1.73205080757 1.73205080757 0.0\n",
+    "4.0 2.0           2.0           0.0\n",
+    "5.0 2.2360679775  2.2360679775  0.0\n",
+    "6.0 2.44948974278 2.44948974278 0.0\n",
+    "7.0 2.64575131106 2.64575131106 0.0\n",
+    "8.0 2.82842712475 2.82842712475 4.4408920985e-16\n",
+    "9.0 3.0           3.0           0.0\n",
+    "```\n",
+    "\n",
+    "Dabei ist die erste Spalte eine Zahl, `a`; die zweite Spalte ist die Quadratwurzel von `a` die mit `mysqrt` berechnet wurde; die dritte Spalte ist die Quadratwurzel, die mittels `math.sqrt` berechnet wurde; und die vierte Spalte ist der Absolutbetrag des Unterschieds zwischen den beiden Werten."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def test_square_root():\n",
+    "    # Implementieren Sie hier die Funktion test_square_root\n",
+    "\n",
+    "\n",
+    "# Rufen Sie hier die Funktion test_square_root auf\n",
+    "test_square_root()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Aufgabe 2\n",
+    "\n",
+    "*(Dies ist [Aufgabe 2 im 7. Kapitel](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar07.ipynb#aufgabe-2).)*\n",
+    "\n",
+    "Die eingebaute Funktion `eval` erwartet eine Zeichenkette und führt sie dann mit dem Python-Interpreter aus. Beispielsweise:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "eval('1 + 2 * 3')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "eval('math.sqrt(5)')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "eval('type(math.pi)')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Schreiben Sie eine Funktion `eval_loop`, die den Nutzer iterativ bittet etwas einzugeben, die eingegebene Zeichenkette mittels `eval` ausführt und schließlich das Ergebnis ausgibt. \n",
+    "\n",
+    "Die Funktion sollte so lange laufen, bis der Nutzer `fertig` eingibt und dann sollte der Rückgabewert des letzten ausgeführten Ausdrucks ausgegeben werden."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Implementieren Sie hier die Funktion eval_loop"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Aufgabe 3\n",
+    "\n",
+    "Ziel dieser Aufgabe ist, dass Sie üben, fremden Code zu lesen, zu verstehen und zu verändern. \n",
+    "In [Aufgabe 3 im 7. Kapitel](https://scm.cms.hu-berlin.de/ibi/python/blob/master/notebooks/seminar07.ipynb#aufgabe-3) wird eine Methode zur näherungsweisen Berechnung von $\\pi$ vorgestellt, einschließlich des [Quellcodes](http://thinkpython2.com/code/pi.py). Verändern Sie diesen Quellcode, so dass stattdessen die Näherungsformel \n",
+    "\n",
+    "\\begin{equation}\n",
+    "\\pi = \\sqrt{12}\\sum^\\infty_{k=0} \\frac{(-3)^{-k}}{2k+1} = \\sqrt{12}\\sum^\\infty_{k=0} \\frac{(-\\frac{1}{3})^k}{2k+1}\n",
+    "\\end{equation}\n",
+    "\n",
+    "zur Berechnung von $\\pi$ verwendet wird ([Madhava–Leibniz Folge](https://en.wikipedia.org/wiki/Approximations_of_%CF%80#Middle_Ages)). Kommentieren Sie Ihren Quellcode in eigenen Worten (auf Deutsch) und entfernen Sie jeglichen Code, der nicht zur Berechnung benötigt wird. \n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    " # Implementieren und testen Sie hier ihre Funktion\n",
+    "\n",
+    "    \n",
+    "    \n",
+    "print(estimate_pi())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![Smiley](https://upload.wikimedia.org/wikipedia/commons/0/0f/Face-glasses.svg)"
+   ]
+  }
+ ],
+ "metadata": {
+  "language_info": {
+   "name": "python",
+   "pygments_lexer": "ipython3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}