Después de presentar distintas plataformas para aprender a programar, hoy iniciamos una serie de artículos para tomar consciencia de algunos elementos importantes para el diseño de software. En esta ocasión, realizaremos ejercicios con Scratch y veremos algunos conceptos iniciales.

Estos pequeños retos pretenden que nos familiaricemos con la plataforma. Igualmente, como ya he dicho, veremos ciertos conceptos básicos que muchas veces no se explican porque se dan por obvios. No obstante, a veces, lo obvio presenta ciertas sutilezas de las que es importante ser consciente de su existencia.

Primero vamos a empezar con un poco de teoría, una explicación de los conceptos que vamos a trabajar hoy y, a continuación, presentaré unos ejercicios con Scratch con los que practicar los mismos. Así que ¡allá vamos!

CONCEPTOS BÁSICOS

INICIO DE UN PROGRAMA

Puede parecer una tontería, o demasiado obvio, pero la realidad es que todo código empieza por alguna parte. Todos tienen una línea de código que es la primera o, quizá, sería más correcto decir que todos los códigos tienen uno (o más) puntos de entrada o activadores. Estos elementos activadores son aquellos que provocan que un robot o un determinado programa se pongan en marcha. Y lo más importante, estos activadores pueden tener muchas y variadas formas: una tecla del teclado, un click de ratón, una hora, una orden de voz, que otro programa ejecute una instrucción o el típico botón rojo de la guarida del supervillano.

En el caso de Scratch este tipo de instrucciones se denominan Eventos.

ejercicios de scratch eventos

Los tenemos de distintos tipos:

  • Dependen de un periférico: son aquellos eventos que requieren que el usuario tenga algún tipo de interacción con el dispositivo de programación (ordenador, tablet, etc…). Por ejemplo: pulsar una tecla determinada del teclado o una interacción con el ratón.
  • Dependen de un evento previo: son aquellos eventos que empiezan a actuar a partir de un evento previo que puede producirse sin interacción directa del usuario, sino que dependen de que ocurra una determinada situación dentro del propio programa y que se genere por el código. Puede parecer un tanto complicado de entender a primera vista, por ello lo veremos posteriormente con un ejemplo práctico.

CONDICIONES INICIALES

Por norma general estamos acostumbrados a que cuando encendemos un ordenador o un electrodoméstico este responde siempre de la misma manera. Es más, en caso de no hacerlo, generalmente arqueamos la ceja o nos ponemos en lo peor suponiendo que se ha roto o, cuanto menos, tiene un mal funcionamiento. Esto no siempre es así, un aparato puede tener distintos funcionamientos de arranque previstos, pero lo que es innegable es que todos están diseñados para ubicarse siempre en el mismo estado.

Imaginemos, por poner un ejemplo sencillo, una nevera. Al conectarla, esta siempre verificará si:

  • El motor está apagado o encendido. (Sí, ya sé que sin la ayuda de un fantasma no puede estar activada si no está conectada. Pero ella lo verifica igualmente.)
  • La temperatura de la cabina está por encima o por debajo del valor al que queremos que esté.
  • El pulsador de la puerta nos indica si esta está abierta o cerrada.

Una vez verificadas estas condiciones tomará unas decisiones:

  • Si el motor está apagado y la temperatura en la cabina es superior a la deseada, entonces encenderá el motor. En caso contrario, lo mantendrá apagado.
  • Si la puerta está abierta, encenderá la luz. Si no está abierta, la mantendrá apagada.

Pero siempre verificará estas dos cosas al empezar a funcionar. Y, además, lo hará en el mismo orden. Y eso mismo hacen todos los programas (por lo menos los que están bien hechos) y robots del mundo. El primer paso al encender siempre es el de fijar las condiciones iniciales de todos los elementos que control, generalmente con un valor que tienen almacenado en su memoria o con un valor que capturan con algún sensor.

Por consiguiente, todo programa que hagamos, deberá en primer lugar establecer estas condiciones iniciales con el fin de asegurar el correcto funcionamiento. Y eso incluirá, a veces, listas muy largas de condiciones que verificar. Pero, al mismo tiempo, significa que cada vez que queramos añadir una función o condicionante nuevo a nuestro programa tendremos que acordarnos de modificar este apartado de condiciones iniciales.

RETOS Y EJERCICIOS CON SCRATCH

Una vez tengáis vuestro usuario creado en Scratch, podéis buscar en este enlace y os saldrá mi página de perfil para BaM!, donde podréis acceder a los retos y ejercicios con Scratch que os iré planteando. Debería saliros una pantalla como esta:

programación para niños scratch

Al hacer click con el ratón sobre la imagen con el nombre del reto debería salir una página como la que sigue:

programar con scratch

En el recuadro de la derecha hay una pequeña descripción de lo que se plantea. Si hacéis click en el botón de Ver dentro, podréis acceder al código principal.

Empezaremos por el primer reto, se llama: Reto_1-Inicio_programa

Este pequeño reto pretende que se investigue un poco la aplicación y las instrucciones. Pero primero expliquemos los detalles principales del funcionamiento. En primer lugar os presento al gato (ponedle un nombre, el mío se llama BaMiau y así lo llamaré a partir de ahora):

scratch programación niños

Esta es la zona de instrucciones disponibles:

instrucciones ejercicios scratch

Si arrastráis cualquiera de las instrucciones del lateral hasta el panel principal las instrucciones estarán disponibles:

panel principal scratch

No obstante, si las colocáis sin conectar con nada, sencillamente no se ejecutarán nunca porque nadie le dará la orden pertinente. Para que las instrucciones se ejecuten es importante que se ponga de manera secuencial a otras instrucciones:

instrucciones scratch

Eso implica que cuando se ejecute el programa (entraremos en cómo se ejecutan en breve) se irán ejecutando las instrucciones de una en una y de manera ordenada según se hayan dispuesto.

Y con esto y un bizcocho, ya estamos listos para empezar a trabajar.

Como sugerencia, antes de ponernos a trabajar, cuando queráis editar el código sugiero no borrar las instrucciones. No obstante, en el caso de querer volver a cargar el código bastará con volver a reabrir el programa y se verá como estaba al principio.

RETO 1

En este primer reto (llamado Reto_1-Inicio_programa) el programa simplemente realiza lo siguiente: cuando hacemos click en la bandera verde BaMiau avanzará 10 pasos. Podéis mirar el código. Sencillo, ¿verdad?

NOTA: es importante mencionar que el cuadrado donde habita BaMiau, en realidad, está delimitado por coordenadas (X,Y) y que el centro del recuadro es la posición (0,0).

Bien, pues ahora os propongo que hagáis tres cosas:

  1. Conseguid que, cada vez que se pulse la bandera verde, BaMiau vuelva a la posición inicial y luego se mueva los 10 pasos. Es decir, fijarle unas condiciones iniciales. Podréis encontrar esta solución en el programa que lleva por nombre Reto1-SOL1-Inicio_programa.
  2. Una vez resuelto este pequeño reto sumaremos una nueva dificultad. Cuando se pulse la bandera verde, debe avanzar 10 pasos. Pero cuando se pulse la tecla espacio BaMiau debe volver a la posición inicial. Podréis encontrar esta solución en el programa que lleva por nombre Reto1-SOL2-Inicio_programa.
  3. Como último ejercicio, conseguid que BaMiau se pueda mover 20 pasos. Hay varias maneras de solucionar este reto. Explicaremos la solución en próximos retos.

NOTA: la instrucción básica indica “mover” un número determinado de pasos. Pero no da la sensación de movimiento. Si queréis ver el proceso del movimiento la instrucción a usar es “deslizar”. Esta instrucción nos implica indicar la posición en la que debe acabar el movimiento mediante las coordenadas y el tiempo que se requiere para hacer dicho movimiento (y ello marcará la velocidad a la que se realizará dicho desplazamiento).

RETO 2

En este segundo ejercicio de scratch (llamado Reto_2-Saludamos) el programa realiza lo siguiente: cuando hacemos click en la bandera verde BaMiau avanzará 10 pasos, girará 15º y luego avanzará 10 pasos. Al mirar el código podemos ver esas instrucciones detalladas y de manera consecutiva.

Bien pues los ejercicios, ahora, son los siguientes:

  1. Conseguid que al pulsar la bandera verde BaMiau vuelva a la posición inicial.
  2. Una vez tengamos las condiciones iniciales establecidas, al acabar el proceso del código, BaMiau debe saludaros diciendo un simple Hola. Este es un indicador de funcionamiento.

Podréis hallar la solución a este reto en el fichero Reto2-SOL-Saludamos.

Espero que estos retos os hayan dado no solamente un ejercicio con el que aprender los primeros pasos de programación, sino también un contexto sobre la importancia de estos elementos en un código.

Recordad que podéis consultarme cualquier duda, ya sea de estos ejercicios con scratch o cualquier otra cosa, mandando un correo electrónico a marc@bebeamordor.com. ¡Nos vemos en el siguiente artículo!

Marc Travé
Soy Marc, a veces conocido como Krennaste. Actualmente con el privilegio de estar en la junta de Ayudar Jugando (www.ayudarjugando.org). Ingeniero vocacional, apasionado de la música rock y de meterse bajo el océano, friki (de narices según mis amigos/as), frikitradi, leer es mi manera de respirar, me encanta hacer radio y participar en el podcast @0enCordura .

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

En cumplimiento de la legislación española vigente en materia de protección de datos de carácter personal y del reglamento europeo RGPD 679/2016 le informamos de:
Responsable: Julia María Iriarte Gahete + info
Finalidad: Gestión del envío de información solicitada, gestión de suscripciones al blog y moderación de comentarios. + info
Legitimación:: Consentimiento expreso del interesado. + info
Destinatarios: No se cederán datos a terceros para la gestión de estos datos.
Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. + info
Información adicional:: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web bebeamordor.com + info