{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook is about demonstrating:\n", "* using **different types of questions** to engage students with the virtual demonstration\n", "* using 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", "\n", "The example chosen is voluntarily *simple* so that anyone can understand what is illustrated and focus the pedagogical features of the example.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Falling objects\n", "\n", "## In-class scenario\n", "\n", "### Problem\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", "### Questions\n", "1. Ask the following **prediction questions** to students - make sure they write down their answers on a piece of paper:\n", " * Which object would reach the ground first: a bowling ball (5 kg) or a tennis ball (0.05 kg)?\n", " * Why? Describe in words your explanation for this behavior.\n", " * Sketch your prediction for the *height* of the object as a function of time. Describe in words what this graph means.\n", " * Sketch your prediction for the *velocity* of the object as a function of time. Describe in words what this graph means.\n", " * Sketch your prediction for the *acceleartion* of the object as a function of time. Describe in words what this graph means.\n", "\n", "\n", "2. **Run the demo** and ask the following **observation questions** :\n", " * When does the each object reaches the ground (time in seconds)?\n", " * What do you observe when we plot multiple objects at the same time?\n", " * What can you conclude from this experiment?\n", "\n", "\n", "3. Provide the explanation (e.g. solving the problem on the board), and have students compare their explanation with your own explanation. \n", "Then ask the following **reflection questions**:\n", " * What happens if we don't ignore the resistance from the air? -- here you can use the virtual lab to show the effect of air resistance: `FallingObjectsLab(show_withair=True);`\n", " * What are the criteria to decide when we can ignore resistance from the air or not when solving problems?\n", "\n", "\n", "4. 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": "markdown", "metadata": {}, "source": [ "## Virtual demo" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from lib.fallingobjects import *\n", "\n", "FallingObjectsLab(show_withair=False);" ] }, { "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-demo-work%3F).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Video" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('E43-CfukEgs', 560, 315, start=171)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\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": null, "metadata": {}, "outputs": [], "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": null, "metadata": {}, "outputs": [], "source": [ "height_time??" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "height_time_withair??" ] } ], "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": 2 }