diff --git a/README-exercises.md b/README-exercises.md new file mode 100644 index 0000000000000000000000000000000000000000..392086582a8271245c8c9a618d80ea54a0b621e6 --- /dev/null +++ b/README-exercises.md @@ -0,0 +1,13 @@ +# A few notes about exercises + +Thebe, interactive features, etc. Just a few notes for now, this will eventually be put into a manual. + + +Types of exercises: +- here a list of things you can and cannot do +- ... +- ... +- want to hide the input code but still allow a student to run it? try writing a function in a cell, then using the function in another cell. can also write a message to the student in the docstring :) + +Go back [here](https://gitlab.tudelft.nl/mude/book/-/merge_requests/34#note_190848) and revisit a few things next time Robert/Max meet on campus. + diff --git a/book/cookbook/example_gumbel.py b/book/cookbook/example_gumbel.py index fa7776830d3cfcb7845fcfbaa416cc32bb5fca0a..a2c133711abcca3b219ec3b3fb3c91a414c54e70 100644 --- a/book/cookbook/example_gumbel.py +++ b/book/cookbook/example_gumbel.py @@ -45,9 +45,9 @@ def check_example(glob): """ Task 0: x_1 = 4 -p_e_1 = .1 +p_1 = 1 - .1 x_2 = 10 -p_e_2 = .01 +p_2 = 1 - .01 Task 1: beta = -(x_2 - x_1) / log(log(p_2) / log(p_1)) diff --git a/book/cookbook/example_gumbel_dont_execute.ipynb b/book/cookbook/example_gumbel_dont_execute.ipynb index c2dd0ff0bd9cf9e97147928dcd0c387a8a005ae9..4375f091fff5ed4372997eb9871e0e710871a2e5 100644 --- a/book/cookbook/example_gumbel_dont_execute.ipynb +++ b/book/cookbook/example_gumbel_dont_execute.ipynb @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "tags": [ "thebe-remove-input-init" @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "tags": [] }, @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "tags": [] }, @@ -94,33 +94,40 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The cell below will print your parameter values and show a plot to help confirm you have the right implementation." + "The cells below will print your parameter values and create a plot to help confirm you have the right implementation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "thebe-remove-input-init" + ] + }, + "outputs": [], + "source": [ + "def plot_distribution(mu, beta,\n", + " x_1, p_1, x_2, p_2):\n", + " plt.title(\"Gumbel Distribution, $1-F_X(x)$\")\n", + " plt.xlabel(\"Contaminant Concentration, $X$ [ppm]\")\n", + " plt.ylabel(\"Exceedance Probability [--]\")\n", + " plt.grid(color='black', linestyle='-', linewidth=0.3)\n", + " x_axis = np.arange(0, 20, 0.1)\n", + " plt.plot(x_axis, np.vectorize(gumbel_distribution)(x_axis), linewidth=2)\n", + " plt.plot(x_1, 1 - p_1, 'ro')\n", + " plt.annotate(\"Point 1\", (x_1 + 0.4, 1 - p_1 + 0.02))\n", + " plt.plot(x_2, 1 - p_2, 'ro')\n", + " plt.annotate(\"Point 2\", (x_2 + 0.4, 1 - p_2 + 0.001))\n", + " plt.yscale(\"log\") \n", + " plt.show()" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your mu: -1.74615\n", - "Your beta: 2.55343\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "mu, beta = gumbel_2_points(x_1, p_1, x_2, p_2)\n", "\n", @@ -128,18 +135,8 @@ "\n", "gumbel_distribution = lambda x: 1 - e**(-e**(-(x - mu)/beta))\n", "\n", - "plt.title(\"Gumbel Distribution, $1-F_X(x)$\")\n", - "plt.xlabel(\"Contaminant Concentration, $X$ [ppm]\")\n", - "plt.ylabel(\"Exceedance Probability [--]\")\n", - "plt.grid(color='black', linestyle='-', linewidth=0.3)\n", - "x_axis = np.arange(0, 20, 0.1)\n", - "plt.plot(x_axis, np.vectorize(gumbel_distribution)(x_axis), linewidth=2)\n", - "plt.plot(x_1, 1 - p_1, 'ro')\n", - "plt.annotate(\"Point 1\", (x_1 + 0.4, 1 - p_1 + 0.02))\n", - "plt.plot(x_2, 1 - p_2, 'ro')\n", - "plt.annotate(\"Point 2\", (x_2 + 0.4, 1 - p_2 + 0.001))\n", - "plt.yscale(\"log\") \n", - "plt.show()" + "plot_distribution(mu, beta, x_1, p_1, x_2, p_2)\n", + "\n" ] }, { @@ -151,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -177,17 +174,9 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The value of x with probability of exceedance 0.001 os 15.89103\n" - ] - } - ], + "outputs": [], "source": [ "# YOUR CODE GOES HERE #\n", "x = _\n", @@ -198,42 +187,13 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "tags": [ "thebe-remove-input-init" ] }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f99a0a18011347f08f9b32a2c97b8b90", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Button(description='Check Answer(s)', style=ButtonStyle())" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f615284cfc8045298fcd58ab0d86fbec", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "check_example(globals())" ]