Módulo: Programación Desarrollando pensamiento computacional 1. ALGORITMOS a. Lenguajes de Programación Un lenguaje, es un sistema de comunicación dentro de un contexto. El lenguaje humano se realiza a través de la voz, mensajes hablados o escritos, cartas, etc. Cuando se analiza la solución a un problema, se idea un algoritmo, este algoritmo en qué lenguaje es desarrollado? Obviamente cuando vamos pensando en cada paso, lo pensamos en nuestro lenguaje, el español. Pero, las computadoras no entienden español, se necesita un lenguaje especial para poder comunicarnos con ella. Estos lenguajes son los llamados lenguajes de programación [1]. Las personas en el mundo usan lenguajes como español, inglés, chino, portugués, etc. Las computadoras utilizan lenguajes como python, java, etc. 1
Existen otro tipo de lenguajes de programación, que introducen a principiantes al mundo de la programación de una forma más creativa y práctica, los lenguajes gráficos por bloques como el de LEGO WeDo o Scratch [2]. 2. INTRODUCCIÓN A WEDO a. Bloques Software Lego WeDo [3] Bloques de Control de Flujo Bloque de inicio de programa Play Inicio de programa al presionar una tecla Inicio de programa al recibir un mensaje Recibe como valores letras y números. 2
Envió de mensajes Envía como valores letras y números. Tiempo de espera Repeticiones Actuadores Sentido de rotación horaria Sentido de rotación anti-horaria Potencia del motor Recibe números del 1 al 10 Apagar el motor Tiempo de encendido del motor Recibe valores numéricos Sensores Sonido Inclinación Mide la cantidad de sonido del ambiente Detecta 6 posiciones 3
Movimiento Detecta movimiento Tipos de datos Valor en pantalla Muestra el valor almacenado en pantalla Números Texto Número aleatorio Números de 1 al 10 Manejo de datos Emitir sonido Recibe valores del 1 al 20 Mostrar valor en pantalla Recibe números y letras Mostrar fondo de pantalla Recibe valores de 1 al 20 Realizar operaciones matemática en pantalla 4
3. INTRODUCCIÓN A SCRATCH a. Bloques Scratch para Lego WeDo WeDo tiene adaptación de Scratch para programarlo mediante bloques, realizada por el MIT, para poder desarrollar proyectos con el kit educativo LEGO WeDo [2]. Para poder controlar los dispositivos electrónicos del kit LEGO WeDo es necesario tener instalado Scratch 1.4 para Windows. Scratch tiene varios menús para desarrollar programas de hasta avanzado nivel. Bajo el nombre del software se listan todos los bloques de instrucciones disponibles en las siguientes categorías: Movimiento, Apariencia, Sonido, Lápiz, Control, Sensores, Operadores y Variables. Cada instrucción se puede probar individualmente simplemente haciendo doble clic sobre ella. Movimiento Apariencia Sonido Lápiz Control Sensores Operadores Variables Mueve objetos y cambia ángulos. Controla el aspecto visual del objeto, añade bocadillos de habla o pensamiento, cambia el fondo, ampliar o reducir. Reproduce ficheros de audio y secuencias programables. Control del ancho, color e intensidad del lápiz. Sentencias condicionales "if-else", "forever", "repeat" y "stop". Los objetos pueden interactuar con el ambiente que ha creado el usuario. Operadores matemáticos, generador aleatorio de números, sentencias "and" y "or" que comparan posiciones de los objetos. Agregar variables. Valores que son almacenados en memoria 5
Los principales bloques para trabajar con el kit LEGO WeDo los explicamos a continuación, pero no nos limitamos al uso de solo estos bloques. Bloques de Control de Flujo MENÚ CONTROL Bloque de inicio de programa Presionar Bandera Verde Inicio de programa al presionar una tecla Inicio de programa al recibir un mensaje Envió de mensajes Recibe valores como letras y números. Envía valores como letras y números. Tiempo de espera Condicional Si (condición) entonces., sino Las condiciones deben ser igualdades o desigualdades. Repetir infinitamente Repetir un número de veces 6
Actuadores Sentido de rotación horaria Sentido de rotación anti-horaria Potencia del motor Recibe números del 1 al 100. Apagar el motor Tiempo de encendido del motor Recibe valores numéricos. Sensores Sonido Inclinación Movimiento Mide la cantidad de sonido del ambiente. Devuelve un número del 1 al 4. Mide la distancia de 0 a 100. Tipos de datos Scratch acepta tipos de datos numéricos y texto. Manejo de datos En manejo de datos vamos a encontrar muchos otros bloques, los que presentamos en este documento son aquellos que tienen una función equivalente en el software LEGO WeDo. 7
Emitir sonido Menú SONIDO Mostrar valor en pantalla. Recibe operaciones matemáticas o valores tipo texto. Menú APARIENCIA Mostrar fondo de pantalla Realizar operaciones matemáticas Opciones de Escenario. Menú APARIENCIA Menú OPERADORES b. Sentencias Condicionales en Scratch - Condiciones Alguna vez ha escuchado o utilizado frases como Si no terminas la tarea entonces no veras televisión Mientras estés castigado no puedes salir con tus amigos Por cada vez que riegues las plantas obtendrás un sol Siempre hay una condición para esto, otra condición para aquello Cuando se habla de algoritmos también tenemos condiciones que rigen nuestro programa [1]. A = 10 Qué hace este programa?... B = 15 Si A > B es verdadero, entonces: Sino: Mostrar en display 10 Si el valor de A es mayor que el valor de B, entonces en pantalla aparecerá un mensaje con el texto 10. De otra forma aparecerá un mensaje con el texto 9 8
Las condiciones se basan principalmente en la comparación de dos valores, se evalúa si una expresión es verdadera o falsa, utilizamos operaciones de igualdad y desigualdad. En el lenguaje gráfico de Scratch, el equivalente del programa anterior es: El gato dice 9 porque la condición 10 > 15 es falsa. Intente el siguiente programa. Pregunte por un número y verifiquemos si este es mayor que 10. Condición 9
Cuando la condición es verdadera Cuando la condición es falsa En el Software LEGO WeDo las condiciones se trabajan de manera diferente. En WeDo no puedo comparar valores, las únicas condiciones serán en base a los sensores y dentro de un bloque repetir [3], por ejemplo: Repetir mientras sensor de movimiento detecta movimiento, hacer: Mover motor durante 3 segundos. 10
4. SENTENCIAS DE CONTROL DE FLUJO a. Envío de Mensajes En algún momento de su vida ha escrito una carta o un e-mail para comunicar acciones que haya tomado y/o este por realizar. Por ejemplo, anunciar una visita, un viaje, una compra, una venta, etc. muchos pueden ser los motivos; la persona que reciba la misiva también tomará una acción en torno al mensaje recibido. En computación también existe envió de mensajes. En este caso no son personas quienes lo realizan sino programas. Un programa envía un mensaje, y el programa que recibe el mensaje realiza una función según el mensaje que haya recibido. Veamos algunos ejemplos: b. Scratch En Scratch el envío de mensajes es de objeto a objeto, de objeto a escenario y de escenario a objeto. Qué es un objeto? Son todas las imágenes agregadas a nuestro proyecto que cumplan un determinado rol [4]. Un ejemplo sencillo de envío de mensajes en Scratch, sería: La simulación en un ambiente en el que el objeto gato está en un hotel y quiere ir a la biblioteca a leer un libro. Entonces: 1. Se necesita una imagen de fondo de pasillo 2. Se necesita una imagen de fondo de biblioteca 3. Para que el objeto gato cruce el pasillo debe avanzar X pasos. 4. Cuando el objeto gato termine de cruzar el pasillo debe enviar un mensaje para que cambien el fondo 11
5. Una vez que el fondo haya sido cambiado, el objeto escenario le envía un mensaje a todos los objetos para que gato aparezca nuevamente Veamos cómo funciona nuestro programa. El objeto gato se posiciona en el punto (- 160,100) en la puerta Luego va a avanzar 10 pasos y esperar 0.2 segundos, esto se repetirá 30 veces. Con este pequeño programa ya logramos que el gato llegue al otro lado del pasillo. Inténtalo! Ahora envía el mensaje fondo a todos avisando que ya llego al final del pasillo y que el fondo debe ser cambiado por uno de biblioteca. El gato parece que entró a otra habitación! Hacemos clic sobre escenario y en su zona de programas le decimos: Cuando reciba el mensaje fondo cambia el fondo de pasillo a biblioteca, luego que avise a todos, mediante el mensaje biblio, que ya hizo el cambio y espere. 12
Volvemos a los programas de los objetos y le decimos a gato que cuando reciba el mensaje biblio aparezca nuevamente en su posición inicial. Listo!! Para ver el programa en funcionamiento, puedes descargar el proyecto: EjemploScratch.rar. Abre el programa de Scratch 1.4 y pinchar sobre la bandera verde. c. Software LEGO WeDo En el software de LEGO WeDo, el envío de mensajes es de programa a programa dentro de un mismo proyecto. Recordar que en este software no se puede utilizar operaciones como condiciones [3]. Vamos a utilizar nuestro proyecto de Robot Espacial Curiosity, que debe estar construido previamente. 13
Para hacer el programa de envío de mensajes se necesita un control de mando que le indique al robot cuando ir hacia adelante y cuando retroceder, para esta idea utilizaremos el sensor de inclinación. Se puede tomar como ejemplo, el mando construido en la siguiente imagen: Sensor de inclinación Fuente: Rockbotic Entonces, el algoritmo quedaría de la siguiente manera: 1. Cuando el sensor de inclinación detecte la posición adelante, enviará un mensaje con el texto avanzar. 2. Cuando el sensor de inclinación detecte la posición atrás, enviara un mensaje con el texto retroceder. 3. Programa recibe mensaje avanzar, mueve el motor en sentido horario durante 1segundo. 4. Programa recibe mensaje retroceder, mueve el motor en sentido anti horario durante 1segundo. Se obtiene el siguiente programa: 14
En el software LEGO WeDo, podemos usar el paso de mensajes como un condicional, podemos estructurar nuestro programa como: Si sensor de inclinación detecta posición adelante, entonces: segundo. Mover el motor en sentido horario durante 1 Sino: Mover el motor en sentido anti horario 15
5. ASPECTOS COMUNES DE PROGRAMACIÓN a. Tipos de Datos - La Información y los Datos La computadora procesa y ejecuta y serie de instrucciones, mediante algoritmos. Dentro de un algoritmo, se manipula datos e interpreta información [1]. 5 peras 2 naranjas 1 plátano Ana comió 5 peras, 2 naranjas, y 1 plátano en el recreo de hoy. Estas sentencias no tienen sentido. Solo son un conjunto de palabras. Esto sí tiene sentido. A esto le llamamos información. A esto le llamamos DATOS. Los datos son valores que carecen de sentido. La información es un conjunto de datos que infieren un conocimiento. 16
b. Operadores matemáticos y lógica proposicional Como se describió en secciones anteriores, los menús que posee Scratch son variados, uno de ellos es el menú Operadores, donde encontramos los bloques de suma, resta, multiplicación y división. Los bloques de lógica proposicional también se ubican dentro de este menú. Se tiene el siguiente problema: María Fernanda es profesora de inicial, su sueldo asciende a 850 soles; se requiere calcular su sueldo neto, descontando su aporte al seguro social (9%) y su fondo de pensiones (13%) Datos: Seguro social = 850 * 0.09 Fondo de pensiones = 850 * 0.13 17
Sueldo neto = sueldo - (Seguro social - Fondo de pensiones) Otro ejemplo: En un colegio la nota aprobatoria de un estudiante depende de otras tres notas importantes: teoría, práctica y comportamiento. En el curso de matemática un estudiante obtuvo 13 en teoría, 17 en la parte práctica, y 15 en comportamiento. Un estudiante se considera aprobado, si al menos aprobó teoría o práctica; pero si o si debe aprobar comportamiento. La nota mínima es 14. Datos: Teoría = 13 Práctica = 17 Conducta = 15 18
Bibliografía [1] J. G. Brookshear, Computer Science an Overview, Mexico: PEARSON, 2012. [2] P. Willging, G. Astudillo y S. Bast, «Aprender a programar ( y a pensar?) jugando,» de V Congreso de Tecnología en Educación y Educación en Tecnología, 2010. [3] LEGO, LEGO Education WeDo Guía Rápida, 2009. [4] J. C. L. Garcia, Programación con Scratch, 2011. 19