diff --git a/.gitignore b/.gitignore
index 69659e95af9ff5ea6e7be6d194e0c7195d4c82c8..f94fe1324b7b8674ef90261a09ddb59c99334336 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,6 @@ temp*
 Untitled*.ipynb
 **/.*.sw?
 .sw?
+
+ml_course_script_html.zip
+ml_course_script_html
diff --git a/01_introduction.ipynb b/01_introduction.ipynb
index a448e2f1222a0cb300836001d6ed828f43139aa2..8fda601a251e43392b49d40e8de5adf9cdbdc0b2 100644
--- a/01_introduction.ipynb
+++ b/01_introduction.ipynb
@@ -391,7 +391,8 @@
     "<ul>\n",
     "    <li>The first four features have continuous numerical values within some ranges - these are called <strong>numerical features</strong>,</li>\n",
     "    <li>the <code>is_yummy</code> feature has only a finite set of values (\"categories\"): <code>0</code> (\"no\") and <code>1</code> (\"yes\") - this is called a <strong>categorical feature</strong>.</li>\n",
-    "</ul>\n"
+    "</ul>\n",
+    "    </div>\n"
    ]
   },
   {
@@ -411,7 +412,8 @@
     "            <li>Values of categorical labels, such as <code>0</code> (\"no\") and <code>1</code> (\"yes\") here, are often called <strong>classes</strong>.</li>\n",
     "        </ul>\n",
     "    </li>\n",
-    "</ul>"
+    "</ul>\n",
+    "</div>"
    ]
   },
   {
@@ -1960,7 +1962,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.7.3"
+   "version": "3.7.2"
   },
   "latex_envs": {
    "LaTeX_envs_menu_present": true,
diff --git a/create_course_scripts_zip.sh b/create_course_scripts_zip.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e1ef623e8b78e8eea623b2a3a42aa9792ddd3b3d
--- /dev/null
+++ b/create_course_scripts_zip.sh
@@ -0,0 +1,25 @@
+#! /bin/sh
+#
+# create_course_scripts_zip.sh
+# Copyright (C) 2019 Uwe Schitt <uwe.schmitt@id.ethz.ch>
+#
+# Distributed under terms of the MIT license.
+#
+
+FOLDER=ml_course_script_html
+ARCHIVE=${FOLDER}.zip
+
+rm -rf ${FOLDER} || true
+mkdir ${FOLDER}
+
+cp -R images ${FOLDER}
+cp custom.html ${FOLDER}
+
+for U in ??_*.ipynb; do
+    jupyter nbconvert --output-dir=${FOLDER} $U
+done
+
+rm ${ARCHIVE} || true
+zip -r ${ARCHIVE} ${FOLDER}
+
+