Subido por sandra guzman

Ficha-8

Anuncio
FICHA
8
MISIÓN A MARTE
Sesión 1
Aprendizajes
Al final de esta actividad
se espera que puedas:
•
•
•
•
Crear una simulación
que incluya conceptos
de
programación
como variables y
funciones.
Usar
diferentes
entradas, salidas y
variables.
Hacer
pruebas
y
mejorar los programas
usando casos de
prueba.
Usar
funciones
para estructurar y
simplificar un código.
Lo que sabemos,
lo que debemos saber
Como ya has visto, programar es describir en detalle una serie de pasos lógicos en
un lenguaje apropiado que el computador interpreta y ejecuta para realizar una
tarea.
En esta ficha representarás el proceso de hacer volar un helicóptero robótico llamado
Mars Helicopter. Pero antes, te contaremos un poco más de este proyecto. Mars
Helicopter es un proyecto experimental de la NASA. El proyecto consiste en desplegar
un pequeño helicóptero autónomo en Marte, de ahí su nombre. La finalidad del Mars
Helicopter es explorar diferentes áreas de Marte. Tal como lo señala la NASA, Mars
Helicopter funcionará como explorador robótico de prueba para obtener información
relevante, con el fin de evaluar y planear misiones futuras de otros robots en Marte.
Las baterías y el helicóptero mismo deben ser trasladados en otra nave espacial
interplanetaria hasta Marte, recuerda que dada la gran distancia hasta Marte todo lo
que se transporte debe ser del tamaño y peso más pequeño posible. Por ello, el Mars
Helicopter es un helicóptero muy pequeño que solo podrá realizar máximo 5 vuelos
en Marte con una duración máxima de 90 segundos cada uno, con despegues y
aterrizajes verticales controlados.
Teniendo en cuenta las características del Mars Helicopter y las actividades que vas
a realizar, deberás comprender algunos aspectos que se irán presentando a lo largo
de esta ficha. En particular debes saber qué es una variable, qué es una función y
qué son casos de prueba en programación.
Variables: En programación, una variable es un espacio en la memoria donde se
almacena un valor que podemos crear, cambiar y leer durante la ejecución de un
programa.
Nombre
T1
Procesador ARM ® Cortex de 32 bits
con memoria RAM de 16K bytes.
03 - 2021
8-1
T2
Llueve
La memoria de un computador (la micro:bit es un
pequeño computador) se puede imaginar como un
cajonero como el que muestra la imagen. Cada cajón
tiene un nombre o etiqueta que nos permite identificarlo
sin equivocarnos, y dentro de cada cajón puedo guardar,
retirar, o consultar un objeto.
Cuando programamos la micro:bit con MakeCode una variable puede guadar un
valor. Este valor puede ser de diferente tipo como texto, booleano o Número. En
otras fichas se abordarán otros tipos.
En la siguiente imagen puedes ver una representación de cuatro variables de tipos
diferentes, con sus respectivos valores.
T1
Variable
T2
Llueve
Nombre
21
Valor
La variable T1 tiene asignado el valor numérico 21
La variable T2 tiene asignado el valor numérico 1
1
Falso
“Cali”
La variable Llueve tiene asignado el valor Booleano Falso
La variable Nombre tiene asignado el valor alfabético “Cali”
Podemos realizar operaciones con los valores almacenados en las variables y
actualizarlos, por ejemplo, podemos sumar al valor de T1 con el valor de T2 y
guardar el resultado de la suma en T2.
T1
Variable
T2
Nombre
21
Valor
T2 = T1 + T2
1
“Cali”
T1
Variable
T2
Nombre
21
Valor
22
“Cali”
Podemos cambiar el valor y el tipo de valor almacenado en una variable, por
ejemplo, podemos cambiar el valor asignado a T1 por el valor “Simona”.
T1
T2
Variable
Nombre
21
Valor
22
“Cali”
T1 = “Cali”
T1
T2
Variable
Nombre
Valor
"Simona"
22
“Cali”
Para crear una variable en MakeCode se utiliza el menú de variables y la opción
de crear variables. Te invitamos a crear tres variables en el editor: T1, T2 y T3,
como se muestra a la izquierda.
Vas a utilizar estas tres variables para guardar la temperatura medida por la
micro:bit en tres momentos diferentes.
El Mars Helicopter tiene varios sensores que miden diferentes cosas de las rutas
como la temperatura (termómetro), la presión (barómetro), la orientación (brújula),
etc. Estas mediciones son almacenadas para que otros robots las puedan usar en
la planeación de misiones futuras.
Vamos a programar el Mars Helicopter para que recoja la temperatura promedio
de cada punto; esta información será útil, por ejemplo, para estimar cuánta energía
deben utilizar otros robots en refrigerarse mientras hacen sus propias misiones
en la misma ruta.
03 - 2021
8-2
Los sensores, en particular los termómetros, pueden arrojar imprecisiones en las
medidas, es común tomar varias mediciones y promediarlas para reducir este error.
Recuerda que el cálculo del promedio sería:
(T1+T2+T3)
3
Examina ahora el diagrama de bloques que aparece a la izquierda. Trata de anticipar
qué hace y luego pruébalo para verificar tu predicción.
Igualmente ten cuidado de cómo ensamblas la parte del cálculo del promedio.
A continuación te mostramos ampliada esta parte.
Analiza con cuidado el orden en que se hacen las operaciones en este bloque,
corresponde al promedio= ((T1+(T2+T3))
Como has visto, crear
variables permite guardar
datos para ser utilizados
posteriormente
3
Si usas otro orden, ¿obtendrás un resultado incorrecto? Haz el ensayo.
Funciones: Una función es un conjunto de instrucciones (líneas de código) que
realiza una tarea específica y que se utiliza frecuentemente.
En la sociedad actual, existen expertos en muchas actividades lo cual facilita
adelantar proyectos complejos. Por ejemplo, si estoy remodelando una casa
probablemente no haga todo el trabajo sino que llame a personas expertas en
pintar, en colocar pisos, en hacer instalaciones eléctricas. Cada una de estas
personas sabe qué hacer y cómo hacerlo. De tal forma que cada vez que necesito
hacer un trabajo eléctrico no hago el arreglo, sino que llamo al electricista.
En programación se aplica la misma idea de especialización, si un conjunto de
instrucciones realiza una tarea especializada se convierte en una función. A las
funciones se les asigna un nombre por medio del cual se pueden realizar todas las
instrucciones, cada vez que se requiera, mediante una llamada.
Así, una función permite hacer una tarea varias veces sin repetir las líneas de
código necesarias para realizarla.
En MakeCode cada bloque que usas para programar es una función y los puedes
combinar para crear nuevas funciones.
Ahora debes convertir el programa que acabas de examinar en una función (nuevo
bloque), lo cual será útil dado que vas a requerir tomar la temperatura promedio
en varios lugares de tu programa. No tendrás que escribir el mismo código varias
veces, solo llamar la función.
Cada vez que requieras la temperatura promedio podrás llamar la función que
realizará 3 mediciones de la temperatura y luego obtiene el promedio. No olvides
separar las mediciones con 5 segundos de espera.
03 - 2021
8-3
Para ello debes ir al menú Avanzado, seleccionar Funciones y hacer clic en “crear
una función”. Te aparecerá una ventana, como la que ves abajo, en la que debes
escribir el nombre de la función, este nombre servirá para llamarla posteriormente,
la llamaremos Temperatura promedio.
Al crear la función aparecerán dos bloques dentro del menú Funciones, uno que
se usa dentro de la función para responder con un valor ("return") y otro que sirve
para llamar la función.
En la zona de edición, también aparece un bloque inicial con el nombre de la
función, allí pondremos las instrucciones que se realizarán al llamar la función. A la
izquierda encontrarás estos bloques para guiarte.
Ahora, puedes colocar el código que habías creado para el promedio dentro del
bloque inicial de la función, y hacer llamados a la función desde cualquier lugar por
ejemplo:
Esta función calcula
el
promedio
de
tres mediciones de
temperatura
Como verás, podrás usar esta nueva función que has creado en otros programas
que requieran la temperatura, logrando un error menor gracias al promedio de 3
mediciones en 10 segundos.
Casos de prueba: Un caso de prueba es la especificación del resultado que debe
tener un programa dadas diferentes condiciones de utilización o diferentes datos.
Normalmente debes definir varios casos de prueba para cada funcionalidad de tus
programas, de tal manera que puedas validar su funcionamiento.
Tomemos como ejemplo el programa que se muestra a la izquierda.
Los casos de prueba en este programa, podrían ser:
¿Qué pasa si la temperatura es mayor a 25°?
¿Qué pasa si la temperatura es menor de 25°?
¿Qué pasa si la temperatura es igual a 25°?
¿Seguirá funcionando el código si la temperatura es negativa?
Si observas, este programa invoca la función usando el bloque “llamada Temperatura
promedio”.
03 - 2021
8-4
Desconectadas
Tablero de navegación
con coordenadas (x, y)
X
Y
0,0
1,0
2,0
3,0
4,0
0,1
1,1
2,1
3,1
4,1
0,2
1,2
2,2
3,2
4,2
0,3
1,3
2,3
3,3
4,3
0,4
1,4
2,4
3,4
4,4
Inicio
Recordemos que Mars Helicopter es un helicóptero robótico que servirá como
demostración tecnológica para explorar objetivos interesantes en el planeta Marte,
y como base para planificar la mejor ruta para próximas misiones.
En esta actividad, tu misión será programar el Mars Helicopter para realizar 5 vuelos
de exploración en Marte. Para esta actividad haz lo siguiente:
•
•
•
•
Utiliza el diagrama de flujo para seguir las instrucciones paso a paso.
Realiza los vuelos exploratorios en el tablero de navegación que se presentan
en el documento, dentro de esos rangos de coordenadas se deben establecer
los planes de vuelo.
Lleva el conteo de la variable “Vuelos” en una hoja.
Una de las personas del equipo será la función y se especializará en ejecutar la
función Validar coordenadas.
Inicio
Establecer variables
Coordenada_X en 0
Coordenada_Y en 0
Vuelos en 0
Ingresa plan de vuelo
Leer Coordenada_X
Leer Coordenada_Y
Función Validar coordenadas
¿Coordenada_X >= 0
y
Coordenada_X<= 4 ?
Sí
No
¿Coordenada_Y >= 0
y
Coordenada_Y <= 4 ?
Sí
No
Regresar
FALSO
Llamar Validar coordenadas
No
Pregunta
¿Qué sucede si
ingreso un valor
menor a 0 en
alguna de las
coordenadas?
¿Qué sucede si
ingreso un valor
mayor a 4 en
alguna de las
coordenadas?
¿Qué sucede
si ingreso un
valor entre 0
y 4 en ambas
coordenadas?
03 - 2021
Ir a coordenadas
¿Aprobado?
SÍ
NO
¿Plan de vuelo aprobado?
Sí
No
Aumentar Vuelos en 1
Regresar
FALSO
Regresar VERDADERO
¿Vuelos = 5?
Sí
Fin
Como ves, las funciones ayudan a hacer nuestros códigos más legibles, cada vez
que se necesite hacer una verificación de coordenadas, sólo veremos el llamado a
la función y no todas las líneas de código necesarias para tal verificación.
Casos de prueba: En la función “Validación de coordenadas” se está haciendo una
validación de los datos ingresados en las coordenadas.
Para verificar que los casos de prueba estén funcionando de forma adecuada,
responde las siguientes preguntas de la tabla de la izquierda.
Si lograste llevar a cabo los 5 vuelos cumpliendo las condiciones para realizar cada
viaje, estás listo para cumplir tu otra misión en la micro:bit
8-5
Sesión 2
Conectadas:
manos a la micro:bit
Después de trabajar en la actividad desconectada, ya tienes mayor conocimiento
sobre la Misión a Marte.
Ahora es momento de trabajar en MakeCode haciendo un programa que te permita
simular algunas de las instrucciones necesarias para lograr que el helicóptero vuele
dentro de un rango de coordenadas limitado.
En esta primera tarea vas a simular en el editor MakeCode de la micro:bit solamente
el incremento de las coordenadas X y Y utilizando los botones A para X y B para Y.
Luego, es necesario probar cada movimiento del vuelo, nueva coordenada, para
verificar que se encuentre dentro del área de trabajo.
La micro:bit cuenta con una matriz de 25 LED programables en una cuadrícula de
5 por 5. Este será el espacio (simulado) para los vuelos de exploración.
Para comenzar, debes configurar las variables que utilizarás en el programa. El
bloque de “al iniciar” se utiliza para realizar acciones que solo se adelantan la
primera vez: cuando el programa comienza a funcionar.
Una vez configuradas estas variables, puedes configurar los botones A y B para
incrementar los valores de las coordenadas e ir describiendo una ruta de vuelo.
Analiza estos bloques, trata de anticipar qué hacen y luego prueba en el MakeCode
para verificar tu predicción.
03 - 2021
8-6
Analiza el siguiente
programa.
Este breve programa llama una función denominada Validar_coordenadas la cual
es responsable de realizar un movimiento solicitado del helicóptero mostrándolo
en la pantalla de LED de la micro:bit. Sin embargo, antes de realizarlo, verifica
que esté en el campo de acción del helicóptero. Si llega a estar fuera, la función no
realiza el movimiento, y luego el programa muestra una X.
Es hora de que crees la función Validar_coordenadas. Analiza esta propuesta de
función. No es la única posibilidad.
Lo importante es que las coordenadas (x, y) estén en el área de trabajo, que regrese
verdadero si esto es cierto y falso si no lo es.
Analiza estos bloques, trata de anticipar qué hacen y luego prueba en el MakeCode
para verificar tu predicción. ¿Se muestra la posición del helicóptero? ¿Alcanzas a
ver las flechas y la coordenada después de presionar el botón A o B? Más adelante
modificarás el código para que se puedan volver a ver, pero antes veamos algunos
detalles de esta función.
En esta función (Validar_coordenadas) se usa un bloque graficar x y que puedes
encontrar en la sección LED. Este bloque te permite encender el LED que se
encuentra en la coordenada (x, y) de la pantalla, recordemos que estas coordenadas
empiezan en (0, 0) en la parte superior izquierda.
Ten en cuenta que cuando la función utiliza el bloque "return" aparece un tercer
bloque en la sección Funciones, que servirá para hacer uso del resultado que
regresa tu función, como se ve en el diagrama a la izquierda.
Modifica los bloques para que se alcancen a ver la flecha y la coordenada después
de presionar el botón A o B. Te damos una pista: no llames a la función Validar_
coordenadas en el bloque para siempre.
Una vez hayas resuelto esto, ¿se está mostrando la posición inicial del helicóptero?
Si no, ¿qué debes hacer para que se grafique su posición al iniciar el programa?
03 - 2021
8-7
Es hora de probar el programa completo jugando con él.
03 - 2021
8-8
Aplicando lo aprendido
Deberás ahora probar el programa para diferentes trayectorias y examinar si el
resultado es el esperado. Examina estos dos casos de prueba:
•
•
Si llego a un valor superior a 4 en la coordenada X, ¿es rechazado este último
movimiento?
Si llego a un valor superior a 4 en la coordenada Y, ¿es rechazado este último
movimiento?
Este programa tiene varias dificultades. Una de ellas consiste en que si quisieras
introducir una nueva ruta de vuelo no tienes forma de iniciar de nuevo en la posición
(0,0).
Te sugerimos incluir una acción que inicie las coordenadas en cero cuando se
opriman los botones A y B simultáneamente, lo cual le indica a la micro:bit que vas
a introducir una nueva trayectoria. Seguro ya lo puedes hacer
Para ir más lejos
Ya sabes que el número total de vuelos no puede pasar de 5 y que cualquier vuelo
solo puede durar 90 segundos.
Cada movimiento de este helicóptero le toma 10 segundos (despegar, aterrizar, un
movimiento en X o un movimiento en Y), por lo que ningún plan de vuelo puede
tener más de 9 de estos movimientos.
Modifica el programa para que al menos la condición del número de vuelos sea
tenida en cuenta y avise cuando ya se hayan probado los 5 vuelos posibles.
Para esto es necesario que primero se pueda definir un plan de vuelo conformado
por varios movimientos, sin que se apruebe cada uno de estos independientemente,
y luego se apruebe el plan de vuelo completo.
Si quieres ir aun más lejos, agrega a este programa lo necesario para:
• Poder disminuir el valor de las coordenadas, en la actualidad los botones solo
pueden incrementarlas.
• Controlar la condición de máximo 9 movimientos por plan de vuelo.
• Mostrar el número de vuelos que se han verificado.
03 - 2021
8-9
Lo que hemos
aprendido
Revisa y completa la siguiente tabla marcando una X en la columna que mejor
represente tu aprendizaje:
Verifica los aprendizajes logrados
Sí
Algo
No
Creo un juego que incluya conceptos de programación
como variables y funciones.
Uso diferentes entradas, salidas y variables.
Hago pruebas y mejoro los programas usando casos de
prueba.
Uso funciones para estructurar y simplificar un código.
Selecciona la opción que mejor represente tu opinión:
Contesta las siguientes preguntas
Las actividades realizadas fueron difíciles.
Las actividades me motivaron.
Siento que aprendí muchas cosas.
Aún me quedan muchas dudas sobre lo que hice.
03 - 2021
8 - 10
Sí
Algo
No
Un poco de historia
3000 a. C.
1000 a. C.
0
1000 d. C.
Babilonios
Chinos
Griegos
Mayas
900 d. C.
600 a. C.
600 d. C.
300 a. C.
1990 d. C.
1900 d. C.
1800 d. C.
Primer
computador
Motor de búsqueda
web
Computación
300 d. C.
cuántica efectiva
Nicole-Reine Lepaute (1723 - 1788)
John von Neumann (1903 - 1957)
Astrónoma y matemática francesa. En 1758
participó en el equipo que logró predecir por
primera vez la trayectoria de un cometa al
calcular el regreso del cometa Halley. El equipo
predijo su regreso para el 13 de abril de 1759,
fallando por tan solo un mes, puel el cometa
regresó el 13 de marzo.
Matemático y teórico computacional húngaro.
En 1762, calculó el momento exacto en que
ocurriría el eclipse del 1 de abril de 1764 y
describió el porcentaje del eclipse en intervalos
de 15 minutos. Su devoción a la astronomía y
sus aportes le valieron el reconocimiento como
miembro de la Academia Científica de Béziers.
El asteroide 7720 Lepaute y el cráter lunar
Lepaute fueron nombrados en su honor.
Propuso una arquitectura conceptual de
computador que es la base de todos los
computadores que usamos hoy en día.
Hizo aportes muy importantes en el campo de
la Inteligencia Artificial con sus modelos de
autómatas y máquinas autorreplicativas. Se le
reconoce como el inventor del algoritmo de
ordenamiento Merge Sort, u ordenamiento
por mezcla. En su honor se otorga la Medalla
John von Neumann para logros excepcionales
en ciencia y tecnología de la computación.
También hizo aportes en el campo de las
Matemáticas, la Física y la Economía.
En 1954 realizó una conferencia en Colombia
en la Universidad de los Andes.
Las bases del pensamiento computacional vienen desde la antigüedad y las mujeres han tenido un papel importante
Mujeres y hombres que se destacan en la
computación en Colombia y en el mundo
Sandra Liliana Rojas
Estudió en el colegio de Sugamuxi en Sogamoso, Boyacá, donde pasó los primeros 16 años de su vida. Estudió su
pregrado en Ingeniería de Sistemas en la Universidad de Boyacá, una maestría en Ingeniería de Sistemas y Computación
en la Universidad Nacional de Colombia y otra en Aprendizaje Basado en Proyectos en la Universidad de Aalborg en
Dinamarca.
Sandra es profesora de Ingeniería de Sistemas y Computación y ha sido Directora del Departamento de Ingeniería de
Sistemas e Industrial en la Universidad Nacional de Colombia.
03 - 2021
8 - 11
Descargar