From 37da40ee4002b91db936d53c68507d8791342842 Mon Sep 17 00:00:00 2001 From: Santiago Soler Date: Wed, 3 Feb 2021 16:15:53 -0300 Subject: [PATCH] Edit notebook 01-variables.ipynb Make small changes for the Geolatinas Coding Group course. Add formative assesments and some more exercises and discussions. --- notebooks/01-variables.ipynb | 546 ++++++++++++++++------------------- 1 file changed, 244 insertions(+), 302 deletions(-) diff --git a/notebooks/01-variables.ipynb b/notebooks/01-variables.ipynb index 09e813c..6cc3737 100644 --- a/notebooks/01-variables.ipynb +++ b/notebooks/01-variables.ipynb @@ -17,12 +17,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n_alumnes = 12\n", - "curso = \"Introduccion a Python para Cientificxs\"" + "curso = \"Geolatinas: Introduccion a Python\"" ] }, { @@ -34,18 +34,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12\n", - "Introduccion a Python para Cientificxs\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(n_alumnes)\n", "print(curso)" @@ -60,21 +51,20 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "El curso Introduccion a Python para Cientificxs posee 12 alumnes.\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(\"El curso\", curso, \"posee\", n_alumnes, \"alumnes.\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Observemos que los valores de las variables persisten en nuevas celdas: JupyterLab \"recuerda\" los valores de las variables asignadas en celdas anteriores." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -84,17 +74,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ahora el curso posee 15 alumnes.\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "nuevos_alumnes = 3\n", "n_alumnes = n_alumnes + nuevos_alumnes\n", @@ -118,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -129,60 +111,27 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "str" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(nombre)" ] }, { "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(cantidad_de_becaries)" ] }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "float" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(temperatura_celsius)" ] @@ -191,24 +140,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Definiendo variables\n", + "## Modificando variables\n", "\n", "Una vez que definimos el valor de una variable, lo podemos modificar a nuestro antojo." ] }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "57.9\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura = 57.9\n", "print(altura)" @@ -216,17 +157,9 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.4\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura = 3.4\n", "print(altura)" @@ -241,27 +174,16 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "float" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(altura)" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -270,20 +192,9 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(altura)" ] @@ -297,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -306,24 +217,84 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "str" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "type(altura)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Formative assessment 1\n", + "\n", + "¿Cual será el output de la siguiente celda?\n", + "\n", + "1. `int`\n", + "2. `float`\n", + "3. `str`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "channel = \"coding-group\"\n", + "type(channel)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Formative assessment 2\n", + "\n", + "¿Cual será el output de la siguiente celda?\n", + "\n", + "1. `int`\n", + "2. `float`\n", + "3. `str`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "densidad_agua = 1000.0\n", + "type(densidad_agua)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Formative assessment 3\n", + "\n", + "¿Cual será el output de la siguiente celda?\n", + "\n", + "1. `Volumen inicial: 6 Volumen: 6`\n", + "2. `Volumen inicial: 4 Volumen: 6`\n", + "3. `Volumen inicial: 4 Volumen: 4`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "volumen = 4\n", + "volumen_inicial = volumen\n", + "volumen = 6\n", + "print(\"Volumen inicial:\", volumen_inicial, \"Volumen:\", volumen)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -342,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -358,20 +329,9 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "63.800000000000004" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura_medicion + 10.6" ] @@ -385,20 +345,9 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "106.4" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura_medicion * 2" ] @@ -412,40 +361,18 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "17.733333333333334" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura_medicion / 3.0" ] }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2.5" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "5 / 2" ] @@ -459,20 +386,9 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "5 // 2" ] @@ -486,20 +402,9 @@ }, { "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "125" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "5 ** 3" ] @@ -513,17 +418,9 @@ }, { "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "hola mundo\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "saludo = \"hola\" + \" \" + \"mundo\"\n", "print(saludo)" @@ -538,7 +435,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -547,24 +444,38 @@ }, { "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "106.4" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "altura_doble" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Formative assessment 4\n", + "\n", + "¿Cual será el output de la siguiente celda?\n", + "\n", + "1. 30.0\n", + "2. 90.0\n", + "3. 70.0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "angulo = 30.090\n", + "media_vuelta = 180\n", + "angulo = angulo + media_vuelta / 3\n", + "print(angulo)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -581,18 +492,9 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Temperatura: 21.3\n", - "temperatura: 19.5\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "Temperatura = 21.3\n", "temperatura = 19.5\n", @@ -604,58 +506,98 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Ejercicio\n", + "### Best practices\n", "\n", - "Un colega de Estados Unidos nos ha compartido la siguiente medición de temperatura de suelo dada en Fahrenheit:\n", - "\n", - "$$ T = 30.3 ^\\circ\\text{F} $$\n", + "Una buena práctica a la hora de escribir código es elegir nombres de variables que sean legibles y tengan un significado con el valor que guardan.\n", + "Por ejemplo, es mejor definir valores de temperatura como lo hicimos antes que utilizar variables como `t` o `temp`.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Las siguientes trés líneas realizan la misma tarea, pero ¿cuál te resulta más sencillo de comprender?\n", "\n", - "Conviertan este valor a grados Celsius, sabiendo que:\n", + "A:\n", + "```python\n", + "ts = m * 60 + s\n", + "```\n", "\n", - "$$ [^\\circ\\text{C}] = \\frac{5}{9} ([^\\circ\\text{F}] - 32) $$\n", + "B:\n", + "```python\n", + "tot_sec = min * 60 + sec\n", + "```\n", "\n", - "Requerimientos:\n", - "- Asignar el dato recibido a una variable.\n", - "- Aplicar la transformación de unidades usando esta variable.\n", - "- Guardar el dato en Celsius en otra variable.\n", - "- Utilizar la función `print` para mostrar ambos resultados." + "C:\n", + "```python\n", + "total_seconds = minutes * 60 + seconds\n", + "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Resolución" + "### Discusión\n", + "\n", + "¿Qué sucede si ejecutamos la siguiente celda?" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "temperatura_f = 30.3" + "g = 9.8\n", + "Altura = 5.6\n", + "masa = 3\n", + "energia_potencial = masa * altura * g\n", + "print(energia_potencial)" ] }, { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-0.9444444444444441" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "temperatura_c = 5 / 9 * (temperatura_f - 32)\n", - "temperatura_c" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ejercicio 1\n", + "\n", + "Un colega de Estados Unidos nos ha compartido la siguiente medición de temperatura de suelo dada en Fahrenheit:\n", + "\n", + "$$ T = 30.3 ^\\circ\\text{F} $$\n", + "\n", + "Conviertan este valor a grados Celsius, sabiendo que:\n", + "\n", + "$$ [^\\circ\\text{C}] = \\frac{5}{9} ([^\\circ\\text{F}] - 32) $$\n", + "\n", + "Requerimientos:\n", + "- Asignar el dato recibido a una variable.\n", + "- Aplicar la transformación de unidades usando esta variable.\n", + "- Guardar el dato en Celsius en otra variable.\n", + "- Utilizar la función `print` para mostrar ambos resultados.\n", + "- Utilizar nombres de variables siguiendo las best-practices." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ejercicio 2\n", + "\n", + "Supongamos que tenemos una partícula viajando por el espacio. Su energía cinética en cualquier instante puede expresarse como:\n", + "\n", + "$$ E_c = \\frac{1}{2} m v^2,$$\n", + "\n", + "donde $E_c$ es la energía cinética, $m$ la masa de la partícula y $v$ el módulo de su velocidad en ese instante.\n", + "\n", + "1. Escribe un código que permita calcular la energía de una partícula de 10kg que viaja a 3.5m/s.\n", + "\n", + "Recuerda:\n", + "- Asignar la masa y la velocidad de la partícula a dos variables diferentes.\n", + "- Calcular la energía cinética haciendo uso de esas variables.\n", + "- Almacenar la energía cinética en una nueva variable.\n", + "- Utilizar la función `print` para mostrar el resultado.\n", + "- Utilizar nombres de variables siguiendo las best-practices." ] } ], @@ -675,7 +617,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.6" } }, "nbformat": 4,