diff --git a/README.org b/README.org
index 1b9d78b68a1250d6d055d0127630b196799d6337..cdf4321767feb820bd79d2a5be916aa744d5665c 100644
--- a/README.org
+++ b/README.org
@@ -29,6 +29,7 @@ speichern unter.../ wählen:
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar03extra.ipynb][3 extra: reguläre Ausdrücke]]
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar04.ipynb][4: Fallstudie: Schnittstellenentwurf]]
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar05.ipynb][5: Verzweigungen und Rekursion]]
+- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar06.ipynb][6: Ertragreiche Funktionen]] 
 
 Merken Sie sich, wo Sie die Dateien gespeichert haben und navigieren
 Sie dann mit Jupyter zu diesem Ordner, um sie zu öffnen.
diff --git a/img/deadcode.svg b/img/deadcode.svg
new file mode 100644
index 0000000000000000000000000000000000000000..48e7ddd93354ed188c62534339075682ac5adcc5
--- /dev/null
+++ b/img/deadcode.svg
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="61.57719mm"
+   height="45.744205mm"
+   viewBox="0 0 61.57719 45.744206"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.1 r15371"
+   sodipodi:docname="deadcode.svg">
+  <defs
+     id="defs2">
+    <inkscape:path-effect
+       effect="envelope"
+       id="path-effect4624"
+       is_visible="true"
+       yy="true"
+       xx="true"
+       bendpath1="m 33.263939,39.545525 c 47.623397,-20.758403 102.549601,16.786507 149.851791,0"
+       bendpath2="M 183.11573,39.545525 V 139.39732"
+       bendpath3="m 33.263939,139.39732 c 52.193641,-21.88025 106.266981,23.62262 149.851791,0"
+       bendpath4="m 33.263939,39.545525 c 0,34.853832 0,71.651485 0,99.851795"
+       bendpath1-nodetypes="cc"
+       bendpath3-nodetypes="cc"
+       bendpath4-nodetypes="cc" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.69931958"
+     inkscape:cx="387.56963"
+     inkscape:cy="-260.54827"
+     inkscape:document-units="mm"
+     inkscape:current-layer="g4500"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1016"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-33.435389,-33.819065)">
+    <g
+       id="g4500">
+      <g
+         id="g4597"
+         transform="matrix(0.41021467,0,0,0.41021467,19.874904,19.945988)"
+         inkscape:path-effect="#path-effect4624">
+        <path
+           transform="scale(1,-1)"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1482034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 33.231905,-139.36422 c 6.406255,1.29927 11.856367,2.61473 18.474282,3.68481 0.429234,0.0694 0.858819,0.13689 1.28891,0.20234 5.831903,0.88735 11.516068,1.36927 17.421588,1.37462 0.71735,6.6e-4 1.434284,-0.006 2.151232,-0.0192 0,0 7e-6,0 7e-6,0 12.592053,-0.23588 23.757995,-2.53484 36.104686,-5.27706 0,0 10e-6,0 10e-6,0 0.60332,-0.13401 2.14315,-0.47708 2.74647,-0.61109 12.16026,-2.70477 23.02324,-5.08529 35.38789,-5.24022 0.59521,-0.007 1.19049,-0.01 1.78624,-0.006 5.96161,0.0316 11.6483,0.62548 17.49923,1.74586 6.0427,1.15706 11.23161,2.66995 16.98891,4.14353 -0.004,0.0604 0.002,99.812756 0.005,99.85672 -5.98624,-1.040462 -11.17508,-2.000309 -17.31476,-2.723867 -5.88468,-0.693451 -11.60121,-1.026966 -17.54162,-0.934083 -0.59488,0.0093 -1.18924,0.02286 -1.78334,0.04063 -12.33665,0.369177 -23.20938,2.354138 -35.38762,4.60612 0.64443,-0.119152 -3.39452,0.626266 -2.75009,0.507114 -12.349716,2.266692 -23.518469,4.139483 -36.014772,4.120689 0,0 -8e-6,0 -8e-6,0 -0.711842,-0.0011 -1.423561,-0.0083 -2.13578,-0.02186 0,0 -8e-6,-10e-7 -8e-6,-10e-7 -5.868857,-0.111528 -11.49979,-0.655342 -17.293891,-1.587294 -0.426921,-0.06867 -0.853328,-0.139199 -1.279498,-0.211547 -6.628232,-1.125243 -11.929117,-2.447776 -18.353036,-3.798359 0.215093,-33.182127 0.214086,-66.466741 3.18e-4,-99.851381 z"
+           id="rect4485"
+           inkscape:connector-curvature="0"
+           inkscape:original-d="M 33.263939,-139.39732 H 183.11573 v 99.851795 H 33.263939 Z" />
+        <g
+           aria-label="{☠} "
+           transform="matrix(0.26458333,0,0,0.26458333,-43.562143,-70.768752)"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:100%;font-family:arial;-inkscape-font-specification:arial;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="flowRoot4487">
+          <path
+             d="m 368.34603,590.13001 c 6.69525,-0.74008 12.15183,-2.96467 16.33593,-6.70001 4.27497,-3.83294 7.11181,-8.8218 8.50216,-15.03049 1.3889,-6.20223 2.11884,-16.74226 2.16404,-31.82076 0.0453,-15.10931 0.26235,-25.23057 0.67808,-30.14337 0.75249,-7.78634 2.1623,-14.15658 4.23727,-19.0517 2.16263,-4.90125 4.81195,-8.87364 7.95269,-11.87693 3.13859,-3.09565 7.16601,-5.53311 12.07846,-7.24266 2.40065,-0.77712 5.92093,-1.34754 10.52824,-1.64594 0,0 0,0 0,0 1.78344,-0.1174 3.73361,-0.19359 5.8461,-0.22292 0.76037,-0.0106 1.52069,-0.0195 2.28105,-0.0268 1.70763,-0.0137 3.41467,-0.0204 5.12186,-0.02 0.0648,7.38498 0.11734,14.74544 0.16075,22.03453 -1.36562,0.003 -2.73117,0.0107 -4.09703,0.0223 -0.34673,0.003 -0.68903,0.009 -1.02691,0.0171 0,0 0,0 0,0 -3.07496,0.0821 -5.78582,0.39397 -8.12789,0.91885 -4.20369,0.93891 -7.22669,2.56417 -9.06387,4.81464 -2.97357,3.54911 -4.42701,11.36826 -4.38457,23.26594 0.0852,23.88878 -0.38986,38.70888 -1.34009,44.84741 -1.5659,9.58504 -4.28146,16.96636 -8.1362,22.25905 -3.76878,5.29044 -9.7253,10.11767 -17.85619,14.60366 9.62258,3.31438 16.60134,9.04419 20.9109,16.98272 4.39492,7.8439 6.60685,20.97374 6.60877,38.94205 0.002,16.26782 0.16831,25.73805 0.51808,28.75355 0.69967,5.53694 2.45684,9.32315 5.27726,11.4278 1.68214,1.21559 4.27385,2.0381 7.78645,2.50806 2.3213,0.30668 5.03631,0.46116 8.15444,0.48249 0,0 0,0 0,0 0.33858,0.003 0.68185,0.004 1.02982,0.004 1.36968,-0.001 2.73895,0.002 4.10824,0.009 -0.007,6.37074 -0.019,12.73149 -0.0388,19.01824 -1.71306,-0.0182 -3.42612,-0.0288 -5.13992,-0.0318 -0.7631,-1.7e-4 -1.52618,0.001 -2.2893,0.005 -2.09638,0.009 -4.05057,-0.006 -5.86788,-0.0517 0,0 -10e-6,0 -10e-6,0 -5.704,-0.14941 -10.0025,-0.60329 -12.95396,-1.46567 -5.64295,-1.62698 -10.30015,-4.36985 -13.98445,-8.33365 -3.68383,-3.88255 -6.08305,-8.9604 -7.21,-15.31955 -1.03867,-6.36261 -1.5873,-16.90972 -1.66192,-31.89605 -0.0747,-15.00203 -0.8211,-25.53903 -2.22053,-31.31489 -1.40043,-5.78005 -4.24532,-10.25879 -8.52591,-13.37581 -4.19621,-3.1258 -9.6427,-4.50706 -16.34593,-4.11505 10e-6,0.17508 -0.009,-21.40588 -0.009,-21.23079 z"
+             style="font-size:266.66665649px;fill:#ffffff;fill-opacity:1"
+             id="path4600"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 368.66798,595.28061 q 10.02604,-0.26042 16.27604,-5.33854 6.38021,-5.20834 8.46354,-14.19271 2.08333,-8.98438 2.21354,-30.72917 0.13021,-21.74479 0.78125,-28.64583 1.17188,-10.9375 4.29688,-17.57812 3.2552,-6.64063 7.9427,-10.54688 4.6875,-4.03646 11.97917,-6.11979 4.94792,-1.30208 16.14583,-1.30208 h 7.29167 v 20.4427 h -4.03646 q -13.54167,0 -17.96875,4.94792 -4.42708,4.81771 -4.42708,21.74479 0,34.11458 -1.43229,43.09896 -2.34375,13.93229 -8.07292,21.48437 -5.59896,7.55208 -17.70833,13.41146 14.32291,5.98958 20.70312,18.35937 6.51042,12.23959 6.51042,40.23438 0,25.39062 0.52083,30.20833 1.04167,8.85417 5.20833,12.36979 4.29688,3.51563 16.66667,3.51563 h 4.03646 v 20.4427 h -7.29167 q -12.76041,0 -18.48958,-2.08333 -8.33333,-2.99479 -13.80208,-9.76562 -5.46875,-6.64063 -7.16146,-16.92709 -1.5625,-10.28646 -1.69271,-33.72395 -0.13021,-23.4375 -2.21354,-32.42188 -2.08333,-8.98437 -8.46354,-14.19271 -6.25,-5.20833 -16.27604,-5.46875 z" />
+          <path
+             d="m 573.11797,476.56943 c 0.87066,0.11868 1.7339,0.24582 2.58965,0.38131 0,0 10e-6,0 10e-6,0 3.59377,0.58337 7.05884,1.3169 10.39079,2.19315 0,0 0,10e-6 0,10e-6 19.97852,5.12707 35.38965,15.37966 45.85537,30.21816 5.06724,9.8615 7.59995,18.35043 7.63008,25.60849 7.1e-4,0.16931 0.0326,8.77422 0.0333,8.94352 0.0328,9.84048 -4.28235,18.87141 -12.95971,26.97226 0.0274,0.42285 0.77042,11.93502 0.79781,12.35787 0,0.004 0.001,0.78091 0.001,0.7852 0.008,4.62304 -1.06108,8.85653 -3.20844,12.68903 -0.001,-1.1e-4 0.7767,0.0684 0.77545,0.0683 13.76634,-4.20868 20.61161,-9.13866 20.60288,-14.42354 3.76496,-4.68016 7.18918,-6.91249 10.27065,-6.71144 -9.6e-4,-6e-5 1.02826,0.0666 1.0273,0.0665 5.3923,0.34624 8.09255,5.84433 8.10845,16.63676 5.98946,4.93633 8.98227,8.83988 8.98673,11.81927 -6e-5,-0.0368 0.005,3.18626 0.005,3.1494 -2.21362,3.84416 -6.01043,5.65425 -11.39682,5.35408 -3.80712,-0.51941 -7.61284,-1.06189 -11.42726,-1.6261 -21.56707,8.16836 -34.28748,13.01162 -39.97308,16.28718 1e-4,0.054 0.004,2.31808 0.004,2.3721 10.13148,5.37833 20.19541,10.70405 30.25554,15.9469 3.00403,-0.33544 6.00299,-0.68352 9.00173,-1.04614 8.14085,2.17891 12.20623,5.14193 12.21411,9.08152 0.007,3.38046 -3.23248,7.69063 -9.73163,12.76105 0.0191,10.58093 -2.75742,15.69952 -8.33513,15.20924 -7.4e-4,-7e-5 -0.77172,-0.0681 -0.77246,-0.0682 -4.38186,-0.38848 -9.53435,-6.18396 -15.49451,-17.24935 -8.46996,-5.08861 -16.15908,-9.72488 -24.62905,-14.81349 -4.0509,4.94972 -9.67991,8.0451 -16.92725,9.29877 -3.15364,0.53015 -6.6092,0.70412 -10.37372,0.52826 0,0 -1e-5,0 -1e-5,0 -1.5919,-0.0674 -3.23802,-0.19662 -4.93909,-0.38719 -15.20191,-1.70305 -26.03507,-7.1442 -32.32187,-16.26471 -18.25094,6.80416 -27.41218,11.42265 -27.40824,13.53957 -4.4556,7.05422 -8.62431,10.40546 -12.48586,10.1359 -0.61477,-0.0429 -1.22959,-0.0852 -1.84449,-0.12685 -4.9199,-0.3332 -7.38863,-5.17326 -7.40603,-14.65718 -6.6926,-6.04629 -10.0456,-10.90212 -10.05263,-14.74886 -0.007,-3.65109 3.90535,-5.93142 11.72559,-6.63882 3.34137,0.73103 6.67827,1.48067 10.01605,2.24884 10.0144,-3.66496 19.96396,-7.19746 29.94082,-10.67528 3e-5,0.016 -0.005,-2.35751 -0.005,-2.34154 -13.34953,-7.63309 -26.60191,-14.99269 -40.0109,-22.15405 -4.74667,0.075 -9.48823,0.18594 -14.24105,0.33656 -6.07105,-0.19689 -9.41951,-2.68031 -10.04318,-7.58858 -7e-5,-0.0449 -0.002,-1.65957 -0.002,-1.70446 -0.003,-2.3541 3.07243,-6.38495 9.22202,-12.00399 0.33743,-9.85994 2.21977,-14.78581 5.64901,-14.65279 1.45074,0.0563 2.90097,0.11618 4.35115,0.17966 4.2224,0.18483 8.96647,5.3988 14.2522,15.56619 5.84432,3.06821 11.6729,6.17504 17.50592,9.32459 -2e-5,-0.0136 -0.001,-0.77522 -0.001,-0.78884 0.0171,0.0605 -3.32162,-11.76617 -3.30451,-11.70569 -0.0268,0.20992 1.58222,-12.41204 1.55538,-12.20212 -9.39949,-10.52804 -14.10958,-25.31501 -14.18903,-44.8878 2.98773,-20.62279 15.93343,-34.77563 38.7754,-40.82543 8.98381,-1.55653 19.57212,-1.4531 31.94051,0.23281 z m -65.04095,45.87535 c 0.0395,10.65153 3.13396,21.36506 9.28793,32.21828 9.4e-4,7e-5 0.91872,0.07 0.91967,0.0701 8.9e-4,0.43486 -0.0249,-11.10946 -0.024,-10.6746 -2.73948,-10.19755 -4.12374,-17.86155 -4.14359,-22.90658 0.94628,-4.43004 1.98508,-6.6019 3.12407,-6.50516 0.003,2.8e-4 1.70401,0.14606 1.70728,0.14634 0.15863,0.17641 2.34768,2.61083 2.50632,2.78724 -0.009,0.0316 -1.67318,5.76054 -1.68234,5.79212 -0.26269,-1.19826 4.52458,20.61435 4.26189,19.41609 6.3e-4,0.2428 0.021,8.83038 0.0217,9.07318 -0.0812,0.73633 -2.37112,21.35036 -2.45231,22.08668 4e-5,0.0262 0.003,1.55855 0.003,1.58471 0.0141,8.28736 6.72537,14.17124 20.09723,18.00232 6.03391,5.44231 9.05046,10.10673 9.05755,13.94194 -2e-5,-0.009 0.006,3.14892 0.006,3.14013 4.4082,0.98762 8.80694,1.98666 13.20736,2.99425 0.84758,0.0848 10.76855,1.08915 11.61613,1.17391 -0.0705,0.007 0.83589,-0.087 0.76537,-0.0796 28.32455,-2.84057 -17.95019,1.79973 10.37436,-1.04083 -0.31058,0.0329 5.67425,-0.60319 5.36368,-0.57027 -0.0148,-8.26413 8.50425,-14.33638 25.42494,-18.55719 2.84255,-2.88623 4.25708,-7.61284 4.24531,-14.15603 0.19227,1.39862 -3.60949,-26.1648 -3.41722,-24.76618 -0.32616,1.54408 4.52811,-21.4804 4.20195,-19.93632 5e-5,0.0118 -0.0103,-2.35773 -0.0102,-2.34598 0.0122,0.0413 -1.72146,-5.81985 -1.70925,-5.77853 -0.061,0.0334 4.05789,-2.22196 3.99691,-2.18859 2.16037,1.17711 3.24754,3.23423 3.26126,6.18165 3.9e-4,0.0822 0.0271,6.29153 0.0275,6.37367 -0.26255,1.49214 -3.67337,20.80318 -3.93592,22.29532 0.002,0.009 0.78082,3.19579 0.78296,3.20452 6.09985,-6.57279 9.13267,-13.81799 9.10448,-21.68988 2.6e-4,0.0722 -0.0217,-5.6559 -0.0214,-5.5837 -0.0745,-18.15102 -9.80631,-32.48472 -29.30497,-43.80111 -6.41237,-2.93263 -12.59748,-5.2651 -18.56046,-6.95959 -3.54809,-1.03235 -7.0113,-1.8349 -10.39216,-2.40129 -0.78088,-0.12756 -1.55733,-0.24269 -2.32938,-0.34532 0.21744,0.0289 -5.17167,-0.68545 -4.95423,-0.65655 -29.56939,-3.90433 -48.68549,4.95568 -57.86068,26.28201 -1.72507,5.21195 -2.58189,9.94076 -2.56616,14.17891 z m 48.4529,25.92593 c 4.01171,1.55796 6.02197,4.55008 6.03224,8.95455 0.002,0.96943 -0.0824,2.0178 -0.25407,3.14511 -4.84625,13.15496 -11.2022,19.32874 -19.05812,18.61076 0.001,1.2e-4 -0.78719,-0.0718 -0.78589,-0.0717 -6.80992,-0.61952 -11.81033,-7.83128 -14.98482,-21.81025 -0.0158,-7.70788 9.69327,-10.80253 29.05066,-8.82851 z m 31.39965,3.35402 c 17.64757,2.72437 26.67414,7.59871 27.20619,14.69262 -3.16802,12.86858 -8.90431,18.93052 -17.2317,18.10856 -3.71789,-0.36698 -7.46632,-3.5987 -11.24363,-9.70219 -2.02628,-3.30903 -4.0608,-7.45758 -6.10385,-12.45059 -1.3e-4,-0.0588 -0.001,-0.59963 -0.002,-0.65846 -0.0146,-6.37193 2.00242,-9.70367 6.05237,-9.99009 0,0 0,0 0,0 0.41915,-0.032 0.85986,-0.0319 1.32212,1.5e-4 z m 23.28317,67.44977 c -0.002,-1.9e-4 0.77997,0.0743 0.77797,0.0742 24.22876,-9.12174 37.06837,-13.99308 39.2006,-13.8494 4.372,0.5136 8.73159,0.9987 13.09413,1.45292 2.73428,-0.55293 4.09988,-1.27787 4.09855,-2.15098 -5.99111,-6.68146 -8.99382,-11.71595 -8.99881,-15.01838 -0.60696,-5.51837 -1.76685,-8.3227 -3.47884,-8.43305 -2.3946,0.62693 -5.81507,5.26043 -10.2593,13.92637 -21.35423,8.2305 -32.12072,12.73562 -32.11773,14.48561 -0.0957,0.39311 -2.22082,9.11964 -2.31657,9.51275 z M 483.95633,567.72407 c -1.47739,9.74847 -2.83653,14.55975 -4.06608,14.51657 -4.56861,3.08713 -6.85286,5.75096 -6.84965,7.93101 2.02485,0.5354 4.04861,1.0778 6.07253,1.62737 4.17949,-0.0752 8.35102,-0.12006 12.52572,-0.13691 5.45638,1.81303 18.98385,8.51654 40.00614,20.61616 0,4.5e-4 -0.003,-1.69634 -0.003,-1.69588 -0.0153,-8.1667 -4.43881,-13.77681 -13.28804,-16.61604 -17.80228,-8.57375 -26.73526,-15.35004 -26.74444,-21.13273 -2.20171,-3.28245 -4.75155,-4.9925 -7.65298,-5.10955 z m 84.78066,8.29436 c 0.0318,0.0193 1.79714,1.0866 1.829,1.10586 0.006,3.4674 0.0309,17.42919 0.0374,20.8966 0.009,-0.008 -6.656,5.9032 -6.64695,5.89517 -3.3112,-1.37731 -4.97253,-4.55218 -4.98134,-9.54083 -0.0162,-9.19071 3.24121,-15.32845 9.7619,-18.3568 z m 6.26237,0.23969 c 0.44637,0.39069 0.87617,0.79344 1.28941,1.20824 0,0 0,10e-6 0,10e-6 5.12557,5.19006 7.69321,12.24278 7.7089,21.15423 0.007,4.20153 -1.71727,6.46744 -5.17646,6.80042 -0.006,-0.007 -2.4816,-2.81742 -2.48744,-2.82406 -0.0236,-0.0265 -3.87995,-4.36619 -3.90353,-4.39273 0.20355,114.7553 -0.2417,-136.04518 -0.0381,-21.28988 0.0613,-0.0154 2.54598,-0.64079 2.60727,-0.65623 z m -37.43345,46.82952 c 3.95182,17.55402 15.31961,27.3099 33.9228,29.3512 1.70901,0.0771 3.35498,0.0845 4.93864,0.0215 0,0 0,0 0,0 3.82418,-0.13663 7.27913,-0.6876 10.37184,-1.65945 9.77909,-3.11097 15.9131,-10.35248 18.46272,-21.67475 -0.0882,-0.88642 -0.13322,-1.85616 -0.13513,-2.9092 -0.0103,-5.70475 1.1889,-13.0375 3.59581,-22.00255 -3.10859,3.03042 -5.86506,12.0438 -8.26446,27.06454 -3.90792,3.46213 -8.46335,5.68258 -13.68265,6.67176 -3.20966,0.59294 -6.66629,0.71126 -10.37463,0.36115 -0.25404,-0.0228 -0.50924,-0.0478 -0.76561,-0.0749 0.7065,0.0748 -8.01301,-0.84596 -7.30651,-0.77112 -16.63004,-3.66363 -25.5137,-9.3008 -26.57559,-17.12046 -0.62733,-8.22275 -2.91216,-16.01636 -6.85775,-23.34526 1.93732,8.29167 2.91165,15.3854 2.92318,21.2929 0.003,1.65062 -0.081,3.24886 -0.25266,4.7947 z m 2.31633,-22.37468 c 1.75332,3.38748 3.73115,11.11564 5.93722,23.14051 0.001,1.4e-4 0.78414,0.0746 0.78558,0.0748 6e-4,0.30535 -0.0239,-12.31257 -0.0233,-12.00722 -0.79586,-5.56233 -3.02786,-9.30862 -6.69952,-11.20807 z m 56.51678,16.22502 c 0.001,0.60378 0.021,11.48859 0.022,12.09236 1.30194,0.1316 2.07597,-3.25357 2.32379,-10.15132 0.14627,-0.5029 3.08491,-10.61005 3.23118,-11.11294 -1.12669,-0.10991 -2.72536,2.66706 -4.79757,8.32968 5.9e-4,-6.3e-4 -0.78003,0.84286 -0.77944,0.84222 z m -46.41256,-3.91096 c 8e-5,0.04 0.0109,5.70807 0.011,5.74809 0.0109,0.004 2.3455,0.87639 2.35643,0.88047 10e-5,0.0515 -0.0112,-5.80057 -0.0111,-5.74908 0.0117,0.004 -2.36811,-0.88386 -2.35641,-0.87948 z m 40.41995,4.10093 c 2e-4,0.10959 0.0116,6.32516 0.0118,6.43475 -0.0434,0.0124 3.43007,-0.98474 3.38668,-0.9723 1.6e-4,0.0879 -0.0114,-6.26237 -0.0112,-6.1745 -0.0541,0.0114 -3.33319,0.70066 -3.38726,0.71205 z m -35.44705,-2.70632 c 1.5e-4,0.0758 0.0124,6.45871 0.0126,6.53454 0.0276,0.008 3.24237,0.96851 3.26994,0.97673 1.9e-4,0.0964 -0.0125,-6.5023 -0.0123,-6.40596 0.0286,0.01 -3.29876,-1.11499 -3.27019,-1.10531 z m 29.8516,3.83828 c 2.6e-4,0.1385 0.0117,6.29152 0.012,6.43001 -0.027,0.005 1.95383,-0.37499 1.92683,-0.36982 -0.0166,0.003 1.59908,-0.31497 1.58246,-0.3117 0.0144,0.32776 -0.2868,-6.52444 -0.27239,-6.19668 -0.0155,0.002 -1.30628,0.18433 -1.3218,0.18652 -0.035,0.005 -1.89212,0.25692 -1.92709,0.26167 z m -5.96744,-0.63975 c 4.2e-4,0.22611 0.0147,7.77163 0.0151,7.99774 0.49446,0.0101 2.48924,0.0509 2.9837,0.061 0.0216,0.41679 -0.42536,-8.19742 -0.40372,-7.78063 0.18637,0.02 -2.78145,-0.29805 -2.59508,-0.27807 z m -12.38172,-0.48587 c 3e-4,0.15736 0.0135,7.04039 0.0138,7.19775 0.11521,0.0118 4.06198,0.41592 4.17719,0.42767 3.8e-4,0.19859 -0.0141,-7.40078 -0.0137,-7.20219 0.13754,0.014 -4.31479,-0.43721 -4.17725,-0.42323 z m 6.78685,0.68894 c 3.4e-4,0.17946 0.0134,7.02552 0.0137,7.20498 0.1334,0.0137 2.98009,0.30749 3.11349,0.32123 2.4e-4,3e-5 0.14628,0.0158 0.14652,0.0158 4.4e-4,0.22748 -0.0141,-7.43594 -0.0137,-7.20846 2.4e-4,3e-5 -0.14677,-0.0157 -0.14653,-0.0157 0.17816,0.0182 -3.2917,-0.33612 -3.11354,-0.31791 z m -18.27083,6.13629 c 6.3e-4,0.31991 0.0126,6.33414 0.0132,6.65405 0.0262,0.008 3.24374,0.97367 3.26993,0.98151 0.001,0.56323 -0.0141,-7.09016 -0.0129,-6.52693 0.0268,0.009 -3.29697,-1.11773 -3.2702,-1.10863 z m 18.29112,4.4734 c 0.002,0.86251 0.0108,5.55206 0.0124,6.41457 0.134,0.0141 2.97941,0.3132 3.1134,0.32727 2.5e-4,2e-5 0.14628,0.0161 0.14652,0.0161 0.0213,11.02913 -0.0355,-18.36517 -0.0141,-7.33603 -7.8e-4,1.3e-4 -0.14567,0.0254 -0.14645,0.0255 -0.14171,0.0252 -2.97006,0.52738 -3.11177,0.55256 z m -6.7867,-0.7003 c 0.001,0.64182 0.0113,5.76375 0.0126,6.40556 0.11545,0.012 4.06163,0.42376 4.17708,0.43576 0.005,2.67211 -0.0177,-9.08322 -0.0125,-6.4111 0.13813,0.0143 -4.31528,-0.44449 -4.17715,-0.43022 z m -63.82691,10.31443 c -5.00682,-0.54029 -10.00858,-1.04064 -15.02358,-1.49805 7.5e-4,-4.9e-4 -0.92275,0.59604 -0.922,0.59556 -0.003,-1.34681 0.007,3.77676 0.005,2.42995 6.0758,5.14872 9.11474,9.8256 9.12225,13.88947 0.53564,4.7809 1.41856,7.20425 2.64797,7.28664 1.66368,0.11149 5.57498,-4.01425 11.69192,-12.43014 13.63191,-5.66283 21.774,-9.43229 24.79527,-11.70602 -1.66756,-3.34861 -2.5043,-6.31655 -2.50955,-8.91382 -16.24603,7.04922 -26.21404,10.58048 -29.80688,10.34641 z m 107.68059,-1.69973 c 0.17965,-0.67732 -2.49884,9.41853 -2.31919,8.74122 19.63513,11.13338 29.38096,18.579 29.3871,22.50082 0.002,1.33738 2.15476,4.03289 6.45192,8.08094 1.80312,0.15589 3.21024,-4.39693 4.2232,-13.6122 2.65299,-2.60625 5.30321,-5.2243 7.95183,-7.85417 -0.51706,-1.64091 -2.10171,-2.54618 -4.7579,-2.7376 -4.07122,-0.0708 -8.14137,-0.16752 -12.22233,-0.2865 -9.54587,-4.88303 -19.10386,-9.83899 -28.71463,-14.83251 z m -49.88299,-19.81537 c 0.013,-0.21883 -0.39274,6.58671 -0.3797,6.36788 0.0444,0.0136 3.74604,1.15288 3.79046,1.16652 3.3e-4,0.17105 -0.0142,-7.36602 -0.0138,-7.19497 0.0555,0.006 -3.45242,-0.345 -3.39692,-0.33943 z m 0.14917,9.55647 c 8.9e-4,0.45056 0.012,6.07867 0.0129,6.52923 0.0296,0.0101 3.23812,1.1091 3.26768,1.1192 0.002,1.20572 -0.015,-7.60791 -0.0126,-6.40219 0.0304,0.0116 -3.29839,-1.25786 -3.26798,-1.24624 z m -11.38422,-4.51749 c 3.9e-4,0.20233 0.0123,6.1864 0.0127,6.38872 0.0195,0.007 3.2535,1.22591 3.273,1.23324 6.5e-4,0.32521 -0.0136,-6.84706 -0.0129,-6.52186 0.0224,0.008 -3.29513,-1.10764 -3.27274,-1.1001 z m 29.90579,6.95902 c 0.002,1.00136 0.0107,5.55216 0.0126,6.55352 -0.20435,0.0234 3.7057,-0.42431 3.50135,-0.40094 0.009,4.77367 -0.0216,-11.33192 -0.0125,-6.55825 -0.18404,0.0213 -3.3174,0.38432 -3.50144,0.40567 z m 5.44586,-0.7189 c 0.002,0.81495 0.0109,5.74583 0.0125,6.56078 -0.0434,0.004 2.22975,-0.20643 2.18634,-0.20242 -0.0101,9.9e-4 1.071,-0.10522 1.06091,-0.10423 0.005,2.56739 -0.0175,-9.26353 -0.0126,-6.69614 -0.009,0.001 -1.05218,0.14704 -1.06087,0.14825 -0.0371,0.005 -2.14914,0.28877 -2.18624,0.29376 z m 5.85381,-1.49029 c 0.001,0.6003 0.0112,5.9675 0.0123,6.5678 -0.0553,0.009 3.44261,-0.58242 3.38727,-0.57308 0.002,1.04408 -0.0139,-7.4842 -0.0119,-6.44012 -0.0605,0.008 -3.32711,0.43743 -3.3876,0.4454 z"
+             style="font-size:266.66665649px;fill:#ffffff;fill-opacity:1"
+             id="path4602"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 572.05339,480.17644 q 39.71354,0 58.72395,25.13021 7.55209,14.0625 7.55209,25 v 8.98438 q 0,14.84374 -13.15104,28.12499 l 0.78125,12.23959 v 0.78125 q 0,6.90104 -3.25521,12.89062 h 0.78125 q 20.83333,-8.07291 20.83333,-16.01562 5.72917,-7.42188 10.41667,-7.42188 h 1.04166 q 8.20313,0 8.20313,16.14584 9.11458,6.90104 9.11458,11.32812 v 3.125 q -3.38541,5.85937 -11.58854,5.85937 l -11.58854,-0.91145 q -32.29167,14.0625 -40.36458,19.40104 v 2.34375 l 30.46875,13.02083 9.11458,-1.69271 q 12.36979,2.34375 12.36979,8.07292 0,4.94791 -9.89583,13.02083 0,15.36458 -8.46354,15.36458 h -0.78125 q -6.64063,0 -15.625,-15.36458 L 602.0013,647.49415 q -9.89583,12.89062 -32.29166,12.89062 -22.78646,0 -32.16146,-12.89062 -27.21354,12.89062 -27.21354,16.14583 -6.64062,11.32812 -12.36979,11.32812 h -1.82292 q -7.29166,0 -7.29166,-14.58333 -9.89584,-8.72396 -9.89584,-14.58333 0,-5.59896 11.58855,-7.29167 l 9.89583,1.69271 29.6875,-13.02083 v -2.34375 l -39.58333,-19.40104 -14.0625,0.91145 q -8.98438,0 -9.89584,-7.29166 v -1.69271 q 0,-3.51562 9.11459,-12.10937 0.52083,-14.58334 5.59895,-14.58334 h 4.29688 q 6.25,0 14.0625,14.58334 l 17.31771,8.07291 v -0.78125 l -3.25521,-11.32812 1.5625,-12.10938 q -13.93229,-14.45312 -13.93229,-42.57812 4.55729,-29.94792 38.80208,-42.57812 13.41146,-3.77605 31.90104,-3.77605 z m -65.10417,51.04167 q 0,15.36458 9.11459,30.59896 h 0.91146 V 551.4004 q -4.03646,-14.58333 -4.03646,-21.875 1.43229,-6.51042 3.125,-6.51042 h 1.69271 l 2.47395,2.47396 -1.6927,5.72917 4.16666,18.48958 v 8.85417 l -2.47396,21.875 v 1.5625 q 0,12.23958 19.92188,16.14583 8.98437,7.29167 8.98437,13.02083 v 3.125 l 13.15104,1.69271 h 11.58855 l 16.53645,-3.38542 q 0,-12.23958 25.52084,-20.83333 4.29687,-4.6875 4.29687,-14.45312 l -3.38542,-24.34896 4.29688,-20.3125 v -2.34375 l -1.69271,-5.59896 4.03646,-2.60416 q 3.25521,1.43229 3.25521,5.85937 v 6.38021 l -4.03646,22.65625 0.78125,3.125 q 9.24479,-10.67708 9.24479,-22.52604 v -5.59896 q 0,-27.34375 -29.16667,-40.49479 -16.66666,-5.46875 -31.24999,-5.46875 h -4.94792 q -44.14062,0 -57.8125,31.38021 -2.60417,7.68229 -2.60417,13.80208 z m 48.04688,20.96354 q 5.98958,1.69271 5.98958,8.20312 0,1.4323 -0.26042,3.125 -7.29166,20.1823 -19.01041,20.1823 h -0.78125 q -10.15625,0 -14.84375,-20.1823 0,-11.32812 28.90625,-11.32812 z m 31.3802,0 q 26.4323,1.30208 27.21355,11.84896 -4.81771,19.66146 -17.31771,19.66146 -8.59375,0 -17.31771,-20.1823 0,-0.39062 0,-0.65104 0,-10.41666 7.42187,-10.67708 z m 23.17709,64.58333 h 0.78125 q 36.45833,-16.92708 39.58333,-16.92708 l 13.28125,0.65104 q 4.16667,-1.04167 4.16667,-2.34375 -9.11459,-9.50521 -9.11459,-14.45312 -0.91146,-8.20313 -3.51562,-8.20313 -3.64584,1.17188 -10.41667,14.58333 -32.42187,14.58334 -32.42187,17.05729 z m -126.5625,-40.23437 q -2.21354,14.45312 -4.03646,14.45312 -6.77083,4.81771 -6.77083,8.07292 l 5.98958,1.43229 12.3698,-0.65104 q 8.20312,2.34375 39.58333,17.83854 v -1.69271 q 0,-12.23958 -13.15104,-15.49479 -26.43229,-10.80729 -26.43229,-19.27083 -3.25521,-4.6875 -7.55209,-4.6875 z m 84.11458,1.69271 1.82292,0.91145 v 20.70313 l -6.64063,6.51041 q -4.94791,-1.5625 -4.94791,-8.98437 0,-13.67187 9.76562,-19.14062 z m 6.25,-0.39063 q 8.98438,6.90104 8.98438,21.22396 0,6.25 -5.20834,7.29166 l -6.3802,-6.51041 v -21.09375 z m -37.36979,50.13021 q 5.85938,25.91145 33.72396,25.91145 28.25521,-1.82291 33.85416,-26.6927 -0.1302,-1.30209 -0.1302,-2.86459 0,-8.46354 3.64583,-22.13541 -4.6875,4.94791 -8.33333,27.60416 -9.76563,9.50521 -24.86979,9.50521 h -7.29167 q -24.86979,-2.86458 -26.43229,-14.45312 -0.91146,-12.23959 -6.77083,-22.65625 2.86458,12.10937 2.86458,20.96354 0,2.47396 -0.26042,4.81771 z m 2.34375,-22.52604 q 2.60417,4.8177 5.85938,22.52604 h 0.78125 v -11.97917 q -1.17188,-8.20312 -6.64063,-10.54687 z m 56.38021,10.54687 v 11.97917 q 1.95312,0 2.34375,-10.28646 l 3.25521,-11.32813 q -1.69271,0 -4.81771,8.72396 z m -46.35417,0.78125 v 5.72917 l 2.34375,0.65104 v -5.72917 z m 40.36458,0 v 6.38021 l 3.38542,-1.30208 v -6.1198 z m -35.41666,0.91146 v 6.51042 l 3.25521,0.65104 v -6.38021 z m 29.81771,0.78125 v 6.38021 l 3.51562,-1.04167 -0.26042,-6.11979 z m -5.98959,0 v 7.94271 l 2.9948,-0.26042 -0.39063,-7.68229 z m -12.36979,0.78125 v 7.16146 h 4.16667 v -7.16146 z m 6.77084,0 v 7.16146 h 3.2552 v -7.16146 z m -18.22917,7.94271 v 6.64062 l 3.25521,0.65104 v -6.51041 z m 18.22917,2.60416 v 6.38021 h 3.2552 v -7.29166 z m -6.77084,0 v 6.38021 h 4.16667 v -6.38021 z m -63.41145,16.01563 -14.84375,-0.65104 -0.91146,0.65104 v 2.47396 q 8.98437,7.42187 8.98437,13.67187 0.78125,7.29167 2.60417,7.29167 2.47396,0 11.58854,-13.54167 20.18229,-10.15625 24.60938,-13.93229 -2.47396,-4.81771 -2.47396,-8.72396 -24.21875,12.76042 -29.55729,12.76042 z m 107.29166,-11.97917 -2.34375,8.85417 q 29.55729,13.54166 29.55729,19.27083 0,1.95313 6.51042,7.29167 2.73437,0 4.29687,-13.54167 l 8.07292,-8.20312 q -0.78125,-2.34375 -4.81771,-2.34375 l -12.36979,0.65104 z m -49.86979,-14.58333 -0.39063,6.38021 3.77605,0.78125 v -7.16146 z m 0.13021,9.50521 v 6.51041 l 3.25521,0.78125 v -6.3802 z m -11.32813,-3.38542 v 6.38021 l 3.25521,0.91146 v -6.51042 z m 29.81771,3.90625 v 6.51042 l 3.51563,-0.78125 v -6.51042 z m 5.46875,-1.30208 v 6.51041 l 3.25521,-0.65104 v -6.64062 z m 5.85937,-2.08334 v 6.51042 l 3.38542,-0.91146 v -6.38021 z" />
+          <path
+             d="m 770.0417,600.55321 c 0.001,0.9448 0.0245,20.40941 0.0258,21.3542 -6.55761,0.63582 -11.91955,2.80766 -16.08118,6.57272 -4.07838,3.76195 -6.79262,8.71812 -8.14133,14.93864 -1.34698,6.12266 -2.05159,16.67812 -2.08386,31.87426 -0.0323,15.22997 -0.23078,25.4553 -0.62814,30.40737 -0.7205,7.94264 -2.12285,14.3542 -4.22087,19.15742 -2.01213,4.89412 -4.54363,8.8333 -7.60263,11.77043 -1.66665,1.65242 -3.59111,3.09501 -5.77352,4.31611 -1.83201,1.02117 -3.84446,1.88662 -6.03633,2.58733 -0.18134,0.0587 -0.36907,0.11575 -0.56316,0.17103 -3.27404,0.95119 -8.42537,1.42771 -15.37696,1.25735 -2.40091,-0.0588 -4.80075,-0.13425 -7.20193,-0.22593 -0.003,-1.27907 -0.0527,-20.89576 -0.0555,-22.17482 1.32527,0.0405 2.65024,0.0765 3.97533,0.10788 8.88476,0.21035 14.78556,-1.6297 17.66717,-5.20499 0.29719,-0.35904 0.57876,-0.76468 0.84471,-1.21676 0,0 10e-6,0 10e-6,0 2.3341,-3.93181 3.4717,-11.40309 3.42844,-22.24259 -0.0917,-22.98194 0.26742,-37.24455 1.02168,-43.23952 0.46432,-3.43527 1.09251,-6.62432 1.8843,-9.57289 1.49807,-5.61257 3.5855,-10.35203 6.25976,-14.25299 4.07901,-6.03864 9.8618,-10.79606 17.346,-14.40117 -9.78938,-4.32967 -16.70483,-10.48256 -20.71689,-18.18332 -1.15723,-2.24611 -2.14868,-4.94111 -2.97425,-8.07802 -2.05186,-7.74495 -3.08405,-18.18781 -3.09667,-31.19303 -0.0161,-16.5544 -0.24039,-26.30796 -0.67385,-29.49602 -0.42321,-3.9123 -1.38773,-6.97975 -2.89418,-9.2241 -0.65233,-0.97506 -1.40693,-1.79299 -2.26375,-2.45524 -2.74496,-2.27124 -8.15936,-3.4167 -16.28704,-3.64792 -1.32498,-0.0377 -2.64984,-0.0793 -3.97502,-0.12471 -0.0257,-6.58928 -0.0572,-13.17913 -0.0966,-19.73197 2.4005,0.10075 4.79962,0.18819 7.19974,0.26209 6.53061,0.20106 11.64146,0.66133 15.38229,1.48472 1.08045,0.24086 2.04426,0.5098 2.89231,0.80921 1.29441,0.4323 2.53659,0.92723 3.72649,1.48609 3.86113,1.82832 7.16262,4.34654 9.90853,7.58967 3.58711,4.23664 5.88296,9.59258 6.90264,16.14455 1.10409,6.5443 1.69803,17.33864 1.79275,32.54892 0.0948,15.22552 0.8316,25.89049 2.1992,31.76197 1.36807,5.78786 4.09755,10.33891 8.18661,13.58561 4.17686,3.24423 9.53601,4.7524 16.09989,4.47842 z"
+             style="font-size:266.66665649px;fill:#ffffff;fill-opacity:1"
+             id="path4604"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 770.88152,595.28061 v 21.22395 q -10.02605,0.26042 -16.40625,5.46875 -6.25,5.20834 -8.33334,14.19271 -2.08333,8.85417 -2.21354,30.59896 -0.13021,21.74479 -0.78125,28.64583 -1.17187,11.06771 -4.42708,17.57813 -3.125,6.64062 -7.8125,10.54687 -4.6875,4.03646 -11.97917,6.11979 -4.94791,1.43229 -16.14583,1.43229 h -7.29167 v -20.4427 h 4.03646 q 13.54167,0 17.96875,-4.94792 4.42708,-4.81771 4.42708,-21.875 0,-32.55208 1.17188,-41.27604 2.08333,-14.45312 8.33333,-23.04687 6.25,-8.72396 17.70833,-13.54167 -14.97395,-7.16146 -21.09374,-18.88021 -6.1198,-11.84896 -6.1198,-39.84375 0,-25.39062 -0.65104,-30.33854 -0.91146,-8.72396 -5.20833,-12.10937 -4.16667,-3.51563 -16.53646,-3.51563 h -4.03646 v -20.4427 h 7.29167 q 12.76042,0 18.48958,2.08333 8.33334,2.86458 13.80208,9.63542 5.46875,6.77083 7.03125,17.05729 1.69271,10.28645 1.82292,33.72395 0.13021,23.4375 2.21354,32.42188 2.08334,8.85416 8.33334,14.0625 6.3802,5.20833 16.40625,5.46875 z" />
+        </g>
+        <g
+           aria-label="dead code"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:100%;font-family:arial;-inkscape-font-specification:arial;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="text4504">
+          <path
+             d="m 87.556158,120.56973 c 1.1e-5,-0.003 0.0026,-0.65221 0.0026,-0.65476 -0.354101,0.48276 -0.872662,0.69099 -1.556407,0.6325 -0.442935,-0.0379 -0.85082,-0.18466 -1.223377,-0.44026 -0.369122,-0.25537 -0.656054,-0.59179 -0.860818,-1.011 -0.201271,-0.42223 -0.301261,-0.8968 -0.300034,-1.42568 0.0012,-0.51583 0.09464,-0.97784 0.280442,-1.38574 0.18578,-0.41111 0.463885,-0.71777 0.834236,-0.91803 0.370364,-0.20027 0.784122,-0.28438 1.241239,-0.25062 0.334994,0.0247 0.633165,0.11482 0.894603,0.26998 0.261426,0.15187 0.473918,0.34159 0.637472,0.56857 7.2e-5,-0.0486 0.0023,-2.54763 0.0023,-2.59628 0.312096,0.0243 0.624091,0.0493 0.936041,0.075 -9.6e-4,2.41377 -0.0052,4.83691 -0.0155,7.22009 -0.290887,-0.0286 -0.581822,-0.0565 -0.872847,-0.0837 z m -2.968942,-2.83214 c -0.0016,0.66312 0.147041,1.16831 0.446146,1.51919 0.299031,0.3508 0.652691,0.5433 1.060759,0.57773 0.411605,0.0347 0.76087,-0.0904 1.047849,-0.37783 0.29044,-0.29037 0.436704,-0.75861 0.438382,-1.40635 0.0018,-0.71306 -0.143622,-1.25052 -0.435947,-1.60886 -0.292392,-0.35843 -0.653097,-0.55416 -1.082294,-0.58667 -0.418702,-0.0317 -0.769702,0.10345 -1.052971,0.40313 -0.279812,0.29996 -0.420301,0.79385 -0.421924,1.47966 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4607"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 87.227809,123.56765 v -0.69246 q -0.521932,0.81648 -1.53479,0.81648 -0.65629,0 -1.209228,-0.36173 -0.54777,-0.36174 -0.852661,-1.00769 -0.299724,-0.65113 -0.299724,-1.49345 0,-0.82166 0.273885,-1.48828 0.273886,-0.6718 0.821656,-1.02836 0.54777,-0.35657 1.224731,-0.35657 0.496094,0 0.883667,0.21187 0.387573,0.20671 0.630453,0.54261 v -2.71818 h 0.925008 v 7.57576 z M 84.28742,120.8288 q 0,1.0542 0.444418,1.57613 0.444417,0.52193 1.049031,0.52193 0.609782,0 1.033529,-0.49609 0.428914,-0.50126 0.428914,-1.52446 0,-1.12654 -0.434082,-1.65364 -0.434082,-0.5271 -1.069702,-0.5271 -0.620117,0 -1.038696,0.50643 -0.413412,0.50643 -0.413412,1.5968 z" />
+          <path
+             d="m 93.711474,119.53923 c 0.322968,0.0763 0.645814,0.15322 0.968598,0.23088 -0.154905,0.52328 -0.439722,0.90777 -0.854464,1.15525 -0.414873,0.24755 -0.943392,0.33154 -1.586624,0.25645 -0.809817,-0.0945 -1.452588,-0.40072 -1.927291,-0.92029 -0.471411,-0.5227 -0.705784,-1.20614 -0.703465,-2.0573 0.0024,-0.88046 0.24391,-1.54328 0.725216,-1.98585 0.481164,-0.44244 1.10465,-0.62766 1.869806,-0.54908 0.740907,0.0761 1.345271,0.38238 1.813503,0.91783 0.468114,0.53531 0.701061,1.24361 0.698304,2.11904 -1.68e-4,0.0533 -0.0022,0.13295 -0.006,0.23899 -1.375866,-0.16509 -2.75108,-0.31939 -4.130066,-0.46102 0.03312,0.57982 0.203821,1.03818 0.512285,1.37774 0.308393,0.33949 0.693901,0.5357 1.156231,0.58877 0.344201,0.0395 0.638197,-0.0118 0.882193,-0.15511 0.243968,-0.14329 0.437916,-0.39509 0.581755,-0.75631 0,0 3.3e-5,1e-5 3.3e-5,1e-5 z m -3.078282,-1.78126 c 1.032296,0.10445 2.062785,0.21595 3.093344,0.33371 -0.04047,-0.44995 -0.157869,-0.7975 -0.352025,-1.04167 -0.298212,-0.37871 -0.685479,-0.59313 -1.161995,-0.6429 -0.43126,-0.0451 -0.795123,0.0558 -1.091418,0.30038 -0.292847,0.24499 -0.455448,0.59544 -0.487906,1.05048 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4609"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 93.315293,121.80032 0.961182,0.11885 q -0.227377,0.84233 -0.842326,1.30742 -0.61495,0.46508 -1.570964,0.46508 -1.204061,0 -1.912028,-0.73897 -0.702799,-0.74414 -0.702799,-2.08256 0,-1.38493 0.713135,-2.14974 0.713134,-0.76481 1.850016,-0.76481 1.100708,0 1.79834,0.74931 0.697631,0.74931 0.697631,2.1084 0,0.0827 -0.0052,0.24804 h -4.092774 q 0.05168,0.90434 0.511597,1.38493 0.45992,0.48059 1.147217,0.48059 0.511597,0 0.873332,-0.26872 0.361735,-0.26871 0.573608,-0.85782 z m -3.054077,-1.50379 h 3.064412 q -0.06201,-0.69246 -0.351399,-1.03869 -0.444418,-0.53744 -1.152385,-0.53744 -0.640788,0 -1.080037,0.42892 -0.434082,0.42891 -0.480591,1.14721 z" />
+          <path
+             d="m 99.460962,121.34397 c -0.347705,0.23742 -0.683071,0.39194 -1.005868,0.46438 -0.319375,0.0729 -0.662704,0.0838 -1.030137,0.0335 -0.606515,-0.083 -1.072368,-0.28708 -1.396977,-0.61282 -0.324686,-0.32917 -0.486114,-0.71405 -0.484304,-1.15711 0.0011,-0.25982 0.06269,-0.48884 0.184932,-0.68718 0.125714,-0.20122 0.28768,-0.3548 0.485884,-0.46043 0.201669,-0.1052 0.427503,-0.17566 0.677445,-0.21108 0.18386,-0.0237 0.461712,-0.0338 0.8327,-0.0297 0.756664,0.01 1.311857,-0.0207 1.669621,-0.0949 0.0039,-0.1243 0.0059,-0.20343 0.006,-0.23713 0.0011,-0.37112 -0.08655,-0.64432 -0.262866,-0.81894 -0.238573,-0.23666 -0.59351,-0.38479 -1.065019,-0.44388 -0.440233,-0.0552 -0.766573,-0.0195 -0.978435,0.10542 -0.208463,0.12208 -0.363452,0.36645 -0.465081,0.73245 -0.305211,-0.0779 -0.610479,-0.15521 -0.915854,-0.23198 0.08427,-0.36758 0.222041,-0.65571 0.413403,-0.86401 0.191339,-0.21163 0.467627,-0.35824 0.828627,-0.43898 0.360995,-0.0841 0.779123,-0.0973 1.254052,-0.0385 0.471484,0.0584 0.854325,0.16063 1.148593,0.30622 0.294269,0.1456 0.510466,0.31055 0.648611,0.4943 0.13816,0.18037 0.23461,0.39954 0.28934,0.65726 0.0307,0.15972 0.0456,0.44272 0.0443,0.84851 3e-5,-0.009 -0.004,1.22642 -0.004,1.21695 -0.003,0.84831 0.0128,1.38716 0.0497,1.61905 0.0404,0.22875 0.11879,0.45455 0.23525,0.67769 -0.32526,-0.0474 -0.65059,-0.0945 -0.97603,-0.14107 -0.09587,-0.20242 -0.157004,-0.43169 -0.183421,-0.68807 0,0 3e-6,0 3e-6,0 z m -0.06911,-2.04209 c -0.340319,0.0893 -0.849199,0.13511 -1.529349,0.14001 -0.384881,0.003 -0.657523,0.0285 -0.817198,0.0748 -0.15977,0.0464 -0.283281,0.12927 -0.370496,0.24849 -0.08721,0.11589 -0.131134,0.25231 -0.13179,0.40931 -0.001,0.24052 0.09175,0.45295 0.278272,0.63805 0.189959,0.18553 0.466994,0.30281 0.830915,0.35212 0.360499,0.0488 0.681331,0.0175 0.962711,-0.095 0.28138,-0.11583 0.488432,-0.29743 0.621252,-0.54527 0.101352,-0.19151 0.152898,-0.48779 0.154439,-0.88885 3e-6,-6.9e-4 0.0012,-0.333 0.0012,-0.33369 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4611"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 99.030706,122.89069 q -0.516764,0.43925 -0.997355,0.62012 -0.475423,0.18086 -1.023193,0.18086 -0.904338,0 -1.390096,-0.43925 -0.485758,-0.44441 -0.485758,-1.13171 0,-0.40308 0.180867,-0.73381 0.186035,-0.33589 0.480591,-0.53743 0.299723,-0.20154 0.671793,-0.30489 0.273886,-0.0724 0.826823,-0.13953 1.126547,-0.13436 1.658814,-0.32039 0.0052,-0.1912 0.0052,-0.24288 0,-0.56844 -0.263549,-0.80099 -0.356568,-0.31522 -1.059367,-0.31522 -0.656291,0 -0.971517,0.23254 -0.310059,0.22738 -0.45992,0.81132 L 95.2945,119.64541 q 0.124024,-0.58394 0.408244,-0.94051 0.284221,-0.36174 0.821655,-0.55294 0.537435,-0.19637 1.245402,-0.19637 0.7028,0 1.14205,0.16536 0.439249,0.16537 0.645955,0.41858 0.206706,0.24805 0.289388,0.63046 0.04651,0.23771 0.04651,0.85782 v 1.24024 q 0,1.29708 0.05684,1.64331 0.06201,0.34106 0.237716,0.65629 h -0.971521 q -0.144694,-0.28939 -0.186036,-0.67696 z m -0.07751,-2.07739 q -0.506429,0.2067 -1.519287,0.3514 -0.573609,0.0827 -0.81132,0.18603 -0.237712,0.10335 -0.366903,0.30489 -0.129191,0.19637 -0.129191,0.43925 0,0.37207 0.279053,0.62012 0.28422,0.24805 0.826823,0.24805 0.537434,0 0.956014,-0.23255 0.418579,-0.23771 0.614949,-0.64595 0.149862,-0.31523 0.149862,-0.93018 z" />
+          <path
+             d="m 105.348,122.88617 c 1e-5,-0.003 0.004,-0.68633 0.004,-0.68893 -0.35193,0.48858 -0.86605,0.67872 -1.5432,0.57514 -0.43866,-0.0671 -0.84227,-0.24779 -1.21071,-0.54093 -0.36501,-0.29266 -0.6485,-0.66544 -0.85045,-1.11878 -0.1985,-0.45629 -0.29665,-0.96 -0.29453,-1.51269 0.002,-0.5391 0.0953,-1.01489 0.27999,-1.42803 0.18464,-0.41649 0.46056,-0.7178 0.82772,-0.90323 0.36716,-0.18544 0.77721,-0.24794 1.22999,-0.18622 0.33184,0.0452 0.6271,0.15583 0.88587,0.33207 0.25878,0.17281 0.46899,0.38215 0.63068,0.62792 1.3e-4,-0.0482 0.006,-2.6592 0.006,-2.70737 0.0157,0.002 0.91154,0.12209 0.92725,0.12418 -0.004,2.51374 -0.0119,5.05017 -0.028,7.56123 0.0147,0.002 -0.87915,-0.13665 -0.86443,-0.13436 z m -2.93489,-3.15109 c -0.003,0.69354 0.14345,1.233 0.43898,1.62039 0.29546,0.38731 0.64529,0.61204 1.04944,0.67295 0.40765,0.0615 0.75385,-0.0499 1.03879,-0.33597 0.28833,-0.28887 0.43423,-0.7732 0.43713,-1.45232 0.003,-0.74766 -0.14003,-1.31756 -0.42903,-1.70807 -0.28906,-0.3906 -0.64613,-0.61485 -1.07124,-0.67373 -0.41472,-0.0574 -0.76267,0.0622 -1.04371,0.35736 -0.27764,0.29568 -0.41754,0.80207 -0.42036,1.51939 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4613"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 104.90115,123.56765 v -0.69246 q -0.52193,0.81648 -1.53479,0.81648 -0.65629,0 -1.20923,-0.36173 -0.54777,-0.36174 -0.85266,-1.00769 -0.29972,-0.65113 -0.29972,-1.49345 0,-0.82166 0.27388,-1.48828 0.27389,-0.6718 0.82166,-1.02836 0.54777,-0.35657 1.22473,-0.35657 0.49609,0 0.88366,0.21187 0.38758,0.20671 0.63046,0.54261 v -2.71818 h 0.92501 v 7.57576 z m -2.94039,-2.73885 q 0,1.0542 0.44442,1.57613 0.44441,0.52193 1.04903,0.52193 0.60978,0 1.03353,-0.49609 0.42891,-0.50126 0.42891,-1.52446 0,-1.12654 -0.43408,-1.65364 -0.43408,-0.5271 -1.0697,-0.5271 -0.62012,0 -1.0387,0.50643 -0.41341,0.50643 -0.41341,1.5968 z" />
+          <path
+             d="m 114.1993,122.22925 c 0.11852,0.0335 0.79435,0.22436 0.91288,0.25783 -0.10325,0.63131 -0.36264,1.09932 -0.77796,1.40228 -0.41201,0.30006 -0.91733,0.40205 -1.51681,0.30808 -0.42927,-0.0673 -0.81044,-0.20861 -1.14323,-0.42295 -0.248,-0.16179 -0.46905,-0.36455 -0.66313,-0.60803 -0.44973,-0.57148 -0.67208,-1.31874 -0.66788,-2.2441 0.003,-0.59845 0.1025,-1.10699 0.29962,-1.52681 0.19709,-0.41974 0.49485,-0.71204 0.89327,-0.87689 0.0535,-0.0224 0.10766,-0.0426 0.16239,-0.0608 0.35833,-0.12023 0.74222,-0.15214 1.15152,-0.0951 0.59632,0.0831 1.08309,0.30497 1.46082,0.66732 0.37768,0.35879 0.61875,0.82953 0.72315,1.41232 -0.0104,1.6e-4 -0.89354,0.0127 -0.90392,0.0128 -0.0846,-0.38863 -0.23674,-0.6933 -0.45649,-0.91413 -0.21633,-0.22036 -0.47954,-0.35217 -0.78973,-0.39607 -0.46868,-0.0663 -0.85039,0.0511 -1.14474,0.35129 -0.0151,0.0152 -0.0297,0.0309 -0.044,0.0473 0,0 0,1e-5 0,1e-5 -0.26361,0.30143 -0.39669,0.80072 -0.39984,1.49914 -0.003,0.72119 0.12506,1.27268 0.38554,1.65519 0,0 0,0 0,0 0.009,0.0134 0.0186,0.0266 0.0281,0.0396 0.28075,0.38214 0.6486,0.6092 1.10331,0.67934 0.36521,0.0563 0.6706,-0.0108 0.91647,-0.2021 0.24581,-0.19129 0.40277,-0.51998 0.47067,-0.98552 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4615"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 113.74815,121.55744 0.91468,0.11885 q -0.14987,0.94568 -0.76998,1.48312 -0.61495,0.53226 -1.51412,0.53226 -1.12655,0 -1.81384,-0.7338 -0.68213,-0.73898 -0.68213,-2.11357 0,-0.88883 0.29455,-1.55546 0.29456,-0.66662 0.894,-0.99735 0.60462,-0.3359 1.31259,-0.3359 0.894,0 1.46244,0.45475 0.56844,0.44959 0.72864,1.28158 l -0.90434,0.13952 q -0.12919,-0.55293 -0.45992,-0.83199 -0.32556,-0.27905 -0.79065,-0.27905 -0.7028,0 -1.14205,0.50643 -0.43925,0.50126 -0.43925,1.59163 0,1.10588 0.42375,1.60714 0.42374,0.50126 1.10587,0.50126 0.54777,0 0.91468,-0.33589 0.3669,-0.3359 0.46508,-1.03353 z" />
+          <path
+             d="m 115.5654,121.67913 c 0.005,-1.04202 0.28959,-1.77241 0.85491,-2.19655 0.47209,-0.35197 1.04643,-0.48321 1.72242,-0.39262 0.75156,0.10072 1.36444,0.43708 1.83921,1.01415 0.47466,0.57333 0.71037,1.3135 0.70634,2.22065 -0.003,0.73494 -0.11256,1.30022 -0.32746,1.69352 -0.21147,0.39026 -0.52029,0.67252 -0.92654,0.84586 -0.40287,0.17387 -0.84272,0.22427 -1.3199,0.15222 -0.76533,-0.11556 -1.3839,-0.46592 -1.85473,-1.04473 -0.46761,-0.57856 -0.69878,-1.34235 -0.69425,-2.2925 z m 0.95385,0.13858 c -0.003,0.72263 0.14636,1.28775 0.44995,1.69565 0.30353,0.40424 0.68707,0.64205 1.15041,0.71087 0.46001,0.0683 0.84357,-0.0575 1.15101,-0.3783 0.30734,-0.32074 0.46298,-0.8562 0.4664,-1.60357 0.003,-0.70446 -0.14908,-1.25751 -0.45635,-1.65928 -0.30389,-0.40495 -0.68399,-0.63739 -1.14042,-0.69951 -0.46326,-0.0631 -0.84852,0.0633 -1.1555,0.37847 -0.30707,0.31521 -0.46205,0.83301 -0.4655,1.55567 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4617"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 115.11241,120.82363 q 0,-1.52445 0.84749,-2.25826 0.70797,-0.60978 1.726,-0.60978 1.13171,0 1.85001,0.74414 0.71831,0.73897 0.71831,2.04639 0,1.05936 -0.3204,1.66915 -0.31522,0.60461 -0.92501,0.94051 -0.60461,0.33589 -1.32291,0.33589 -1.15239,0 -1.86552,-0.73897 -0.70797,-0.73897 -0.70797,-2.12907 z m 0.95601,0 q 0,1.0542 0.45993,1.5813 0.45992,0.52193 1.15755,0.52193 0.69246,0 1.15238,-0.5271 0.45992,-0.5271 0.45992,-1.60713 0,-1.01803 -0.46509,-1.53996 -0.45992,-0.5271 -1.14721,-0.5271 -0.69763,0 -1.15755,0.52193 -0.45993,0.52193 -0.45993,1.57613 z" />
+          <path
+             d="m 125.29854,125.90176 c 2e-5,-0.003 0.004,-0.72971 0.004,-0.73253 -0.34829,0.53183 -0.8576,0.75271 -1.52838,0.66193 -0.43457,-0.0588 -0.83428,-0.24113 -1.19907,-0.54496 -0.36137,-0.30337 -0.64185,-0.69477 -0.84144,-1.17292 -0.19618,-0.48137 -0.29288,-1.0146 -0.29031,-1.60019 0.003,-0.57126 0.0952,-1.07582 0.27823,-1.51525 0.18301,-0.44299 0.45615,-0.7653 0.81943,-0.96799 0.36324,-0.20267 0.7688,-0.27738 1.21652,-0.22383 0.32812,0.0392 0.62007,0.14744 0.87594,0.32541 0.25588,0.17436 0.46375,0.38818 0.62369,0.64197 1.3e-4,-0.0516 0.005,-2.79632 0.005,-2.84798 0.30552,0.0335 0.61091,0.0665 0.91625,0.0989 -0.003,2.63664 -0.01,5.31604 -0.0235,7.9865 -0.2854,-0.0358 -0.57082,-0.0722 -0.85633,-0.10909 z m -2.90537,-3.26229 c -0.003,0.73474 0.14122,1.30481 0.43367,1.70958 0.2924,0.40472 0.63872,0.63488 1.03898,0.68801 0.40372,0.0536 0.74655,-0.0761 1.02862,-0.38949 0.28544,-0.31647 0.42965,-0.83576 0.43231,-1.55473 0.003,-0.79156 -0.13893,-1.38825 -0.42481,-1.79125 -0.28592,-0.40309 -0.63906,-0.62894 -1.05948,-0.67992 -0.41014,-0.0497 -0.75437,0.0843 -1.03252,0.40198 -0.27481,0.31819 -0.41354,0.85584 -0.41677,1.61582 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4619"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 124.91026,123.56765 v -0.69246 q -0.52193,0.81648 -1.53479,0.81648 -0.65629,0 -1.20923,-0.36173 -0.54777,-0.36174 -0.85266,-1.00769 -0.29972,-0.65113 -0.29972,-1.49345 0,-0.82166 0.27388,-1.48828 0.27389,-0.6718 0.82166,-1.02836 0.54777,-0.35657 1.22473,-0.35657 0.4961,0 0.88367,0.21187 0.38757,0.20671 0.63045,0.54261 v -2.71818 h 0.92501 v 7.57576 z m -2.94039,-2.73885 q 0,1.0542 0.44442,1.57613 0.44442,0.52193 1.04903,0.52193 0.60978,0 1.03353,-0.49609 0.42892,-0.50126 0.42892,-1.52446 0,-1.12654 -0.43409,-1.65364 -0.43408,-0.5271 -1.0697,-0.5271 -0.62012,0 -1.0387,0.50643 -0.41341,0.50643 -0.41341,1.5968 z" />
+          <path
+             d="m 131.33774,124.70115 c 0.31689,0.0728 0.63371,0.14484 0.95053,0.21614 -0.15109,0.58944 -0.43005,1.03248 -0.83688,1.32575 -0.40691,0.29332 -0.92593,0.40663 -1.55742,0.33833 -0.79509,-0.086 -1.42595,-0.42312 -1.89135,-1.00167 -0.46219,-0.58211 -0.69128,-1.34676 -0.68831,-2.29155 0.003,-0.97786 0.24024,-1.70792 0.71182,-2.19749 0.47145,-0.48944 1.08196,-0.69768 1.83118,-0.62684 0.72547,0.0686 1.31748,0.38546 1.77662,0.95759 0.45903,0.572 0.68834,1.3416 0.68696,2.31249 -8e-5,0.0591 -0.002,0.14752 -0.005,0.26537 -1.34965,-0.11963 -2.69777,-0.25438 -4.04965,-0.4023 0.0322,0.64391 0.19938,1.15419 0.50188,1.52937 0.30247,0.37514 0.6807,0.58834 1.13446,0.6365 0.33779,0.0358 0.62629,-0.0303 0.86561,-0.19828 0.2393,-0.16793 0.42933,-0.45599 0.57004,-0.86339 0,0 -1.6e-4,-2e-5 -1.6e-4,-2e-5 z m -3.01858,-1.91036 c 1.01166,0.10852 2.02154,0.20974 3.03185,0.30287 -0.0401,-0.49678 -0.15546,-0.87632 -0.34586,-1.13958 -0.29242,-0.40839 -0.67188,-0.63344 -1.13858,-0.67834 -0.4224,-0.0406 -0.7788,0.0755 -1.06907,0.34876 -0.28691,0.27367 -0.44635,0.66169 -0.47834,1.16629 z"
+             style="font-size:10.58333302px;fill:#ffffff;fill-opacity:1;stroke-width:0.26458332px"
+             id="path4621"
+             inkscape:connector-curvature="0"
+             inkscape:original-d="m 130.99775,121.80032 0.96118,0.11885 q -0.22738,0.84233 -0.84233,1.30742 -0.61495,0.46508 -1.57096,0.46508 -1.20406,0 -1.91203,-0.73897 -0.7028,-0.74414 -0.7028,-2.08256 0,-1.38493 0.71314,-2.14974 0.71313,-0.76481 1.85001,-0.76481 1.10071,0 1.79834,0.74931 0.69763,0.74931 0.69763,2.1084 0,0.0827 -0.005,0.24804 h -4.09278 q 0.0517,0.90434 0.5116,1.38493 0.45992,0.48059 1.14722,0.48059 0.51159,0 0.87333,-0.26872 0.36173,-0.26871 0.57361,-0.85782 z m -3.05408,-1.50379 h 3.06441 q -0.062,-0.69246 -0.3514,-1.03869 -0.44442,-0.53744 -1.15238,-0.53744 -0.64079,0 -1.08004,0.42892 -0.43408,0.42891 -0.48059,1.14721 z" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/notebooks/README.org b/notebooks/README.org
index 2926176d3d92aea830b912790d95f481feed7566..8f158d70aac51db3b755c6ec39ead3a70f8b76c3 100644
--- a/notebooks/README.org
+++ b/notebooks/README.org
@@ -21,3 +21,4 @@ speichern unter.../ wählen:
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar03extra.ipynb][3 extra: reguläre Ausdrücke]]
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar04.ipynb][4: Fallstudie: Schnittstellenentwurf]]
 - [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar05.ipynb][5: Verzweigungen und Rekursion]]
+- [[https://scm.cms.hu-berlin.de/ibi/python/raw/master/notebooks/seminar06.ipynb][6: Ertragreiche Funktionen]]
diff --git a/notebooks/seminar05.ipynb b/notebooks/seminar05.ipynb
index 951a86aeb99ff067b1fa97622c6a18e3a9e937ab..948ae16b97b40bab89513eb5647ae1f671d6684b 100644
--- a/notebooks/seminar05.ipynb
+++ b/notebooks/seminar05.ipynb
@@ -640,15 +640,12 @@
    "outputs": [],
    "source": [
     "# implementieren Sie hier die Funktion do_n\n",
-    "def do_n(f):\n",
-    "    f()\n",
-    "    f()\n",
     "\n",
     "# eine Testfunktion\n",
     "def testfunktion():\n",
     "    print(\"Ich wurde aufgerufen!\")\n",
     "\n",
-    "# rufen Sie hier die Funktion auf, indem Sie ihr die Funktion"
+    "# rufen Sie hier die Funktion do_n auf, indem Sie die Funktion testfunktion sowie den Wert 7 als Argument übergeben "
    ]
   },
   {
@@ -1084,7 +1081,7 @@
    "source": [
     "![Smiley](https://upload.wikimedia.org/wikipedia/commons/3/3e/Cool-smiley.svg)\n",
     "\n",
-    "Herzlichen Glückwunsch! Sie haben das 5. Kapitel geschafft. Weiter geht es in [6: Ergebnisreiche Funktionen](seminar06.ipynb)."
+    "Herzlichen Glückwunsch! Sie haben das 5. Kapitel geschafft. Weiter geht es in [6: Ertragreiche Funktionen](seminar06.ipynb)."
    ]
   }
  ],
diff --git a/notebooks/seminar06.ipynb b/notebooks/seminar06.ipynb
index 26e0b6d83704ad4208cba6bd1ffb2b69777cf782..0fccb60255fa8561233376de456938b0b3d032a1 100644
--- a/notebooks/seminar06.ipynb
+++ b/notebooks/seminar06.ipynb
@@ -8,9 +8,7 @@
     "\n",
     "## Exkurs: Was mir an Python gefällt\n",
     "\n",
-    "In dieser Rubrik, die immer 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 auch ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.\n",
-    "\n",
-    "Mit den Operatoren aus diesem Kapitel können wir ganz leicht das Verfahren zur Umwandlung einer Dezimalzahl in ihre Binärdarstellung implementieren:"
+    "In dieser Rubrik, die immer 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 auch ein Exkurs ist, können Sie diese Rubrik gerne auch erst einmal überspringen.\n"
    ]
   },
   {
@@ -19,7 +17,71 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "pass"
+    "\"\"\" \n",
+    "Quelle: https://teampython.wordpress.com/2015/12/12/print-a-christmas-tree/\n",
+    "Python 3 version by antiloquax (2015), based on code from datamungeblog.com.\n",
+    "\"\"\"\n",
+    " \n",
+    "from random import choice\n",
+    "from random import random\n",
+    " \n",
+    "# If you change this, use an odd number.\n",
+    "size = 21\n",
+    "\n",
+    "# Probability that a character will be green.\n",
+    "prob_gr = 0.6\n",
+    "# Colour codes.\n",
+    "colours = [31, 33, 34, 35, 36, 37]\n",
+    "# Characters to use for decorations. Experiment with these.\n",
+    "# The chr(169) and chr(174) characters may not work in all terminals\n",
+    "# (extended ASCII, c and r in a circle).\n",
+    "decs = ['@', '&', '*', chr(169), chr(174)]\n",
+    "\n",
+    "# Format string for printing blinking characters.\n",
+    "blink_col = \"\\033[5;{0}m{1}\\033[0m\"\n",
+    "# String to print a green octothorpe ('#').\n",
+    "leaf = \"\\033[32m#\\033[0m\"\n",
+    "\n",
+    "# Width of the tree, will grow by 2 each time.\n",
+    "width = 1\n",
+    "# Initialise the tree string, with a star at the top.\n",
+    "tree = \"\\n{}*\\n\".format(' ' * (size))\n",
+    "\n",
+    "\"\"\" Main Loop starts now.\"\"\"\n",
+    " \n",
+    "\"\"\" We can't use the normal \"format\" centering approach:\n",
+    "    (\"{:^nn}\".format(string) where \"nn\" is the width of the line), \n",
+    "    with these ansi codes. This is because Python sees the strings as being\n",
+    "    more than one character long (15 & 10 for baubles and leaves).\"\"\"\n",
+    "\n",
+    "# Loop from (size - 1) down to 0, using the counter as the padding size.\n",
+    "for pad in range(size - 1, -1, -1):\n",
+    "    # Increase the width of the tree by 2.\n",
+    "    width += 2\n",
+    "     \n",
+    "    # Put the characters for the line in \"temp\".\n",
+    "    temp = \"\"\n",
+    "    for j in range(width):\n",
+    "        # Make some leaves.\n",
+    "        if random() < prob_gr:\n",
+    "            temp += leaf\n",
+    "        # And also some baubles.\n",
+    "        else:\n",
+    "            temp += blink_col.format(choice(colours), choice(decs))\n",
+    "\n",
+    "    # Add that string to the line, with padding.\n",
+    "    tree += \"{0}{1}\\n\".format(' ' * pad, temp)\n",
+    "\n",
+    "# Add a \"trunk\" of 2 lines and return.\n",
+    "print(tree + \"{0}{1}\\n\".format(' ' * (size - 1), \"000\") * 2)\n",
+    "print(\"\\x46\\x72\\x6f\\x68\\x65\\x20\\x46\\x65\\x73\\x74\\x74\\x61\\x67\\x65\\x21\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Und noch viele weitere schöne Beispiele: https://codegolf.stackexchange.com/questions/15860/"
    ]
   },
   {
@@ -41,24 +103,13 @@
    "source": [
     "### 6.1 Rückgabewerte\n",
     "\n",
-    "Der Aufruf einer Funktion erzeugt einen Rückgabewert, den wir üblicherweise einer Variable zuweisen oder als Teil eines Ausdrucks verwenden:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import math\n",
+    "Der Aufruf einer Funktion erzeugt einen Rückgabewert, den wir üblicherweise einer Variable zuweisen oder als Teil eines Ausdrucks verwenden:\n",
+    "\n",
+    "```python\n",
     "e = math.exp(1.0)\n",
-    "height = radius * math.sin(radians)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
+    "height = radius * math.sin(radians)\n",
+    "```\n",
+    "\n",
     "Die (meisten) Funktionen, die wir bisher geschrieben haben sind \"leer\" - sie haben keinen Rückgabewert. Präziser ausgedrückt ist ihr Rückgabewert `None` (also nichts).\n",
     "\n",
     "In diesem Kapitel schreiben wir (endlich) ertragreiche Funktionen. Das erste Beispiel ist die Funktion `kreisflaeche`, die die Fläche eines Kreises für einen gegebenen Radius berechnet:"
@@ -122,11 +173,7 @@
     "\n",
     "Sobald eine `return`-Anweisung ausgeführt wird, wird die Funktion beendet, ohne die folgenden Anweisungen auszuführen. Code der nach einer `return`-Anweisung folgt oder an einer anderen Stelle, die während der Ausführung niemals erreicht werden kann, wird **toter Code** (*dead code*) genannt.\n",
     "\n",
-    "<center>\n",
-    "{☠} \n",
-    "<br/>\n",
-    "dead code\n",
-    "</center>\n",
+    "![dead code](https://amor.cms.hu-berlin.de/~jaeschkr/teaching/spp/deadcode.svg)\n",
     "\n",
     "In einer eintragreichen Funktion sollten wir sicherstellen, dass jeder mögliche Pfad durch den Code eine `return`-Anweisung erreicht. Zum Beispiel:"
    ]
@@ -181,7 +228,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "Schreiben Sie eine Funktion `compare`, die zwei Parameter erwartet, `x` und `y`, und `1` zurückliefert, wenn `x > y` ist, `0` wenn `x == y` gilt und `-1` für `x < <`:"
+    "Schreiben Sie eine Funktion `compare`, die zwei Parameter `x` und `y` erwartet und `1` zurückliefert, wenn `x > y` ist, `0` wenn `x == y` gilt und `-1` für `x < y`:"
    ]
   },
   {
@@ -201,7 +248,7 @@
     "\n",
     "Wenn Sie größere Funktionen schreiben kann es sein, dass Sie mehr Zeit mit der Fehlersuche (Debugging) verbringen.\n",
     "\n",
-    "Um mit zunehmend komplexeren Programmen klarzukommen, können Sie eine verwenden, die sich **schrittweise Entwicklung** (*incremental development*) nennt. Das Ziel bei der schrittweisen Entwicklung ist die Vermeidung langer Fehlersuch-Sitzungen, indem immer nur kleine Codestücke hinzugefügt und getestet werden.\n",
+    "Um mit zunehmend komplexeren Programmen klarzukommen, können Sie eine Methode verwenden, die sich **schrittweise Entwicklung** (*incremental development*) nennt. Das Ziel bei der schrittweisen Entwicklung ist die Vermeidung langer Fehlersuch-Sitzungen, indem immer nur kleine Codestücke hinzugefügt und getestet werden.\n",
     "\n",
     "Nehmen wir z.B. an, dass wir die Entfernung zwischen zwei Punkten berechnen wollen, die durch die Koordinaten $(x_1, y_1)$ und $(x_2, x_2)$ gegeben sind. Nach dem [Satz des Pythagoras](https://de.wikipedia.org/wiki/Satz_des_Pythagoras) ist die Entfernung: \n",
     "\n",
@@ -252,7 +299,7 @@
     "\n",
     "([Petrus3743](https://commons.wikimedia.org/wiki/File:01-Rechtwinkliges_Dreieck-Pythagoras.svg), Wikimedia Commons)\n",
     "\n",
-    "An dieser Stelle haben wir uns davon überzeugt, dass die Funktion syntaktisch korrekt ist und wir können damit beginnen, Code zum Rumpf hinzuzufügen. Ein naheliegender nächster Schritt ist die Differenzen $x_2-x_1$ und $y_2-y_1$ zu berechnen. Die nächste Version speichert die Werte in temporären Variablen und gibt sie aus: "
+    "An dieser Stelle haben wir uns davon überzeugt, dass die Funktion syntaktisch korrekt ist und wir können damit beginnen, Code zum Rumpf hinzuzufügen. Ein naheliegender nächster Schritt ist, die Differenzen $x_2-x_1$ und $y_2-y_1$ zu berechnen. Die nächste Version speichert die Werte in temporären Variablen und gibt sie aus: "
    ]
   },
   {
@@ -347,6 +394,15 @@
     "# beginnen Sie hier mit der Entwicklung der Funktion"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![Right Triangle](http://www.mezzacotta.net/owls/comics/0336.png)\n",
+    "\n",
+    "([Nina Owens](http://geometry157.blogspot.de/2013/06/types-of-triangles-there-are-several.html))"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -406,7 +462,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "Die Hilfsvariablen `radius` und `ergebnis` sind hilfreich für  Entwicklung und Debugging, aber sobald das Programm funktioniert können wir es prägnanter aufschreiben durch die Komposition von Funktionsaufrufen:"
+    "Die Hilfsvariablen `radius` und `ergebnis` sind hilfreich für  Entwicklung und Debugging, aber sobald das Programm funktioniert können wir es kompakter aufschreiben durch die **Komposition** von Funktionsaufrufen:"
    ]
   },
   {
@@ -432,7 +488,7 @@
    "source": [
     "### 6.4 Boolesche Funktionen\n",
     "\n",
-    "Funkionen können Boolesche Werte zurückliefern. Das ist praktkisch, um  komplizierte Tests in einer Funktion zu verstecken. Zum Beispiel: "
+    "Funktionen können Boolesche Werte zurückliefern. Das ist praktkisch, um  komplizierte Tests in einer Funktion zu verstecken. Zum Beispiel: "
    ]
   },
   {
@@ -541,7 +597,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "# def implementieren Sie hier die Funktion"
+    "# implementieren Sie hier die Funktion"
    ]
   },
   {
@@ -558,8 +614,7 @@
     "\n",
     "Um einen Idee davon zu bekommen, was wir mit den Werkzeugen, die wir bisher kennengelernt haben, schon erreichen können, wollen wir einige rekursiv definierte mathematische Funktionen implementieren. Eine rekursive Definition ist ähnlich einer [zirkulären Definition](https://en.wikipedia.org/wiki/Circular_definition) (*circular definition* - leider konnte ich dafür keinen deutschen Begriff finden) in dem Sinne, dass die Definition eine Referenz auf das was definiert wird enthält. Eine richtig zirkuläre Definition ist nicht sehr nützlich:\n",
     "\n",
-    "**vorpal:**\n",
-    "- Ein Adjektiv welches genutzt wird, um etwas zu beschreiben, was vorpal ist.\n",
+    "**vorpal:** Ein Adjektiv welches genutzt wird, um etwas zu beschreiben, was vorpal ist.\n",
     "\n",
     "Wenn Sie so eine Definition in einem Wörterbuch sehen, sind sie vermutlich verärgert. Andererseits, wenn wir uns die Definition der Fakultätsfunktion heraussuchen (die mit dem Symbol ! bezeichnet wird), finden wir vermutlich etwas in der Art:\n",
     "\n",
@@ -647,6 +702,411 @@
     "Im untersten (letzten) Block existieren die lokalen Variablen `rekursion` und `ergebnis` nicht, denn derjenige Zweig, welcher diese erzeugt, wird nicht ausgeführt."
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.6 Vertrauensvorschuss\n",
+    "\n",
+    "Dem Kontrollfluss zu folgen ist eine Möglichkeit, Programme zu lesen, aber das kann ganz schön aufwendig sein. Eine Alternative ist, dem Code einen \"Vertrauensvorschuss\" zu geben. Wenn wir einen Funktionsaufruf sehen, können wir, statt dem Kontrollfluss zu folgen, einfach *annehmen*, dass die Funktion richtig arbeitet und das korrekte Ergebnis zurückliefert.\n",
+    "\n",
+    "Tatsächlich praktizieren wir das bisher schon mit den eingebauten Funktionen. Wenn wir `math.cos` oder `print` aufrufen, schauen wir uns den Rumpf dieser Funktionen nicht an. Wir gehen einfach davon aus, dass sie funktionieren, weil die Leute, die sie geschrieben haben, gute Programmierer/innen sind. (Zumindest nehmen wir das vielleicht an ;-)\n",
+    "\n",
+    "Das gleiche gilt wenn wir eine unserer eigenen Funktionen aufrufen. Beispielsweise haben wir in [Abschnitt 6.4](#6.4-Boolesche-Funktionen) eine Funktion `ist_teilbar` geschrieben, die bestimmt, ob eine Zahl durch eine andere teilbar ist. Sobald wir uns davon überzeugt haben, dass diese Funktion korrekt arbeitet - durch Verstehen des Codes und Testen - können wir die Funktion nutzen, ohne uns den Rumpf noch einmal anzuschauen.\n",
+    "\n",
+    "Das gleiche gilt für rekursive Programme. Wenn wir auf einen rekursiven Funktionsaufruf treffen, können wir, anstatt dem Kontrollfluss zu folgen, annehmen, das der rekursive Aufruf funktioniert (also den richtigen Wert zurückliefert) und uns selbst beispielsweise fragen \"Angenommen, ich kann die Fakultät von $n-1$ berechnen, kann ich dann die Fakultät von $n$ berechnen?\" Das funktioniert offensichtlich - indem wir mit $n$ multiplizieren.\n",
+    "\n",
+    "Natürlich ist es etwas seltsam, anzunehmen, dass die Funktion richtig arbeitet, wenn wir sie noch nicht fertig implementiert haben, aber daher wird das ganze ja auch Vertrauensvorschuss genannt. "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.7 Ein weiteres Beispiel\n",
+    "\n",
+    "Neben der Fakultät ist ein weiteres übliches Beispiel für eine rekursiv definierte mathematische Funktion die [Fibonacci-Folge](https://de.wikipedia.org/wiki/Fibonacci-Folge):\n",
+    "\n",
+    "\\begin{align}\n",
+    "fibonacci(0) &= 0\\\\\n",
+    "fibonacci(1) &= 1\\\\\n",
+    "fibonacci(n) &= fibonacci(n-1) + fibonacci(n-2)\\\\\n",
+    "\\end{align}\n",
+    "\n",
+    "Übersetzt nach Python schaut das so aus:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def fibonacci(n):\n",
+    "    if n == 0:\n",
+    "        return 0\n",
+    "    elif  n == 1:\n",
+    "        return 1\n",
+    "    else:\n",
+    "        return fibonacci(n-1) + fibonacci(n-2)\n",
+    "\n",
+    "fibonacci(7)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Wenn Sie hier versuchen, dem Kontrollfluss zu folgen, wird - selbst für kleine Werte von $n$ - ihr Kopf explodieren. Aber mit Vertrauensvorschuss  - wenn wir annehmen dass die zwei rekursiven Aufrufe korrekt funktionieren - wird klar, dass wir das richtige Ergebnis durch Addition der Werte erhalten.\n",
+    "\n",
+    "**Übung:** Probierem Sie aus, bis zu welchem Wert von $n$ Sie die Funktion noch aufrufen können, ohne zu lange warten zu müssen. Wenn Sie wollen, können Sie auch `print`-Ausgaben zur Funktion hinzufügen, um den Ablauf nachzuverfolgen (`print(' '*n, n)` erzeugt beispielsweise eine übersichtliche Ausgabe). Rufen Sie die Funktion dann aber besser mit sehr kleinen Werten für `n` auf.\n",
+    "\n",
+    "![Fibonacci-Folge](https://upload.wikimedia.org/wikipedia/commons/9/95/FibonacciBlocks.svg)\n",
+    "\n",
+    "([Borb](https://commons.wikimedia.org/wiki/File:FibonacciBlocks.svg))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.8 Typen prüfen\n",
+    "\n",
+    "Was passiert, wenn wir `fakultaet` mit dem Wert `1.5` als Argument aufrufen?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fakultaet(1.5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Das sieht nach einer unendlichen Rekursion aus. Aber wie kann das sein? Die Funktion hat doch einen Basisfall - wenn `n == 0` ist. \n",
+    "\n",
+    "![What the heck?](http://s2.quickmeme.com/img/02/0213043c2680cd6a7dad73df5359c75ce089262b3b86476a62e6564f54c40c08.jpg)\n",
+    "\n",
+    "Nun, wenn `n` keine ganze Zahl ist, können wir den Basisfall *verpassen* und eine unendliche Rekursion wird durchgeführt.\n",
+    "\n",
+    "Im ersten rekursiven Aufruf ist der Wert von `n` gleich 0.5. Im nächsten ist der Wert `-0.5`. Ab da wird der Wert immer kleiner (immer negativer) aber er wird nie gleich `0` sein. \n",
+    "\n",
+    "Wir haben zwei Optionen, dieses Problem zu beheben:\n",
+    "\n",
+    "1. Wir können versuchen, die Funktion `fakultaet` zu verallgemeinern, so dass sie auch mit Gleitkommazahlen arbeitet.\n",
+    "2. Wir können `fakultaet` anpassen, so dass der Typ des übergebenen Arguments geprüft wird.\n",
+    "\n",
+    "Die erste Option nennt sich [Gamma-Funktion](https://de.wikipedia.org/wiki/Gammafunktion) und sprengt den Rahmen dieses Kurses. Also schauen wir uns die zweite Option an.\n",
+    "\n",
+    "Mit Hilfe der eingebauten Funktion `isinstance` können wir den Typ des Arguments prüfen. Und wenn wir schon einmal dabei sind, können wir auch gleich sicherstellen, dass das Argument positiv ist: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def fakultaet(n):\n",
+    "    if not isinstance(n, int):\n",
+    "        print('Die Fakultät ist nur für ganze Zahlen definiert.')\n",
+    "        return None\n",
+    "    elif n < 0:\n",
+    "        print('Die Fakultät für negative ganze Zahlen ist nicht definiert.')\n",
+    "        return None\n",
+    "    elif n == 0:\n",
+    "        return 1\n",
+    "    else:\n",
+    "        return n * fakultaet(n-1)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Der erste Basisfall behandelt Zahlen die keine ganzen Zahlen sind; der zweite behandelt negative ganze Zahlen. In beiden Fällen gibt die Funktion eine Fehlermeldung aus und gibt `None` zurück, um anzuzeigen, dass etwas schiefgelaufen ist:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(fakultaet(\"fred\"))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(fakultaet(-2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Wenn wir beide Überprüfungen \"bestehen\", dann wissen wir, dass `n` eine positive ganze Zahl ist (oder Null). Damit können wir zeigen, dass die Rekursion terminiert.\n",
+    "\n",
+    "Dieses Programm demonstriert ein Entwurfsmuster welches manchmal **Wächter** (*guardian*) genannt wird. Die ersten beiden Verzweigungen agieren als Wächter, die den darauffolgenden Code vor Werten beschützen, die Fehler hervorrufen könnten. Die Wächter ermöglichen uns, die Korrektheit des Codes zu beweisen.\n",
+    "\n",
+    "Im [Abschnitt 11.4](seminar11.ipynb#reverse-lookup) werden wir eine flexiblere Alternative kennenlernen, um eine Fehlermeldung auszugeben: Ausnahmebehandlung."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.9 Debugging\n",
+    "\n",
+    "Ein großes Programm in kleinere Funktionen zu zerlegen erzeugt ganz natürliche Kontrollpunkte. Wenn eine Funktion nicht funktioniert, gibt es drei Möglichkeiten, die wir in Betracht ziehen sollten:\n",
+    "\n",
+    "1. Es stimmt etwas nicht mit den Argumenten der Funktion; eine Vorbedingung ist verletzt.\n",
+    "2. Es stimmt etwas nicht mit der Funktion; eine Nachbedingung ist verletzt.\n",
+    "3. Es stimmt etwas nicht mit dem Rückgabewert der Funktion oder der Art und Weise, wie dieser verwendet wird.\n",
+    "\n",
+    "Um die erste Möglichkeit auszuschließen, können wir `print`-Anweisungen am Anfang der Funktion einfügen und die Werte der Parameter (und vielleicht deren Typ) ausgeben. Oder wir können Code einfügen, der die Vorbedingungen explizit prüft (wie wir es bei `fakultaet` gerade eben gemacht haben).\n",
+    "\n",
+    "Wenn die Parameter gut aussehen, dann können wir eine `print`-Anweisung vor jeder `return`-Anweisung einfügen und den Rückgabewert anzeigen. Falls möglich, prüfen wir den Wert von Hand. Wir können auch in Betracht ziehen, die Funktion mit Werten aufzurufen, die uns das überprüfen des Ergebnisses erleichtern (wie in [Abschnitt 6.2](#6.2-Schrittweise-Entwicklung)). \n",
+    "\n",
+    "Wenn die Funktion richtig arbeitet (oder es danach ausschaut), sollten wir uns die Stelle anschauen, wo die Funktion aufgerufen wird und sicherstellen, dass der Rückgabewert richtig verwendet wird (bzw. überhaupt verwendet wird!).\n",
+    "\n",
+    "Das Hinzufügen von `print`-Anweisungen am Anfang und Ende einer Funktion kann uns helfen, den Kontrollfluss besser sichtbar zu machen. Hier ist beispielsweise eine Version von `fakultaet` mit `print`-Anweisungen:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def fakultaet(n):\n",
+    "    space = ' ' * (4 * n)\n",
+    "    print(space, 'fakultaet', n)\n",
+    "    if n == 0:\n",
+    "        print(space, 'returning 1')\n",
+    "        return 1\n",
+    "    else:\n",
+    "        rekursion = fakultaet(n-1)\n",
+    "        ergebnis = n * rekursion\n",
+    "        print(space, 'returning', ergebnis)\n",
+    "        return ergebnis"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Dabei ist `space` eine Zeichenkette voller Leerzeichen, die die Einrückung der Ausgabe kontrolliert. Probieren Sie es aus:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fakultaet(4)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Wenn Sie der Kontrollfluss verwirrt, dann kann diese Art der Ausgabe hilfreich sein. Es braucht etwas Zeit, guten Hilfscode zu entwickeln, aber etwas Hilfscode kann uns viel Zeit beim Debuggen ersparen.\n",
+    "\n",
+    "![When you Google an error message and it gets no results, you can be pretty sure you've found a clue to the location of Martin's sword.](https://imgs.xkcd.com/comics/debugging_2x.png)\n",
+    "\n",
+    "([Debugging](https://xkcd.com/1722/), Randall Munroe)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.10 Glossar\n",
+    "\n",
+    "Legen wir uns eine Liste mit den wichtigsten Begriffen an, die wir im Kapitel 5 gelernt haben:\n",
+    "\n",
+    "- temporäre Variable:\n",
+    "- toter Code:\n",
+    "- schrittweise Entwicklung\n",
+    "- Hilfscode:\n",
+    "- Wächter:\n",
+    "\n",
+    "Ergänzen Sie die Liste in eigenen Worten. Das ist eine gute Erinnerungs- und Übungsmöglichkeit."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.11 Übung\n",
+    "\n",
+    "#### Aufgabe 1\n",
+    "\n",
+    "Zeichnen Sie (mit Bleistift und Papier) ein Stapeldiagramm für das folgende Programm. Was gibt das Programm aus?\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def b(z):\n",
+    "    prod = a(z, z)\n",
+    "    print(z, prod)\n",
+    "    return prod\n",
+    "\n",
+    "def a(x, y):\n",
+    "    x = x + 1\n",
+    "    return x * y\n",
+    "\n",
+    "def c(x, y, z):\n",
+    "    total = x + y + z\n",
+    "    square = b(total)**2\n",
+    "    return square\n",
+    "\n",
+    "x = 1\n",
+    "y = x + 1\n",
+    "print(c(x, y+3, x+y))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Aufgabe 2\n",
+    "\n",
+    "Die [Ackermannfunktion](https://de.wikipedia.org/wiki/Ackermannfunktion), $A(m, n)$ ist folgendermaßen definiert:\n",
+    "\n",
+    "\\begin{equation}\n",
+    "A(m,n) = \n",
+    "\\begin{cases}\n",
+    "n+1       & \\ \\ \\text{falls}\\ m=0\\\\\n",
+    "A(m-1, 1) & \\ \\ \\text{falls}\\ m > 0\\ \\text{und}\\ n = 0\\\\\n",
+    "A(m-1, A(m, n-1)) & \\ \\ \\text{falls}\\ m > 0\\ \\text{und}\\ n > 0\n",
+    "\\end{cases}\n",
+    "\\end{equation}\n",
+    "\n",
+    "Schreiben Sie eine Funktion `ack` die die Ackermannfunktion berechnet. Berechnen Sie mit ihrer Funktion `ack(3,4)`, was 125 ergeben sollte. Was passiert für größere Werte von `m` und `n`? Lösung: http://thinkpython2.com/code/ackermann.py"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Implementieren Sie hier die Ackermannfunktion\n",
+    "\n",
+    "\n",
+    "# Testaufruf\n",
+    "ack(3,4)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Aufgabe 3\n",
+    "\n",
+    "Ein [Palindrom](https://de.wikipedia.org/wiki/Palindrom) ist ein Wort, welches vorwärts und rückwärts gelesen gleich ist. Beispielsweise \"neben\" oder \"hangnah\" (wenn wir Großschreibung ignorieren, gibt es auch Substantive, z.B. \"Reliefpfeiler\" oder \"Anna\"). Rekursiv definiert, ist ein Wort ein Palindrom, wenn der erste und letzte Buchstabe identisch sind und der Mittelteil ein Palindrom ist.\n",
+    "\n",
+    "Die folgenden Funktionen erwarten eine Zeichenkette als Argument und geben die ersten, letzten und mittleren Buchstaben zurück:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def first(word):\n",
+    "    return word[0]\n",
+    "\n",
+    "def last(word):\n",
+    "    return word[-1]\n",
+    "\n",
+    "def middle(word):\n",
+    "    return word[1:-1]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Wir werden in [Kapitel 8](seminar08.ipynb) sehen, wie sie funktionieren.\n",
+    "\n",
+    "1. Testen Sie diese Funktionen. Was passiert, wenn Sie `middle` mit einer Zeichenkette mit nur zwei Zeichen aufrufen? Oder mit nur einem Zeichen? Was passiert mit der leeren Zeichenkette, geschrieben '', die keine Zeichen enthält?\n",
+    "2. Schreiben Sie eine Funktion `ist_palindrom`, die eine Zeichenkette als Argument erwartet und `True` zurückliefert, wenn die Zeichenkette ein Palindrom ist und ansonsten `False`. (Erinnern Sie sich daran, dass Sie mit der eingebauten Funktion `len` die Länge einer Zeichenkette ermitteln können.)\n",
+    "\n",
+    "Lösung: http://thinkpython2.com/code/palindrome_soln.py"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Testen Sie hier die Funktionen first, last und middle \n",
+    "# und implementieren Sie die Funktion ist_palindrom."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![Palindrom](https://imagesvc.timeincapp.com/v3/mm/image?url=https%3A%2F%2Ftimedotcom.files.wordpress.com%2F2015%2F04%2Fgo-hang-a-salami.jpg&w=800&q=85)\n",
+    "\n",
+    "([Farrar, Straus and Giroux](http://time.com/3771063/mark-saltveit-world-palindrome-championship/))\n",
+    "\n",
+    "#### Aufgabe 4\n",
+    "\n",
+    "Eine Zahl $a$ ist eine Potenz von $b$, wenn $a$ durch $b$ teilbar ist und $a/b$ eine Potenz von $b$ ist. (Beispielsweise ist 27 eine Potenz von 3, denn 27 ist durch 3 teilbar und 9 ist eine Potenz von 3.) Schreiben Sie eine Funktion `ist_potenz` die Parameter `a` und `b` erwartet und `True` zurückgibt, wenn `a` eine Potenz von `b` ist (ansonsten `False`). Hinweis: Überlegen Sie sich, was der Basisfall ist und wie Sie diesen behandeln."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Implementieren Sie hier die Funktion ist_potenz"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Aufgabe 5\n",
+    "\n",
+    "Der [größte gemeinsame Teiler](https://de.wikipedia.org/wiki/Gr%C3%B6%C3%9Fter_gemeinsamer_Teiler) (ggT) von $a$ und $b$ ist die größte Zahl die beide Zahlen ($a$ und $b$) ohne Rest teilt.\n",
+    "\n",
+    "Eine Möglichkeit den ggT zweier Zahlen zu berechnen, beruht auf der Beobachtung, dass, wenn $r$ der Rest der Division von $a$ durch $b$ ist, dann $ggT(a,b) = ggT(b,r)$ gilt. Als Basisfall können wir $ggT(a,0)=a$ nutzen.\n",
+    "\n",
+    "Schreiben Sie eine Funktion `ggt`, die zwei Parameter `a` und `b` erwartet und den größten gemeinsamen Teiler zurückgibt."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Implementieren Sie hier die Funktion ggt\n"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -658,9 +1118,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "![Smiley](https://upload.wikimedia.org/wikipedia/commons/3/3e/Cool-smiley.svg)\n",
+    "![Smiley](https://upload.wikimedia.org/wikipedia/commons/7/70/Face-devil-grin.svg)\n",
     "\n",
-    "Herzlichen Glückwunsch! Sie haben das 5. Kapitel geschafft. Weiter geht es in [6: Ergebnisreiche Funktionen](seminar06.ipynb)."
+    "Herzlichen Glückwunsch! Sie haben das 6. Kapitel geschafft. Weiter geht es in [7: Iteration](seminar07.ipynb)."
    ]
   }
  ],