diff --git a/TeachingExamples/FallingObjects-demo.ipynb b/TeachingExamples/FallingObjects-demo.ipynb index 5305bf8..0d7dadf 100644 --- a/TeachingExamples/FallingObjects-demo.ipynb +++ b/TeachingExamples/FallingObjects-demo.ipynb @@ -1,416 +1,416 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Use case scenario
\n", " This notebook is made to be used in class as a virtual demonstration which is operated by the teacher (the notebook is not meant to be used by students).

\n", "

Features
\n", " This notebook embeds different types of questions to engage students with the virtual demonstration and uses the type of visualisations that students will be asked to use when solving similar problems (i.e. in this case graphing height, velocity and acceleration as functions of time).
\n", " The example chosen is voluntarily simple so that anyone can understand what is illustrated and focus the pedagogical features of the example.

\n", "

More information on using notebooks for virtual demonstrations.

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Falling objects\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learning goals\n", "\n", "The goal of this notebook and the associated virtual lab is to address a common student misconception that if two objects fall at different speeds it is because of their mass (i.e. an object that is heavier will fall faster than a lighter object). The lab is designed to show that, if air resistance and friction are negligible, then in a given location all objects fall toward the center of Earth with the same constant acceleration, independent of their mass.\n", "\n", "## Step 1: Setting the stage\n", "\n", "Present the following problem to your students:\n", "\n", "
\n", " \n", "We *drop* an object from a given height with *no initial velocity*. Just like an apple would fall from a tree.\n", "We consider the movement of the object, *ignoring resistance from the air*.\n", " \n", "
\n", "\n", "Ask the following **prediction questions** to your students:\n", "\n", "
\n", " \n", "1. Which object would reach the ground first: a bowling ball (5 kg) or a tennis ball (0.05 kg)? Write down their answers on a piece of paper.\n", "2. Why? *Discuss your explanations with your neighbour.*\n", "3. Sketch your prediction for the evolution of the *height*, the *velocity* and the *acceleration* of the object as a function of time (draw the graphs).\n", "\n", "
\n", " \n", "## Step 2: The demo\n", "\n", "Execute the cell below to **run the demo**, which shows the movement of several objects with different masses when they are by default in **free fall**. \n", "You can activate air resistance or not by clicking on the button \"Include air friction\".\n", "\n", "We suggest the following series of steps to show different objects on the demo, with **observation questions** to help students see what you want them to see:\n", "\n", "1. Select the bowling ball\n", "\n", "
\n", "\n", "* What is the mass of this object? Note your answer down on a piece of paper.\n", "* When does the object reach the ground (approximate time in seconds)? Note your answer down on a piece of paper.\n", "* What would be the equation of the acceleration of the object as a function of time? Note your answer down on a piece of paper.\n", " \n", "
\n", "\n", "2. Select the air inflated balloon\n", "\n", "
\n", "\n", "* What is the mass of this object? Note your answer down on a piece of paper.\n", "* When does the object reach the ground (approximate time in seconds)? Note your answer down on a piece of paper.\n", "* What would be the equation of the acceleration of the object as a function of time? Note your answer down on a piece of paper.\n", " \n", "
\n", "\n", "3. Select several objects at the same time (hold the ctrl key while clicking)\n", "\n", "
\n", "\n", "* What do you observe on the different plots? Note your answer down on a piece of paper.\n", "* What can you conclude? Note your answer down on a piece of paper.\n", "\n", "
\n", "\n", "4. Select the air-inflated balloon, then click on the button \"Include air friction\"\n", "\n", "
\n", "\n", "* When does the object reach the ground (approximate time in seconds)? Note your answer down on a piece of paper.\n", "* How does the velocity of the object evolves over time? Note your answer down on a piece of paper.\n", "* How does the acceleration of the object evolves over time? Note your answer down on a piece of paper.\n", " \n", "
\n", "\n", "5. Select both the bowling ball and the air-inflated balloon (hold the ctrl key while clicking) and make sure the button \"Include air friction\" is activated\n", "\n", "
\n", "\n", "* What differences do you observe on the velocity of the two objects? Note your answer down on a piece of paper.\n", "* What differences do you observe on the acceleration of the two objects? Note your answer down on a piece of paper.\n", " \n", "
\n", "\n", "6. Then ask students this final question:\n", "\n", "
\n", "\n", "Write down your explanation for what we have just seen.\n", " \n", "
\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "51c63fa72bb046dc8a83b3bd5625cf28", + "model_id": "4ef9b2650bad4e80a6256de616e7e703", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(Output(layout=Layout(margin='2px 6px')), HBox(children=(VBox(children=(HBox(children=(Label(val…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from lib.fallingobjects import *\n", "FallingObjectsLab(show_withair = True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "*If you wonder how the virtual lab works and would like to see the code, [you can have a look at it at the end of this notebook](#How-does-the-virtual-demo-work%3F).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: The explanation\n", "\n", "Provide the explanation (e.g. solving the problem on the board), then ask students: \n", "\n", "
\n", "\n", "How does your own explanation compare to this one? Note down any questions you might have.\n", " \n", "
\n", "\n", "Then ask the following **reflection questions**:\n", "\n", "
\n", "\n", "What are the criteria to decide when we can ignore resistance from the air or not when solving problems?\n", "\n", "
\n", "\n", " \n", "\n", "For additional impact, you can show an excerpt of the video below, which demonstrates how a bowling ball and ostrich feathers fall in a vacuum chamber" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { - "image/jpeg": "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\n", + "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ - "" + "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('E43-CfukEgs', 560, 315, start=171)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "---\n", "\n", "# How does the virtual demo work?\n", "\n", "You can have a look at the code of the virtual demo by [opening this python file](lib/fallingobjects.py). \n", "\n", "## Use of the virtual demo\n", "\n", "Execute the cell below to see the documentation:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mInit signature:\u001b[0m\n", "\u001b[0mFallingObjectsLab\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mobjects\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Bowling ball'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mass'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m5.0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'k'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m3.7322120724646743e-05\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'color'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'#DC143C'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Tennis ball'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mass'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m0.0567\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'k'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m1.0857344210806327e-05\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'color'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'#2E8B57'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Ping-pong ball'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mass'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m0.0027\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'k'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m6.7858401317539545e-06\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'color'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'#FF4500'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Air-inflated balloon'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'mass'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m0.013\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'k'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;36m0.02\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'color'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'#000080'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m9.81\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1.5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mv_0\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0.\u001b[0m \u001b[0;34m,\u001b[0m \u001b[0;36m0.05172414\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.10344828\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.15517241\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.20689655\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;36m0.25862069\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.31034483\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.36206897\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.4137931\u001b[0m \u001b[0;34m,\u001b[0m \u001b[0;36m0.46551724\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;36m0.51724138\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.56896552\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.62068966\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.67241379\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.72413793\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;36m0.77586207\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.82758621\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.87931034\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.93103448\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.98275862\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;36m1.03448276\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0862069\u001b[0m \u001b[0;34m,\u001b[0m \u001b[0;36m1.13793103\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.18965517\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.24137931\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;36m1.29310345\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.34482759\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.39655172\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.44827586\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.5\u001b[0m \u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0maccel_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0maccel_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f6a3180d0\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mveloc_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mveloc_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f6a3181e0\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mheight_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mheight_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f632ec378\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0maccel_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0maccel_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f632ec400\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mveloc_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mveloc_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f632ec488\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", - "\u001b[0;34m\u001b[0m \u001b[0mheight_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mheight_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7f3f632ec510\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0maccel_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0maccel_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc4084807b8\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mveloc_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mveloc_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc4084808c8\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mheight_time\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mheight_time\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc401405a60\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0maccel_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0maccel_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc401405ae8\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mveloc_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mveloc_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc401405b70\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mheight_time_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0mfunction\u001b[0m \u001b[0mheight_time_withair\u001b[0m \u001b[0mat\u001b[0m \u001b[0;36m0x7fc401405bf8\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mshow_v_0\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mshow_withair\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m This class embeds all the necessary code to create a virtual lab to study the movement of falling objects.\n", "\u001b[0;31mInit docstring:\u001b[0m\n", "Initiates and displays the virtual lab on falling objects.\n", "\n", ":objects: nested dictionnary with the objects to display, which should come with at least the following properties: a name, a mass (in kg) and a color (HEX code)\n", "\n", ":g: gravitational acceleration constant\n", ":h_0: initial height of the objects\n", ":v_0: initial velocity of the objects\n", ":t: time scale (array of time points at which to compute the equation)\n", "\n", ":accel_time: function to compute the acceleration of an object as a function of time -- without air resistance -- a(o, g, h_0, v_0, t)\n", ":veloc_time: function to compute the velocity of an object as a function of time -- without air resistance -- v(o, g, h_0, v_0, t)\n", ":height_time: function to compute the height of an object as a function of time -- without air resistance -- h(o, g, h_0, v_0, t)\n", "\n", ":accel_time_withair: function to compute the acceleration of an object as a function of time -- WITH air resistance -- a(o, g, h_0, v_0, t)\n", ":veloc_time_withair: function to compute the velocity of an object as a function of time -- WITH air resistance -- v(o, g, h_0, v_0, t)\n", ":height_time_withair: function to compute the height of an object as a function of time -- WITH air resistance -- h(o, g, h_0, v_0, t)\n", "\n", ":show_v_0: when True, a slider to change the initial velocity of objects is displayed in the interface\n", ":show_withair: when True, a checkbox allows to plot the equations which include air resistance\n", - "\u001b[0;31mFile:\u001b[0m ~/git/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", + "\u001b[0;31mFile:\u001b[0m ~/git_Noto/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", "\u001b[0;31mType:\u001b[0m type\n", "\u001b[0;31mSubclasses:\u001b[0m \n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "FallingObjectsLab?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Utility computation functions\n", "\n", "You can see the code of the functions used to compute the movement equations for the falling objects using the same kind of syntax. \n", "Below are two examples showing the code of the function computing height without and with air resistance.\n", "\n", "These functions can be redefined and given as parameters when initializing the lab." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mheight_time\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mSource:\u001b[0m \n", "\u001b[0;32mdef\u001b[0m \u001b[0mheight_time\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m'''\u001b[0m\n", "\u001b[0;34m Computes the height of the object o as a function of time\u001b[0m\n", "\u001b[0;34m Implements a constantly accelerated vertical motion (free fall) of equation: h(t) = -1/2.g.t^2 + v_0.t + h_0\u001b[0m\n", "\u001b[0;34m \u001b[0m\n", "\u001b[0;34m :o: object considered\u001b[0m\n", "\u001b[0;34m :g: gravitational acceleration constant\u001b[0m\n", "\u001b[0;34m :h_0: initial height of the object\u001b[0m\n", "\u001b[0;34m :v_0: initial velocity of the object\u001b[0m\n", "\u001b[0;34m :t: time scale (array of time points at which to compute the equation)\u001b[0m\n", "\u001b[0;34m\u001b[0m\n", "\u001b[0;34m :returns: array of values for height at each point of the time scale\u001b[0m\n", "\u001b[0;34m '''\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m0.5\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mg\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mv_0\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFile:\u001b[0m ~/git/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", + "\u001b[0;31mFile:\u001b[0m ~/git_Noto/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "height_time??" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mheight_time_withair\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mSource:\u001b[0m \n", "\u001b[0;32mdef\u001b[0m \u001b[0mheight_time_withair\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv_0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;34m'''\u001b[0m\n", "\u001b[0;34m Computes the height of the object o as a function of time\u001b[0m\n", "\u001b[0;34m Implements a vertical motion taking into account a linear friction from air\u001b[0m\n", "\u001b[0;34m \u001b[0m\n", "\u001b[0;34m :o: object considered -- must have a mass and a friction coefficient k\u001b[0m\n", "\u001b[0;34m :g: gravitational acceleration constant\u001b[0m\n", "\u001b[0;34m :h_0: initial height of the object\u001b[0m\n", "\u001b[0;34m :v_0: initial velocity of the object\u001b[0m\n", "\u001b[0;34m :t: time scale (array of time points at which to compute the equation)\u001b[0m\n", "\u001b[0;34m\u001b[0m\n", "\u001b[0;34m :returns: array of values for height at each point of the time scale\u001b[0m\n", "\u001b[0;34m '''\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mcoeff\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmass\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mcoeff\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mv_0\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mg\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mcoeff\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m \u001b[0mcoeff\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mg\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mcoeff\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mh_0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFile:\u001b[0m ~/git/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", + "\u001b[0;31mFile:\u001b[0m ~/git_Noto/noto-poc-notebooks/TeachingExamples/lib/fallingobjects.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "height_time_withair??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "---\n", "\n", "# Other resources on the web\n", "\n", "Detailed explanations with examples on falling objects: https://opentextbc.ca/physicstestbook2/chapter/falling-objects/\n", "\n", "Impact of air resistance on falling objects (in French): http://www.physagreg.fr/mecanique/m12/M12-chute-libre-frottements.pdf" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 } diff --git a/TeachingExamples/SuspendedObjects-exercise.ipynb b/TeachingExamples/SuspendedObjects-exercise.ipynb index 6469592..c885a2c 100644 --- a/TeachingExamples/SuspendedObjects-exercise.ipynb +++ b/TeachingExamples/SuspendedObjects-exercise.ipynb @@ -1,241 +1,338 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Use case scenario
\n", " This notebook is made to be used by students as an assignment or exercise, in autonomy (at home or in an exercise session).

\n", "

Features
\n", " This notebook embeds auto-corrected quizzes to engage students with the virtual demonstration and uses different types of visualisations to help students understand the phenomena.
\n", " The example chosen is voluntarily simple so that anyone can understand what is illustrated and focus the pedagogical features of the example.

\n", "

More information on using notebooks for exercises or assignements.

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Suspended objects\n", "\n", "We consider a clothesline made of two poles and a cable.\n", "The cable is fixed on one pole. A pulley on the other pole allows to attach a counterweight to pull the cable taut. \n", "\n", "\n", "\n", "## Exercise 1\n", - "Execute the cell below to activate the interactive quiz and answer the question." + "Execute the cell below to activate the interactive quiz and answer the question.\n", + "\n", + "" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from IPython.display import IFrame\n", - "IFrame('https://moodle.epfl.ch/mod/hvp/embed.php?id=1028285', 1024, 450)" + "IFrame('https://moodle.epfl.ch/mod/hvp/embed.php?id=1028285', 500, 600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 2\n", "\n", "The virtual lab below allows you to experiment with different counterweights to see how it affects the position of the object suspended on the clothesline. \n", "Execute the cell below to launch the virtual lab, then *answer the questions in the quiz below*." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "60cb76d0d81041be8e26c7115a8888e4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(Output(layout=Layout(margin='5px 10px')), HBox(children=(Label(value='Mass of the counterweight…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "%matplotlib inline\n", "from lib.suspendedobjects import *\n", "SuspendedObjectsLab();\n", "IFrame('https://h5p.org/h5p/embed/584119', 1024, 350)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*If you wonder how the virtual lab works and would like to see the code, [you can have a look at it at the end of this notebook](#How-does-the-virtual-lab-work%3F).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 3\n", "\n", "1. Give the expression of the **mass of the counterweight $m_{cw}$ as a function of the other parameters of the problem**.\n", "2. Application: what counterweight allows to suspend wet jeans ($m = 3 kg$) on the cable so that the cable is taut at an angle of $1.5^\\circ = \\frac{\\pi}{120}$ with the horizon?\n", "3. Why is it impossible to pull the cable taut completely horizontally?\n", "\n", " \n", "\n", "## Solution\n", "\n", "### Method\n", "\n", "Given that the system is in static equilibrium, the sum of external forces exerted on the system will be zero, so using Newton's second law should be easy. The force that the counterweight exerts on the system will involve the mass of the counterweight so we should be able to rewrite Newton's second law to get an expression of the form $m_{cw} = ...$.\n", "\n", "### Hypotheses and simplifications\n", "\n", "We make the following assumptions and simplifications:\n", "* the jeans are considered as positioned exactly mid-way between the poles so the tension is equal on both sides of the cable\n", "* we represent the jeans by the point at which they are suspended\n", "* the cable is considered as rigid (not bended), with a negligible mass\n", "* the pulley is considered as perfect, without mass nor friction\n", "* we consider the static equilibrium obtained after changing the weight, once the system is stabilized\n", "\n", "### Resolution\n", "\n", "First, let's draw a diagram and represent the different forces involved.\n", "\n", "\n", "The *forces applied on the jeans* are:\n", "* the weight: $\\vec F_j = m_j \\vec g$ \n", "* the force exerted by the cable on each side of the jeans: assuming the jeans are suspended at the exact center of the cable, then the tension applied on each of the two sides is is equally distributed $\\vec T$, which combine into a vertical resulting tension $\\vec T_r = 2.\\vec T$\n", "\n", "From Newton's second law in a static equilibrium we can write: $\\sum \\vec F_j = \\vec 0$ \n", "With the forces on the jeans we get: $\\vec F_j + \\vec T_r = 0$ \n", "Using the fact that the tension is equal on both sides of the jeans we get: $\\vec F_j + 2.\\vec T = 0$\n", "\n", "If we project on $x$ and $y$ axes, we get: \n", "$\\left\\{\\begin{matrix} F_{jx} + 2.T_x = 0 \\\\ F_{jy} + 2.T_y = 0\\end{matrix}\\right. $\n", "\n", "Since the weight does not have a component on the x axis, it simplifies into: \n", "$\\left\\{\\begin{matrix} T_x = 0 \\\\ F_{jy} + 2.T_y = 0\\end{matrix}\\right. $\n", "\n", "The component of the weight on the y axis is $F_{jy} = - m_j.g$, which gives us: \n", "$\\left\\{\\begin{matrix} T_x = 0 \\\\ - m_j.g + 2.T_y = 0\\end{matrix}\\right. $\n", "\n", "Using the angle $\\alpha$ we can get the tension $T_y$ expressed as a function of T since $sin(\\alpha) = \\frac{T_y}{T}$, therefore $T_y = T.sin(\\alpha)$\n", "\n", "By replacing $T_y$ by this expression in the above equation we get: \n", "$\\left\\{\\begin{matrix} T_x = 0 \\\\ - m_j.g + 2.T.sin(\\alpha) = 0\\end{matrix}\\right. $\n", "\n", "From there we can get $T$, and this is equation number $(1)$: \n", "$T = \\frac{m_j.g}{2.sin(\\alpha)}$\n", "\n", " \n", "\n", "We now want to make the mass of the counterweight appear in this expression. \n", "So we will now look at the forces applied on the *counterweight*.\n", "\n", " \n", "\n", "The forces applied on the *counterweight* are:\n", "* the weight: $\\vec F_{cw} = m_{cw} \\vec g$ \n", "* the force exerted by the line: a simple pulley simply changes the direction of the tension so the tension applied on the counterweight is therefore $\\vec T$\n", "\n", "From Newton's second law in a static equilibrium we can write: $\\sum \\vec F_{cw} = \\vec 0$ \n", "With the forces involved in our problem : $\\vec F_{cw} + \\vec T = \\vec 0$ \n", "\n", "All forces being vertical, there is no need to project on $x$ so we get: $- F_{cw} + T = 0$ \n", "We replace the weight by its detailed expression: $-m_{cw}.g + T = 0$ \n", "Now we can express $T$ as a function of the other parameters, which is equation number $(2)$: $T = m_{cw}.g$ \n", "\n", " \n", "\n", "Let's now summarize what we have so far with equations $(1)$ and $(2)$: \n", "\n", "$\\left\\{\\begin{matrix}T = \\frac{m_j.g}{2.sin(\\alpha)} \\\\ T = m_{cw}.g\\end{matrix}\\right. $\n", "\n", "These two equations combined give us:\n", "\n", "$\\frac{m_j.g}{2.sin(\\alpha)} = m_{cw}.g$\n", "\n", "This allow us to find the mass of the counterweight as a function of the *mass of the jeans* and of the *angle that the line makes with the horizon*: \n", "\n", "$\\boxed{m_{cw} = \\frac{m_j}{2.sin(\\alpha)}}$\n", "\n", "\n", " \n", "\n", "### Application\n", "\n", "For a pair of wet jeans of $3 kg$ and an angle of $1.5^\\circ = \\frac{\\pi}{120}$, we need to put a counterweight of:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "57.30232502116567\n" + ] + } + ], "source": [ "mcw = 3 / (2 * np.sin(np.pi / 120))\n", "print(mcw)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can **check that you get a similar result** with the virtual lab above!\n", "\n", "\n", "### Conclusion\n", "\n", "For the line to be taut completely horizontal, $\\alpha$ has to be really small i.e. really close to zero. \n", "This means that $sin(\\alpha)$ will also be close to zero, which means in turn that $m_{cw}$ will be very big.\n", "Actually, **the more we want the line to be close to the horizon, the bigger $m_{cw}$ we will need!**\n", "In fact, it is impossible to get the line taut so that it is absolutely straight...\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "---\n", "\n", "# How does the virtual lab work?\n", "\n", "If you wonder how the virtual lab works: \n", "* You can have a look at the code of the virtual lab by [opening this python file](lib/suspendedobjects.py).\n", "* You can see the documentation by executing the cell below:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[0;31mInit signature:\u001b[0m\n", + "\u001b[0mSuspendedObjectsLab\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mm_object\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mdistance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mx_origin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0my_origin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m This class embeds all the necessary code to create a virtual lab to study the static equilibrium of an object suspended on a clothesline with a counterweight.\n", + "\u001b[0;31mInit docstring:\u001b[0m\n", + "Initiates and displays the virtual lab on suspended objects.\n", + "\n", + ":m_object: mass of the suspended object\n", + ":distance: horizontal distance between the two poles\n", + ":height: height of the poles (same height for both)\n", + ":x_origin: x coordinate of the bottom of the left pole (origin of the coordinate system)\n", + ":y_origin: y coordinate of the bottom of the left pole (origin of the coordinate system)\n", + "\u001b[0;31mFile:\u001b[0m ~/git_Noto/noto-poc-notebooks/TeachingExamples/lib/suspendedobjects.py\n", + "\u001b[0;31mType:\u001b[0m type\n", + "\u001b[0;31mSubclasses:\u001b[0m \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "SuspendedObjectsLab?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 } diff --git a/TeachingHowTos/EmbedFeedbackSurvey.ipynb b/TeachingHowTos/EmbedFeedbackSurvey.ipynb index a6aab70..b69953b 100644 --- a/TeachingHowTos/EmbedFeedbackSurvey.ipynb +++ b/TeachingHowTos/EmbedFeedbackSurvey.ipynb @@ -1,73 +1,74 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to get feedback from students on your notebooks?\n", "\n", "We provide a generic survey that you can embed into your notebooks to **collect anonymous feedback** from those who use your notebooks. \n", "The survey is designed to be short and easy to fill out, with three questions (both in English and French) focusing on helpfulness, usability and a free text field for comments. You can see the survey form below. \n", "The survey will automatically collect data for you. We then process the data and provide you with a summary of the feedback regularly. \n", "\n", "## How to use it?\n", "\n", "**Step 1:** Add a cell to your notebook and copy the following piece of code in it:\n", - "```\n", + "\n", + " ```python\n", "from IPython.display import IFrame\n", "IFrame('https://www.surveymonkey.com/r/NOTOSURVEY?notebook_set=COURSENAME¬ebook_id=NOTEBOOKNAME', 600, 800)\n", "```\n", "\n", "**Step 2:** In the code, replace the two following elements (attention: DO NOT USE SPACES, use dash or underscore to replace spaces):\n", "* `COURSENAME`: replace by name of the project or course, e.g. `MecaDRIL` or `PHYS-101`\n", "* `NOTEBOOKNAME`: replace by the name or code of the notebook in the course, e.g. `01-Logan` \n", "\n", "\n", "Example of complete URL: \n", "`https://www.surveymonkey.com/r/NOTOSURVEY?notebook_set=MecaDRIL¬ebook_id=01-Logan`\n", "\n", "**Optional:** It can be useful to add one line of text above the code cell with the survey to indicate to your students that you would appreciate their feedback on your notebook. \n", "You could use something like:\n", "\n", "```\n", "Did you like this Notebook? Why don't you give us some feedback using the completely anonymous form below (just execute the cell to see it)? Thank you!\n", "```\n", "\n", "## Demo\n", "\n", "Execute the cell below to see the survey:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from IPython.display import IFrame\n", "IFrame('https://www.surveymonkey.com/r/NOTOSURVEY?notebook_set=noto-poc-notebooks¬ebook_id=survey-monkey-demo', 600, 900)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 } diff --git a/TeachingHowTos/EmbedQuizQuestions.ipynb b/TeachingHowTos/EmbedQuizQuestions.ipynb index 8bfa03e..93fc4a6 100644 --- a/TeachingHowTos/EmbedQuizQuestions.ipynb +++ b/TeachingHowTos/EmbedQuizQuestions.ipynb @@ -1,92 +1,210 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ - "# How to integrate quiz questions in my notebooks?\n", + "# How to add auto-corrected quiz questions to my notebooks?\n", + "\n", + "\n", + "
\n", + "\"Moodle\n", + "\"Moodle\n", + "
\n", "\n", "Interactive quiz questions are a great way to engage students with the content of the notebook and to help them check their understanding. \n", - "In this notebook, we present how to create quiz questions in moodle and embed the questions into your notebooks.\n", + "In this notebook, we present how to **create quiz questions in moodle** (using the H5P plugin) and **embed the questions into your notebooks**. \n", + "\n", + "The figure on the righ shows an example of what it can look like, before and after a student submits an answer.\n", + "\n", + "
 
\n", "\n", - "There are other ways to integrate quiz questions into notebooks but the solution we suggest here has a very important characteristic: the data collected on students' responses is stored on the EPFL moodle server. \n", - "**This is extremely important to be consistent with the data protection and professional confidentiality provisions of Swiss law**.\n", "\n", - "In addition, using moodle to create quiz questions has other benefits:\n", + "\n", + "## Why use moodle?\n", + "\n", + "

There are other ways to integrate quiz questions into notebooks but the solution we suggest here has a very important characteristic: the data collected on students' responses is stored on the EPFL moodle server.
\n", + "This is extremely important in order to be consistent with the data protection and professional confidentiality provisions of Swiss law.

\n", + "\n", + "In addition, using moodle to create quiz questions has **a number of advantages**:\n", "* The moodle H5P plugin for creating quiz questions offers a [wide range of question types](https://h5p.org/content-types-and-applications) with multiple options to customize them ;\n", "* You don't need to write code to correct the quiz questions, the moodle H5P plugin has multiple options that allow you to give feedback automatically to students when they answer the quiz ;\n", + "* In your moodle page, you will be able to see how people answer your quiz question, which can give you useful feedback ;\n", "* The quiz questions that you create in moodle can be reused for different purposes (e.g. learning activities in moodle) and they can also be exported / imported.\n", "\n", + "However, this solution (as any other) also has some limitations.\n", + "\n", + "## Limitations\n", + "\n", + "You need to **have a moodle course page** for creating the quiz questions and you need to have the \"teacher\" (or \"manager\") role on this page to be able to edit it. \n", + "We suggest you use the moodle page of one of your courses. In case this is not possible or not adapted for your project, don't hesitate to [contact us](mailto:noto-support@groupes.epfl.ch) to discuss other options.\n", + "\n", + "One important limitation of this is that the quiz questions will be **visible only to**:\n", + "* **persons who have access to the EPFL moodle server** (i.e. EPFL students and staff) \n", + "* and, depending on how registrations are set up on your moodle page, persons who are **registered as participants on your moodle course**. \n", + "\n", + "Please [check below](#Step-0:-check-who-will-have-access-to-your-quiz-questions) who will have access to your quiz questions before anything else. \n", + "This solution is **not adequate if you want the general public to use the quiz questions in your notebooks**. \n", + "Don't hesitate to [contact us](mailto:noto-support@groupes.epfl.ch) to discuss other options. \n", + "\n", + "\n", + "## Step 0: check who will have access to your quiz questions \n", + "\n", + "In your moodle course, go to the \"Participants\" page. Check the \"Enrolment methods\" which are activated on your course:\n", + "* \"External database\": this means all students who are registered on your course on IS-Academia have access to your quiz questions - this is the option recommanded so that your students can use your quiz questions\n", + "* \"Manual enrolment\": this means that you will have to add manually the persons you want to have access to your quiz questions\n", + "* \"Self enrolment\": this means anyone can register to your course and have access to your quiz questions - this is the option recommanded so that all EPFL students and staff can use your quiz questions\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Step 1: create a quiz question in moodle\n", "\n", - "**Requirement:** You need to have a moodle course ready for creating the quiz questions and have a teacher role on this page to be able to edit it. We suggest you use the moodle page of one of your courses. [Contact us](mailto:noto-support@groupes.epfl.ch) if you would like to discuss other possible options.\n", "\n", - "**Step 1:** Create an additional section (\"topic\") in your moodle course page. You will create your quiz questions in this section. If you do not want your students to see the quiz questions in the moodle page, you can simply hide the whole section.\n", + "You need to *turn editing on* your moodle page before proceeding to the next steps.\n", + "\n", + "

Add a hidden section to your moodle page

\n", + "\n", + "We suggest that you create an additional section (\"topic\") in your moodle course page, which will serve as a container for your quiz questions. \n", + "To add a section, then go at the bottom of the moodle page and click on \"Add topics\".\n", + "\n", + "We also suggest that you hide this section from your moodle page so that the quiz question are visible only in the notebooks - of course, if you want your students to see the questions in your moodle page then skip this step. \n", + "At the top of the section, select \"Edit\" then \"Hide topic\". A blue tage should appear just below the title of the section saying `Hidden from students`.\n", + "\n", + "\n", + "

Create a question

\n", + "To create a new quiz question, use the \"Add an activity\" dropdown menu and then choose \"Interactive content\" as shown on the figure below. \n", + "Attention: do not select the \"quiz\" option in the dropdown menu (this type of quiz cannot be embedded in a notebook).\n", + "\n", + "\"Interactive\n", + "\n", + "Select the type of question that you want in the list and click on it.\n", + "\n", + "\"Content\n", + "\n", + "Fill out the form to create your question, then choose \"Save and return to course\".\n", + "\n", + "

Make the question available

\n", + "\n", + "You have to make the quiz question available outside of moodle (i.e. in your notebooks). On the right side of the activity, select the \"Edit\" menu and then click on \"Make available\", as shown on the image below.\n", "\n", - "**Step 2:** To create a new quiz question, use the \"Add an activity\" dropdown menu \n", + "\"Make\n", "\n", + "Once this is done, a blue tag saying `Available but not shown on course page` should appear right below your quiz question.\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Step 2: embed the question into a notebook\n", "\n", - "## Limitations\n", + "

Get the URL of your question

\n", + "\n", + "From your moodle page, click on your new question. This will open your question and show you how it will look like for students. \n", + "Click on the \"<> Embed\" link at the bottom of the question, as shown on the figure below. Copy the code which appears in the \"Embed\" popup.\n", + "\n", + "\"Embed\"\n", + "\n", + "Paste the code into your favorite text editor and find the URL of the question, which should appear between quotes after `src=` (just after the `iframe` tag), as shown below. Copy this URL.\n", + "\n", + "\"Embed\"\n", + "\n", + "\n", + "

Add your quiz question to your notebook

\n", + "\n", + "In your notebook, add a Python cell where you want the question to appear. Copy paste the following code snipped, which creates an iFrame in which your question will be embedded, and replace `URLOFYOURQUESTION` by the URL of your question.\n", + "\n", + "```python\n", + "from IPython.display import IFrame\n", + "IFrame('URLOFYOURQUESTION', 800, 600)\n", + "```\n", + "\n", + "You can customize the size of the iFrame by changing the `800` (width) and `600` (height) values. \n", + "\n", + "You might also want to add a short line of text just before the cell to indicate to students that they have to execute the cell to see the quiz. \n", + "The first time students use your notebooks, you need to explain that they also have to be logged on moodle to see the quiz - after one use, they will easily get the trick. \n", + "\n", + "Have a look at the demo below!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo\n", "\n", + "To be able to see the demo quiz question, you need to be registered as participant on our moodle course (this is one important limitation of this solution, please see the [Limitations section](#Limitations)). \n", + "Please open a new tab or window, **log on [moodle](https://moodle.epfl.ch/enrol/index.php?id=15917)** and **register yourself on the [Noto Community moodle page](https://moodle.epfl.ch/enrol/index.php?id=15917)**.\n", "\n", - "## Demo\n", + "Then execute the cell below to activate the interactive quiz. \n", "\n", - "Execute the cell below to activate the interactive quiz and answer the question." + "" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 1, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import IFrame\n", - "IFrame('https://moodle.epfl.ch/mod/hvp/embed.php?id=1028285', 1024, 500)" + "IFrame('https://moodle.epfl.ch/mod/hvp/embed.php?id=1028285', 800, 600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you see the message `Vous n'avez pas accès à ce contenu. Essayez de vous connecter.`, check that you are logged on [moodle](https://moodle.epfl.ch/) using your GASPAR account and that you are registered as participant on the [Noto Community moodle page](https://moodle.epfl.ch/enrol/index.php?id=15917)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 } diff --git a/TeachingHowTos/Images/MoodleEmbed.png b/TeachingHowTos/Images/MoodleEmbed.png new file mode 100644 index 0000000..5671971 Binary files /dev/null and b/TeachingHowTos/Images/MoodleEmbed.png differ diff --git a/TeachingHowTos/Images/MoodleH5PContentType.png b/TeachingHowTos/Images/MoodleH5PContentType.png new file mode 100644 index 0000000..88be07e Binary files /dev/null and b/TeachingHowTos/Images/MoodleH5PContentType.png differ diff --git a/TeachingHowTos/Images/MoodleInteractiveContent.png b/TeachingHowTos/Images/MoodleInteractiveContent.png new file mode 100644 index 0000000..fe8871b Binary files /dev/null and b/TeachingHowTos/Images/MoodleInteractiveContent.png differ diff --git a/TeachingHowTos/Images/MoodleMakeAvailable.png b/TeachingHowTos/Images/MoodleMakeAvailable.png new file mode 100644 index 0000000..75a71c8 Binary files /dev/null and b/TeachingHowTos/Images/MoodleMakeAvailable.png differ diff --git a/TeachingHowTos/Images/MoodleQuizQuestion-BeforeSubmit.png b/TeachingHowTos/Images/MoodleQuizQuestion-BeforeSubmit.png new file mode 100644 index 0000000..0641861 Binary files /dev/null and b/TeachingHowTos/Images/MoodleQuizQuestion-BeforeSubmit.png differ diff --git a/TeachingHowTos/Images/MoodleQuizQuestion-Submitted.png b/TeachingHowTos/Images/MoodleQuizQuestion-Submitted.png new file mode 100644 index 0000000..ff10ce7 Binary files /dev/null and b/TeachingHowTos/Images/MoodleQuizQuestion-Submitted.png differ diff --git a/TeachingHowTos/Images/MoodleQuizQuestionURL.png b/TeachingHowTos/Images/MoodleQuizQuestionURL.png new file mode 100644 index 0000000..5dbfa01 Binary files /dev/null and b/TeachingHowTos/Images/MoodleQuizQuestionURL.png differ