Pensamiento computacional y actividades desenchufadas

Te damos la bienvenida a este curso sobre Pensamiento computacional y actividades desenchufadas. El pensamiento computacional tiene un nombre confuso. Parece que es la manera en la que piensa una computadora, cuando sin embargo hace referencia a un tipo de pensamiento humano. Así pues, en este curso aprenderemos sobre: Qué es el pensamiento computacional Cómo tratar la información Qué aporta al alumnado trabajar el pensamiento computacional Cómo entrenar al alumnado en esta manera de pensar Cómo llevarlo al aula sin usar dispositivos electrónicos. El objetivo es que tengas conocimientos sobre este área, actividades para llevarla al aula y herramientas para crear actividades o ajustarlas a las necesidades de tu clase

Pensamiento computacional

Al final de este módulo vamos a: Tener una idea clara de qué es, para qué sirve y cómo desarrollar el pensamiento computacional. Conocer los cuatro pilares del pensamiento computacional y afrontar retos complejos de forma metódica. Evaluar la solución obtenida, logrando que esta sea una solución eficiente. Practicar la resolución de problemas cotidianos desde el punto de vista del Pensamiento Computacional.

Pensamiento computacional

Introducción al pensamiento computacional

¿Qué es el pensamiento computacional?

Información basada en "Introduction to computational thinking" de BBC.

Los ordenadores pueden usarse para ayudarnos a resolver problemas, sin embargo, antes de que se pueda abordar un problema, es necesario comprender el problema en sí mismo y las formas en que podría resolverse.

El pensamiento computacional nos facilita afrontar un problema complejo, comprender cuál es el problema y desarrollar posibles estrategias para resolverlo. Luego podemos presentar estas soluciones de una manera tal que un ordenador, una persona o ambos puedan entenderlo.

Los cuatro pilares del pensamiento computacional

pilares_pc.jpg

La clasificación de la BBC se basa en 4 pilares (Descomposición, reconocimiento de patrones, algoritmos y abstracción) haciendo una mención especial a la evaluación . En otros estudios podrás encontrar otras clasificaciones más detalladas. En el módulo 2 de este curso: actividades desenchufadas, se trabaja con estos cuatro pilares mas otros dos: Modelado y simulación, y Evaluación. Te explicamos aquí los fundamentales:

Los cuatro pilares son importantes. Son como las patas de una mesa: si falta una pata, la mesa se caerá. La aplicación correcta de las cuatro técnicas ayudará a la hora de programar un ordenador.

El pensamiento computacional en la práctica

Un problema complejo es aquel que, a primera vista, no sabemos cómo resolver fácilmente.

El pensamiento computacional implica coger ese problema complejo y dividirlo en una serie de problemas pequeños y más manejables (descomposición). Luego, cada uno de estos problemas más pequeños se puede analizar individualmente, considerando cómo se han resuelto problemas similares anteriormente (reconocimiento de patrones) y centrándose solo en los detalles importantes, mientras se ignora la información irrelevante (abstracción). A continuación se pueden diseñar pasos o reglas simples para resolver  cada uno de los problemas más pequeños (algoritmo).

Finalmente, estos pasos simples o reglas son usados para programar un ordenador  o para ayudar a resolver un problema complejo de manera más eficaz.

Pensar de forma computacional

Pensar de forma computacional no es programar. Ni siquiera es pensar como un ordenador, ya que los ordenadores no pueden pensar.

En pocas palabras, la programación dice a un ordenador qué hacer y cómo hacerlo. El pensamiento computacional te permite averiguar exactamente qué decir al ordenador que haga. Es por tanto una habilidad humana, independiente del uso de ordenadores. 

Por ejemplo, si quedas en reunirte con tus amigos en algún lugar en el que nunca has estado antes, probablemente planificarás tu ruta antes de salir de casa. Puedes considerar las rutas disponibles y qué ruta es la “mejor”. Esta podría ser la ruta más corta, la más rápida o la que pasa por tu tienda favorita en el camino. Luego seguirías las instrucciones paso a paso hasta llegar allí. En este caso, la parte de planificación es como el pensamiento computacional, y seguir las instrucciones es como programar.

Ser capaz de convertir un problema complejo en uno que podamos entender fácilmente es una habilidad que es extremadamente útil. De hecho, es una habilidad que ya tienes y que probablemente uses todos los días. 

Por ejemplo, puede ser que necesites decidir qué hacer con tu grupo de amigos/as. Si a todos/as os gustan cosas diferentes, tendréis que decidir:

Con toda esta información, tú y tus amigos/as podréis decidir más fácilmente a dónde ir y qué hacer y que la mayoría esté conforme. También podrías usar un ordenador para ayudarte a recopilar y analizar los datos para idear la mejor solución al problema, tanto ahora como si volviera a surgir en el futuro.

amigas.jpg

Otro ejemplo puede ser al jugar a un videojuego. Dependiendo del juego, para completar un nivel necesitarás saber:

A partir de estos detalles puedes elaborar una estrategia para completar el nivel de la manera más eficiente.

Si tuvieras que crear tu propio juego, estas preguntas son exactamente las que tendrías que plantearte y responder antes de programar el juego.

Los dos ejemplos anteriores son ejemplos de cómo se ha utilizado el pensamiento computacional para resolver un problema complejo:

01-DES-AZ.png

02-PAT-AZ.png

03-ABS-AZ.png

05-ALG-AZ.png

Si quieres saber más, y practicar tu inglés, mira este vídeo:

Computational Thinking and problem solving, by Miles Berry Europe Code Week

Pensamiento computacional

Pilares del pensamiento computacional: Descomposición

Descomposición: Divide y vencerás

divide y venceras2.jpg

Imagen de pikisuperstar en Freepik

¿Qué es la descomposición?

01-DES-AZ.png

Antes de que se pueda resolver un problema, se debe comprender el problema y las formas en que se puede resolver. La descomposición implica dividir un problema o sistema complejo en partes más pequeñas que son más manejables y fáciles de entender. Luego, las partes más pequeñas se pueden examinar y resolver, o diseñar individualmente, ya que es más fácil trabajar con ellas. 

¿Por qué es importante la descomposición?

Si un problema no se descompone: 

La descomposición en la práctica

Hacemos muchas tareas a diario sin siquiera pensar en ellas, o descomponerlas, como lavarnos los dientes.

Ejemplo 1: Lavarnos los dientes

dientes.png

Para descomponer el problema de cómo lavarnos los dientes, necesitaríamos considerar:

Ejemplo 2: Resolver un crimen

crimen.jpg

Normalmente, solo cuando se nos pide que hagamos una tarea nueva o más compleja, comenzamos a pensar en ella en detalle, a descomponer la tarea.

Imagina que se ha cometido un crimen. Resolver un crimen puede ser un problema muy complejo ya que hay muchas cosas a considerar.

Por ejemplo, la policía deberá averiguar la respuesta a una serie de problemas menores:

El problema complejo de resolver el delito cometido ahora se ha descompuesto en problemas más simples que pueden ser examinados individualmente, en detalle.

Ejemplo 3: Crear una aplicación

Imagínate que vas a crear tu primera aplicación. Este es un problema complejo en el que hay un montón de cosas a considerar.

¿Cómo descompondrías la tarea de crear una app?

Para descomponer esta tarea, necesitarás encontrar la respuesta a una serie de problemas menores:

Esta lista ha desglosado el problema complejo de crear una aplicación en problemas mucho más simples, que ahora se pueden resolver. También puedes hacer que otras personas te ayuden con diferentes partes individuales de la aplicación. Por ejemplo, puedes conocer a alguien que pueda crear los gráficos…

aplicación.png

IDEA Descomponer tareas cotidianas: prepara un bocadillo, prepara una excursión… (cuanto más cercana sea la tarea a la experiencia del alumnado mejor).

IDEA Descomponer una figura geométrica en figuras sencillas ya conocidas. 

figura geometrica compleja.jpg

IDEA Jugar al tangram

tangram.jpg

IDEA hacer mapas mentales

Pensamiento computacional

Pilares del pensamiento computacional: Reconocimiento de patrones

Reconocimiento de patrones: Esto lo he visto antes…

esto me suena.jpg

¿Qué es reconocimiento de patrones?

02-PAT-AZ.png

El reconocimiento de patrones es uno de los cuatro pilares del pensamiento computacional. Implica encontrar patrones entre problemas pequeños y descompuestos.  A menudo, cuando descomponemos un problema complejo encontramos patrones entre los problemas más pequeños que creamos. Identificar estas similitudes nos ayuda a resolver problemas más complejos de manera más eficiente. Los patrones son pues, similitudes, estructuras repetitivas, características comunes…

¿Qué son patrones?

Imagina que queremos dibujar una serie de gatos.

Todos los gatos comparten características comunes. Entre otras cosas, todos tienen ojos, cola y pelaje. También les gusta comer pescado y maullar.

Como sabemos que todos los gatos tienen ojos, cola y pelaje, podemos hacer un buen intento de dibujar un gato simplemente incluyendo estas características comunes.

En el pensamiento computacional, estas características se conocen como patrones. Una vez que sabemos cómo describir un gato, podemos describir otros, simplemente siguiendo este patrón. Lo único que es diferente son los detalles:

gatos_pc.jpg

¿Porqué necesitamos buscar patrones?

Encontrar patrones es extremadamente importante. Los patrones simplifican nuestra tarea. Los problemas son más fáciles de resolver cuando comparten patrones, porque podemos usar una misma resolución donde exista un determinado patrón.

Cuantos más patrones podamos encontrar, más fácil y rápida será nuestra tarea general de resolución de problemas.

Si queremos dibujar varios gatos, encontrar un patrón para describir a los gatos en general, como por ejemplo que todos tienen ojos, cola y pelaje, hace que esta tarea sea más rápida y sencilla.

Sabemos que todos los gatos siguen este patrón, así que no tenemos que detenernos cada vez que empezamos a dibujar un nuevo gato para resolver esto. A partir de los patrones que sabemos que siguen los gatos, podemos dibujar rápidamente varios gatos.

dibujar_gato.jpg

¿Qué ocurre cuando no buscamos un patrón?

Supongamos que no hubiéramos buscado patrones en los gatos. Cada vez que quisiéramos dibujar un gato, tendríamos que detenernos y averiguar cómo era un gato. Esto nos retrasaría.

Aún así, podríamos dibujar a nuestros gatos, y se reconocerían como gatos, pero tardaríamos más en dibujar cada gato. Esto sería muy ineficiente y una mala manera de resolver la tarea de dibujar gatos.

Además, si no buscamos patrones, es posible que no nos demos cuenta de que todos los gatos tienen ojos, cola y pelaje. Cuando están dibujados, es posible que nuestros gatos ni siquiera parezcan gatos. En este caso, al no reconocer el patrón, estaríamos resolviendo el problema incorrectamente.

Reconocimiento de patrones dentro del mismo problema o entre problemas diferentes

Para encontrar patrones en problemas buscamos elementos que son iguales (o muy similares) en cada problema. Puede resultar que no existan características comunes entre los problemas, pero aun así deberíamos buscar.

Existen patrones entre diferentes problemas y dentro de problemas individuales. Tenemos que buscar los dos.

Patrones entre diferentes problemas

Para encontrar patrones entre problemas, buscamos cosas que sean iguales (o muy similares) para cada problema.

Por ejemplo, descomponer la tarea de hornear un pastel supone que conozcamos las soluciones a una serie de problemas más pequeños:

Una vez que sabemos cómo hornear un tipo particular de pastel, podemos ver que hornear otro tipo de pastel no es tan diferente, porque existen patrones.

Por ejemplo:

Tenemos los patrones identificados, podemos trabajar en soluciones comunes entre los problemas.

pasteles.jpg

Patrones dentro de los problemas

Los patrones también pueden existir dentro de los problemas más pequeños, en los que  hemos descompuesto el problema.

Si nos fijamos en hornear un pastel, por ejemplo, para cada pastel se necesitará una cantidad precisa de ingredientes específicos, cada ingrediente necesita:

Una vez que sabemos cómo identificar cada ingrediente y su cantidad, podemos aplicar ese patrón a todos los ingredientes. Una vez más, todo lo que cambia son los detalles.

El reconocimiento de patrones dentro de un problema es sencillo de ver si nos imaginamos que estamos haciendo un pastel con una niña o niño. Si por ejemplo hacemos un bizcocho cuyos ingredientes son: harina, azúcar, cacao en polvo, levadura, yogurt y huevos. Podemos hacer juntas la tarea de agregar la harina. Miramos la cantidad requerida, la pesamos y la apartamos en un bol. Una vez hecho, puedo pedir a mi compi que haga sola o solo el paso correspondiente al azúcar. Para ello empleará el mismo procedimiento que hemos empleando para la harina, es decir, usará un patrón. Este mismo puede repetirse para otros ingredientes como el cacao o la levadura. Son patrones dentro del mismo problema.

IDEAS. Además de usar soportes tipo ficha como los que usaremos en el módulo 2, puedes utilizar otros soportes y realizar estas actividades de manera transversal en varias asignaturas y eventos escolares. Bloques de construcción: Usando color, forma o ambos elementos. Hacer collares, pulseras, guirnaldas para navidad o la fiesta de fin de curso, elementos para decorar el aula. Patrones musicales y rítmicos: En esta actividad puedes implica todo el cuerpo. Secuencias con plastilina.

patrones en el aula.jpg

Los edificios escolares a menudo siguen patrones, por ejemplo en las baldosa, en cada cuanto hay una ventana, donde están los baños, tal vez los ciclos estén identificados por colores…. podéis jugar a encontrar los de vuestra escuela.

Juegos de mesa tipo el SET.  Recomendado para mayores de 6 años y con partidas de entre 10 y 20 min de duración. En él usamos unas cartas con diferentes atributos de color, cantidad, forma y tipo de relleno para crear los patrones y hacer tríos de cartas según los que definamos. Es un juego complejo ya que incluye patrones de diferencia, es decir, yo puedo asociar cartas porque tienen todas el mismo color o porque ningún color esta repetido. A su vez, puedo combinar patrones de igualdad y de diferencia. Puedo hacer un trio donde: todas las cartas tengan el mismo color, no se repita ninguna forma , no se repita ningún fondo y haya la misma cantidad de elementos. Las combinaciones son múltiples. Si no te ha quedado claro, lo mejor es que mires el siguiente video: 

Este es un juego competitivo. Esto puede suponer un problema a la hora de llevarlo al aula dependiendo del grupo que tengas y los recursos de los que dispongas. Una variante del juego puede ser que en vez de jugar a ver quién hace más sets sea a ver cuántos sets pueden hacer entre todas las personas que están jugando en un tiempo limitado.

Pensamiento computacional

Pilares del pensamiento computacional: Abstracción

Abstracción. Me sirve, no me sirve

me sirve no me sirve.jpg

¿Qué es la abstracción?

03-ABS-AZ.png

Una vez que hemos reconocido patrones en nuestros problemas, usamos la abstracción para reunir las características generales y filtrar los detalles que no necesitamos para resolver nuestro problema para así concentrarnos en las que sí necesitamos.

En el pensamiento computacional, cuando descomponemos un problema, buscamos patrones con problemas similares o dentro del mismo problema que simplifiquen el problema complejo. Cuando abstraemos, filtramos, nos quedamos sólo con la información relevante. A partir de esto creamos una representación (idea) de lo que estamos tratando de resolver.

¿Cuáles son los detalles o características específicas?

En el reconocimiento de patrones, analizamos el problema de tener que dibujar una serie de gatos.

Notamos que todos los gatos tienen características generales, que son comunes a todos los gatos, por ejemplo, ojos, cola, pelaje, gusto por los peces y la capacidad de hacer maullidos. Además, cada gato tiene características específicas, como pelaje negro, cola larga, ojos verdes, amor por el salmón y un fuerte maullido. Estos detalles se conocen como específicos.

Para dibujar un gato básico, necesitamos saber que tiene cola, pelaje y ojos. Estas características son relevantes. No necesitamos saber qué sonido hace un gato o que le gusta el pescado. Estas características son irrelevantes y se pueden filtrar.

A partir de las características generales que tenemos (cola, pelaje, ojos) podemos construir una idea básica de un gato, es decir, cómo es básicamente un gato. Es entonces cuando podemos describir cómo dibujar un gato básico.

dibujar_gato.jpg

¿Por qué la abstracción es importante?

La abstracción nos permite crear una idea general de cuál es el problema y cómo resolverlo. El proceso nos indica que eliminemos todos los detalles específicos y cualquier patrón que no nos ayude a resolver nuestro problema. Esto nos ayuda a formar nuestra idea del problema. Esta idea se conoce como un "modelo".

Si no abstraemos, podemos terminar con una solución incorrecta al problema que estamos tratando de resolver. Con nuestro ejemplo del gato, si no hiciéramos abstracción, podríamos pensar que todos los gatos tienen colas largas y pelaje corto. Habiéndonos abstraído, sabemos que aunque los gatos tienen cola y pelaje, no todas las colas son largas y no todo el pelaje es corto. En este caso, la abstracción nos ha ayudado a formar un modelo más claro de un gato.

Cómo abstraer

La abstracción es la recopilación de las características generales que necesitamos y la filtración de los detalles y características que no necesitamos.

Al hornear un pastel, hay algunas características generales entre los pasteles. Por ejemplo:

Al abstraer, eliminamos detalles específicos y mantenemos los patrones generales relevantes.

patrones_gen_espe.jpgCreando un modelo

Un modelo es una idea general del problema que estamos tratando de resolver

Por ejemplo, un gato modelo sería cualquier gato. No es un gato específico con cola larga y pelaje corto: el modelo representa a todos los gatos. A partir de nuestro modelo de gatos, podemos aprender cómo es cualquier gato, usando los patrones que comparten todos los gatos.

Del mismo modo, al hornear un pastel, un pastel modelo no sería un pastel específico, como un bizcocho o un pastel de frutas. En cambio, el modelo representaría todos los pasteles. A partir de este modelo podemos aprender a hornear cualquier pastel, utilizando los patrones que se aplican a todos los pasteles.

Una vez que tenemos un modelo de nuestro problema, podemos diseñar un algoritmo para resolverlo.

Pensamiento computacional

Pilares del pensamiento computacional: Algoritmos

Algoritmos. Vamos paso a paso

PASO A PASO.jpg

Un algoritmo es un plan, un conjunto de instrucciones paso a paso para resolver un problema. En un algoritmo se identifica cada instrucción y se planifica el orden en que se deben ejecutar.

¿Qué es un algoritmo?

05-ALG-AZ.png

Los algoritmos son uno de los cuatro pilares del pensamiento computacional. Un algoritmo es un plan, un conjunto de instrucciones paso a paso para resolver un problema. Si puedes atarte los cordones de los zapatos, preparar una taza de té, vestirte o preparar una comida, entonces ya sabes cómo seguir un algoritmo.

En un algoritmo se identifica cada instrucción y se planifica el orden en el que se deben llevar a cabo. Los algoritmos a menudo se usan como punto de partida para crear un programa de ordenador y, a veces, se escriben como un diagrama de flujo o en pseudo-código.

Si queremos decirle a un ordenador que haga algo, tenemos que escribir un programa informático que le diga al ordenador, paso a paso, exactamente qué queremos que haga y cómo queremos que lo haga. Este programa paso a paso necesitará planificación, y para hacerlo usamos un algoritmo.

Las ordenadores son tan buenos como los algoritmos que se les da. Si introduces en el ordenador un algoritmo deficiente, obtendrás un resultado deficiente.

Los algoritmos se utilizan para muchas cosas diferentes, incluidos los cálculos, el procesamiento de datos y la automatización.

Haciendo un plan

Es importante planificar la solución a un problema para asegurarse de que será correcta. Usando el pensamiento computacional y la descomposición, podemos dividir el problema en partes más pequeñas y luego podemos planificar cómo volver a encajarlo en un orden adecuado para resolver el problema.

Este orden se puede representar como un algoritmo. Un algoritmo debe ser claro.

Debe tener:

HACIENDO UN PLAN.jpg

Representación de un algoritmo: Pseudo-código

Hay dos formas principales en que se pueden representar los algoritmos: pseudo-código y diagramas de flujo.

La mayoría de los programas se desarrollan utilizando lenguajes de programación. Estos lenguajes tienen una sintaxis específica que debe usarse para que el programa funcione correctamente. El pseudo-código no es un lenguaje de programación, es una forma simple de describir un conjunto de instrucciones que no tiene que usar una sintaxis específica.

Escribir en pseudo-código es similar a escribir en un lenguaje de programación. Cada paso del algoritmo está escrito en una línea propia en secuencia. Por lo general, las instrucciones se escriben en mayúsculas, las variables en minúsculas y los mensajes en forma de oración.

En pseudo-código,  ENTRADA hace una pregunta. SALIDA imprime un mensaje en pantalla.

Se podría crear un programa simple para preguntarle a alguien su nombre y edad, y hacer un comentario basado en esto. Este programa representado en pseudo-código tendría este aspecto:

SALIDA                    “Cómo te llamas?”

ENTRADA                el usuario introduce, teclea, su nombre

ALMACENAR           la entrada del usuario en la variable nombre

SALIDA                     “Hola” + nombre

SALIDA                      “¿Qué edad tienes?”

ENTRADA                  el usuario introduce su edad

ALMACENAR             la entrada del usuario en la variable edad

SI edad >= 70 ENTONCES

               SALIDA “¡Estás estupendo!”

SI NO

               SALIDA “¡Eres un chaval!”

IDEA. Pueden jugar a guiar el dibujo de otra persona. Una persona da las instrucciones, por ejemplo: dibuja un círculo, haz unos triángulos saliendo del círculo, dibuja una casa debajo del círculo…. Puede haber varias personas dibujando lo que una persona indica. Las diferencias entre los dibujos en parte se deberán a la que las instrucciones no han sido lo suficientemente concretas. A medida que jueguen irán afinando las instrucciones, por ejemplo: dibuja un círculo de 3 cm de diámetro en el centro del la hoja, haz 5 triángulos iguales saliendo del círculo. Los triángulos tienen dos lados iguales, la base es el trazado del círculo y no es igual a los lados, dibuja una casa debajo del círculo, compuesta por un tejado triangular igual a los que has dibujado para hacer el sol…. Para facilitar el trabajo puedes ofrecerles papel cuadriculado para hacer esta actividad y entregarles fichas a los que deben describir para que las otras personas dibujen o que lo hagan de manera libre.

IDEA. Hacer un pseudo-código para hacer tareas sencillas, como ir al baño, sacar punta a un lápiz, levantar una silla….. Cada equipo escribe las instrucciones y se las pasa a otro equipo. El otro equipo las tiene que seguir al pie de la letra y hacer solo lo que pone en las instrucciones.

IDEA. Tal vez conozcas el texto de Julio Cortazar “Instrucciones para subir una escalera”. Puede ser divertido escoger textos de instrucciones y usarlos de base para hacer un pseudo-código. O coger un pseudo-código sencillo y convertirlo en un texto difícil de entender cómo es el caso de este cuento. También puedes adaptar el cuento para que no se sepa de qué se habla y jugar a adivinar. A partir de aquí puedes animarles ha hacer su propio cuento , en el que describan una actividad que las demás deban adivinar. Una posibilidad de adaptación podrías ser: “Instrucciones para realizar una tarea misteriosa”: "Nadie habrá dejado de observar que con frecuencia el suelo se pliega de manera tal que una parte sube en ángulo recto con el plano del suelo, y luego la parte siguiente se coloca paralela a este plano, para dar paso a una nueva perpendicular, conducta que se repite en espiral o en línea quebrada hasta alturas sumamente variables. Agachándose y poniendo la mano izquierda en una de las partes verticales, y la derecha en la horizontal correspondiente, se está en posesión momentánea de un segmento. Cada uno de estos segmentos, formados como se ve por dos elementos, se sitúa un tanto más arriba y adelante que el anterior, principio que da sentido a la estructura, ya que cualquiera otra combinación producirá formas quizá más bellas o pintorescas, pero incapaces de cumplir su función. Estas estructuras se encaran de frente, pues hacia atrás o de costado resultan particularmente incómodas. La actitud natural consiste en mantenerse de pie, los brazos colgando sin esfuerzo, la cabeza erguida aunque no tanto que los ojos dejen de ver los peldaños inmediatamente superiores al que se pisa, y respirando lenta y regularmente. Para realizar nuestra tarea misteriosa se comienza por levantar esa parte del cuerpo situada a la derecha abajo, envuelta casi siempre en cuero o gamuza, y que salvo excepciones cabe exactamente en el segmento. Puesta en el primer segmento dicha parte, que para abreviar llamaremos pie, se recoge la parte equivalente de la izquierda (también llamada pie, pero que no ha de confundirse con el pie antes citado), y llevándola a la altura del pie, se le hace seguir hasta colocarla en el segundo segmento, con lo cual en éste descansará el pie, y en el primero descansará el pie. (Los primeros segmentos son siempre los más difíciles, hasta adquirir la coordinación necesaria. La coincidencia de nombre entre el pie y el pie hace difícil la explicación. Cuídese especialmente de no levantar al mismo tiempo el pie y el pie). Llegado en esta forma al segundo segmento, basta repetir alternadamente los movimientos hasta encontrarse con el final de la estructura. Se sale de ella fácilmente, con un ligero golpe de talón que la fija en su sitio, del que no se moverá hasta el momento del descenso"

txt-misterioso.jpg

IDEA. Jugar a ser robots: Se puede jugar por tríos:  una persona es un robot tipo BeeBot, otra quien programa y la tercera al ver el código escrito tiene que adivinar a dónde llegará el “robot”. Quien programa escribe la secuencia usando flechas, se lo muestra a quien adivina y este hace una predicción. Luego se “programa” a quien hace de robot haciendo como que tiene una botonera en la espalda ( adelante, atrás, izquierda, derecha). El juego aumenta la dificultad si quien hace de robot tiene los ojos vendados o si pones obstáculos. Facilita el juego hacerlo en un lugar donde haya baldosas o similares que delimiten cuál es la unidad de desplazamiento.

IT10077-BEEBOT.jpg

Si no conoces como funciona la Beebot te dejamos un video, podrás ver cómo funciona a partir de el minuto 1: 47


Representación un algoritmo: diagramas de flujo

Un diagrama de flujo es una representación de un conjunto de instrucciones. Los diagramas de flujo normalmente usan símbolos estándar para representar las diferentes instrucciones. Hay pocas reglas reales sobre el nivel de detalle necesario en un diagrama de flujo. A veces, los diagramas de flujo se dividen en muchos pasos para brindar muchos detalles sobre lo que está sucediendo exactamente. A veces se simplifican para que una serie de pasos ocurran en un solo paso.

Símbolos del diagrama de flujo

simbolos_diagrama_flujo.jpg

Se podría crear un programa simple para preguntarle a alguien su nombre y edad, y hacer un comentario basado en esto. Este programa representado como un diagrama de flujo se vería así:

diagrama_flujo.jpgLos diagramas de flujo pueden emplearse para resolver problemas de cualquier naturaleza, sin importa el tema ni la dificultad (de hecho, cuanto más complejo es el problema más útil) Veamos un ejemplo:

IDEA. Se pueden crear diagramas de flujo con lápiz y papel pero también hay aplicaciones interesante para hacer diagramas de flujo. Una de ellas es Diagrams. Esta aplicación gratuita y de código abierto ayuda a crear una gran variedad de diagramas en Windows, Linux y macOS, agregando imágenes, configurando los textos y eligiendo el tipo de fuente, etc. El alumnado tendrá la opción de diseñar diagramas de flujo, mapas mentales…. y otro tipo de representaciones aunque para este curso con las que hemos nombrado tenemos suficiente. Su interfaz es muy práctica e intuitiva e incorpora capas que facilitan la edición. Otra opción es Mindomo. En este caso no hablamos de software libre. Se trata de un software colaborativo en línea para realizar diagramas de flujo, mapas mentales… y otras muchas cosas… aunque para este curso estas nos parecen las más adecuadas.  Software Freemium ofrece sus servicios básicos de forma gratuita, si bien se cobra por las funciones prémium. La versión gratuita tiene un límite de tres mapas mentales y funciones prémium inhabilitadas, como carga de audio/video, descarga de PDF, PowerPoint y Excel y protección con contraseña. El software se puede usar desde cualquier navegador web estándar o instalando la aplicación gratuita para escritorio, iPad y Android.

Pensamiento computacional

Evaluación de soluciones

Antes de poder programar las soluciones, es importante asegurarse de que satisfagan adecuadamente el problema y que lo hagan de manera eficiente. Esto se hace a través de la evaluación.

¿Qué es evaluación?

Una vez que se ha diseñado una solución utilizando el pensamiento computacional, es importante asegurarse de que la solución sea adecuada para su propósito.

La evaluación es el proceso que nos permite asegurarnos de que nuestra solución hace el trabajo para el que ha sido diseñada y pensar en cómo se podría mejorar.

Una vez escrito, se debe verificar un algoritmo para asegurarse de que:

Si un algoritmo cumple con estos cuatro criterios, es probable que funcione bien. Entonces se puede programar el algoritmo.

La falta de evaluación puede dificultar la escritura de un programa. La evaluación ayuda a garantizar que se nos encontraremos con la menor cantidad posible de problemas al programar la solución.

¿Por qué necesitamos evaluar nuestra solución?

El pensamiento computacional ayuda a resolver problemas y a diseñar una solución, un algoritmo, que se puede usar para programar un ordenador. Sin embargo, si el algoritmo falla, puede ser difícil escribir el programa. Peor aún, es posible que el programa terminado no resuelva el problema correctamente.

La evaluación nos permite considerar la solución a un problema, asegurarnos de que cumpla con los criterios de diseño originales, produzca la solución correcta y se ajuste al propósito, antes de que comience la ejecución.

¿Qué ocurre si no evaluamos una solución?

Una vez que se ha decidido una solución y se ha diseñado el algoritmo, puede ser tentador perderse la etapa de evaluación y comenzar a la etapa de ejecución de inmediato. Sin embargo, sin la evaluación, no se detectarán los errores en el algoritmo, y es posible que el programa no resuelva correctamente el problema o no lo resuelva de la mejor manera.

Los fallos pueden ser menores y no muy importantes. Por ejemplo, si se creó una solución a la pregunta "¿cómo dibujar un gato?" y esta tenía errores, todo lo que estaría mal es que el gato dibujado podría no parecerse a un gato.

solucion defectuosa.jpg

Sin embargo, los errores pueden tener efectos enormes y terribles, por ejemplo, si la solución para el piloto automático de un avión tuviera defectos.

Formas en que las soluciones pueden ser defectuosas

Podemos encontrar que las soluciones fallan porque:

Una solución defectuosa puede incluir uno o más de estos errores.

Soluciones que no se descomponen correctamente

Si se aplican técnicas de pensamiento computacional al problema de cómo hornear un pastel, al descomponer el problema, es necesario saber:

evaluacion tipos.jpgUn diagrama de una descomposición de ingredientes se vería así:

evaluacion_01.jpg

Por el momento, un diagrama de la descomposición adicional del equipo necesario se vería así:

evaluacion_02.jpg

La parte de 'Utensilios' no está correctamente desglosada (o descompuesta). Por lo tanto, si la solución, o el algoritmo, se creara a partir de esto, hornear el pastel tendría problemas. El algoritmo diría qué utensilio se necesita, pero no cómo usarlo, por lo que una persona podría terminar tratando de usar un cuchillo para medir la harina y una batidora para cortar un trozo de mantequilla, por ejemplo. Esto sería incorrecto y, por supuesto, no funcionaría.

Idealmente, entonces, 'Utensilios' debería descomponerse aún más, para indicar qué utensilios se necesitan y con qué ingredientes.

imagen.png

El error se da aquí porque el problema de qué equipo usar y con qué ingredientes usarlo no se había descompuesto por completo.

Soluciones incompletas

Si se aplican técnicas de pensamiento computacional al problema de cómo hornear un pastel, al descomponer el problema, es necesario saber:

evaluacion tipos.jpg

Sin embargo, esto está incompleto: se ha omitido parte del problema. Todavía necesitamos saber:

Por lo tanto, si esta información se usara para crear la solución, el algoritmo diría cuánto tiempo se debe hornear el pastel, pero no indicaría que se debe colocar el pastel en el horno o la temperatura a la que debe estar el horno. Incluso si el pastel llegó al horno, podría terminar poco cocido o quemado hasta convertirse en cenizas.

Se han omitido factores muy importantes, por lo que las posibilidades de hacer un gran pastel son escasas.

El error se dio aquí porque no se había incluido colocar el pastel en el horno y especificar la temperatura del horno, lo que hacía que la solución fuera incompleta.

Soluciones ineficientes

Si se aplican técnicas de pensamiento computacional al problema de cómo hornear un pastel, al descomponer el problema, la solución sería, entre otras cosas, que se necesitan ciertas cantidades de ingredientes particulares para hacer el pastel.

Para el primer ingrediente, podría decirnos que vayamos a la despensa, tomemos el ingrediente y lo traigamos de vuelta a la mesa. Para el segundo, y todos los demás ingredientes, podría decirnos que hagamos lo mismo.

Si el pastel tuviera tres ingredientes, eso significaría tres viajes a la alacena. Si bien el programa funcionaría así, sería innecesariamente largo y complicado:

imagen.png

Sería más eficiente obtener todos los ingredientes de una sola vez y, como resultado, el programa sería más corto:

imagen.png

La solución ahora es más simple y eficiente, y se ha reducido de nueve pasos a cinco.

El problema ocurrió aquí porque algunos pasos se repitieron innecesariamente, lo que hizo que la solución fuera ineficiente y demasiado larga.

Soluciones que no cumplen con los criterios de diseño originales

Las soluciones deben evaluarse según la especificación original o los criterios de diseño cuando sea posible. Esto asegura que la solución no se haya desviado demasiado de lo que se requería originalmente, que solucione el problema original y que sea adecuado para los usuarios.

Imagina tener que aplicar el pensamiento computacional al problema de cómo hornear un pastel. Al descomponer el problema, es necesario saber:

evaluacion tipos.jpg

El primer punto considera qué tipo de pastel hornear. A menudo, cuando se idean soluciones a problemas, se da una especificación para el diseño. Por ejemplo, es posible que el pastel tenga que ser un pastel de chocolate, que sigue siendo bastante general, o un pastel de dulce de chocolate con glaseado de chocolate y almendras por encima, que es más específico.

Para cumplir con los criterios de diseño, es importante asegurarse de hornear exactamente el tipo correcto de pastel. De lo contrario, la solución puede no ser adecuada para su propósito.

El error ocurrió aquí porque la solución no cumplía con los criterios de diseño originales, no era exactamente lo que se solicitaba.

no cumple criterios iniciales.jpg

¿Cómo evaluamos nuestra solución?

evaluar la solucion.jpg

Hay varias formas de evaluar las soluciones. Para estar seguro de que la solución es correcta, es importante preguntar:

¿Tiene sentido la solución?

¿Entiendo ahora completamente cómo resolver el problema? Si todavía no tengo claro cómo hacer algo para solucionar nuestro problema, debo volver atrás y asegurarme de que todo se haya descompuesto correctamente. Una vez que sepa cómo hacer todo, nuestro problema se descompone completamente.

¿La solución cubre todas las partes del problema?

Por ejemplo, si dibujo un gato, ¿la solución describe todo lo necesario para dibujar un gato, no solo los ojos, la cola y el pelaje? De lo contrario, debo regresar y seguir agregando pasos a la solución hasta que esté completa.

¿La solución pide que se repitan las tareas?

Si es así, ¿hay alguna manera de reducir la repetición? He de regresar y eliminar las repeticiones innecesarias hasta que la solución sea eficiente.

Una vez que esté satisfecho/a con una solución, puedo pedirle a otra persona que la revise. Otro punto de vista suele ser bueno para detectar errores.

Es importante que tu solución siga los principios KISS y DRY

Los principios KISS (Keep It Simple, Stupid) y DRY (Don't Repeat Yourself) son dos conceptos importantes en el desarrollo de software y en la generación de algoritmos en general. El principio KISS se refiere a mantener las cosas simples en el diseño y desarrollo. Sugiere que es mejor optar por soluciones simples y directas en lugar de complicar innecesariamente el proceso.  Por otro lado, el principio DRY se enfoca en evitar la repetición de tareas (o código) y de información en un sistema. En lugar de duplicar las tareas o la lógica, se promueve la creación de abstracciones. Aplicado a programación promueve la reutilización de código a través de funciones, clases o módulos. Esto reduce la duplicación, mejora la legibilidad y facilita los cambios, ya que solo se requiere modificar una única fuente de información. Ambos principios buscan fomentar la claridad y la eficiencia.  Para más información sobre estos principios podéis consultar aquí.

Simulacro

Una de las mejores formas de probar una solución es realizar lo que se conoce como "simulacro". Con lápiz y papel, trabaja en el algoritmo y traza un camino a través de él.

Por ejemplo, en el apartado de Algoritmos, se creó un algoritmo simple para preguntarle a alguien su nombre y edad, y hacer un comentario basado en estos. Puedes probar este algoritmo usando dos edades, 15 y 75 años. Al usar 75 años, ¿adónde va el algoritmo? ¿Da la salida correcta? Si usas la edad de 15 años, ¿te lleva por un camino diferente? ¿Sigue dando la salida correcta?

Si el simulacro no da la respuesta correcta, hay algo mal que debe corregirse. Revisar la ruta a través del algoritmo ayudará a mostrar dónde está el error.

Los simulacros también se utilizan con programas completos. Los programadores usan ensayos para ayudar a encontrar errores en el código de su programa.

IDEA. Puedes jugar a que se intercambien sus soluciones para evaluarlas y detectar fallos. Dependiendo de cuál haya sido la actividad propuesta, por ejemplo, si hemos hecho lo del pastel, pues se trataría de que otro grupo revisara la solución. Esto puede hacerse con papel y lápiz o pueden pequeñas representaciones teatrales de la solución: Voy a hacer como que hago un pastel con estas instrucciones. También puedes darles soluciones que tengan fallos y animarles a encontrarlos.

Pensamiento computacional

Caso práctico

Te proponemos aplicar el pensamiento computacional a un problema real al que podríamos tener que enfrentarnos. Resolveremos este reto paso a paso viendo que herramientas o alternativas podemos usar en cada uno de ellos.

Como ya hemos visto, el pensamiento computacional consta de 4 pilares básicos y cada uno de ellos es imprescindible. En el aula lo recomendable es proponer actividades para ejercitar cada uno de ellos. De esta manera puedes ver fácilmente si alguno de ellos necesita trabajo extra por parte de alumnado y reforzarlo con actividades específicas. Los cuatro pilares están interconectados por lo que es frecuente que usemos varios a la vez. Cuando decimos practicar uno, nos referimos al predominante, no quedando otros excluidos

Reto: Prepara un día en la playa de Salou con un amigo.

excursion zarautz.jpg

No me tengo que olvidar de la crema, ni de coger algo para beber, ni del bañador, ni de las gafas de sol, ni de ……

Veamos si somos capaces de poner orden en el problema para no dejarnos nada.

Siguiendo los pilares del pensamiento computacional debemos plantearnos:

Descomposición: ¿Podemos descomponer el problema en partes más simples?

Abstracción: ¿Podemos ver qué detalles son relevantes y cuales irrelevantes?

Reconocimiento de patrones: ¿Podemos recordar viajes similares o experiencias parecidas con esta amiga o amigo? 

Algoritmo: ¿Podemos preparar un plan de acción?

Descomposición

Intentemos descomponer el reto en retos más simples que podamos afrontar fácilmente:

¿Cómo vamos a ir a Salou? 

¿Hora de salida y de vuelta?

¿Qué comida y bebida vamos a llevar? ¿O mejor comprarla allí?

¿Qué ropa vamos a llevar?

¿Cómo nos protegeremos del sol?

¿Qué prevemos hacer en Salou?

Intentemos resolver cada uno de estos problemas. Algunos los resolveré yo y otros mi amigo:

¿Cómo vamos?

Queremos aprovechar todo el día, con lo que iremos a primera hora y volveremos para llegar a casa a las 9 ó 10 de la noche. Si llevamos el coche, tendremos que pagar el parking y en Salou no es nada fácil aparcar. Miraremos si hay viajes en autobús y si quedan plazas.

Mi amigo ha ido varias veces en autobús a Salou, con lo que es más fácil que se encargue él de mirar autobús, horarios… ya que ya sabe con qué compañía hacerlo.

¿Comidas? 

Tenemos que comer al mediodía, tomar algo a media mañana y algo para merendar. Cenaremos en casa.

A media mañana podemos tomar algo de fruta.

Para comer podemos llevar bocadillos y comprar la bebida allí, para que esté fresquita. Y a media tarde, podemos tomarnos un helado.

Yo me puedo encargar de comprar algo de fruta y de preparar los bocadillos. Hablaré con mi amigo para ver de qué le gusta el bocadillo.Tendré cuidado de no usar ingredientes que se puedan estropear con el calor.

No hay que olvidarse de coger algo de dinero.

La cena podemos hacerla en casa.

¿Ropa?

Pensemos en el calzado para la playa: ¿chancletas?

¿Bañador y bañador de repuesto?

¿Un pantalón corto y camiseta será suficiente?

¿Gorra para proteger la cabeza del sol?

Un jersey para el autobús, que a veces hace frío con el aire acondicionado.

¿Y cómo nos protegemos del sol?

Gafas de sol.

Crema solar de protección alta, que vamos a estar todo el día.

¿Sombrilla?

¿Qué haremos?

Por la mañana estaremos en la playa.

A media mañana podemos tomar la fruta.

Al mediodía nos tomamos los bocatas y el café en algún chiringuito.

A media tarde un helado.

Y a las 8 cogeremos el bus de vuelta.


Como vemos en este ejemplo la descomposición puede hacerse en varios niveles de detalle. Cada parte del problema puede a su vez subdividirse. En nuestro caso de qué es el bocadillo supone desglosar el punto referente a la comida. Cuanto mayor es el problema más necesario es aplicar la descomposición en cada parte.

Reconocimiento de patrones

Al haber descompuesto el reto en problemas más pequeños, resulta más sencillo centrarse en cada uno de ellos y proponer distintas soluciones e incluso decidir quién de los dos amigos puede afrontarlo con más facilidad, por que ya lo ha hecho antes, ha tenido experiencias similares, tiene conocimientos sobre el tema en cuestión,…

En nuestro ejemplo podemos encontrar patrones en:

“Tendremos que pagar el parking, en Salou no es nada fácil aparcar” Hemos ido más veces, o tal vez nos han hablado de ello o incluso puede que lo extrapolemos teniendo en cuenta otras playas similares en época estival

“Mi amigo ha ido varias veces en autobús a Salou, con lo que es más fácil que se encargue él de mirar autobús, horarios… ya que ya sabe con qué compañía hacerlo.” En su momento esta personas buscaría que opciones de autobuses hay, es una parte del trabajo que ya está hecha y solo hace falta recuperar.

“Un jersey para el autobús, que a veces hace frío con el aire acondicionado”. Nuestras experiencias previas en autobuses nos indican que aunque haga 30º conviene llevar una chaqueta.

Abstracción

Como podéis ver, nos hemos intentado centrar en los temas relevantes, obviando detalles que no lo son. No nos centramos en si la gorra para protegernos del sol debe ser de un tipo u otro, de una marca u otra o de un color u otro. Es importante que llevemos una crema de protección solar que evite que nos quememos la piel, pero no lo es tanto la marca de la misma.

Algoritmo

Y por último, deberíamos preparar un plan de acción. Como hemos visto el algoritmo se puede representar como pseudo-código o como diagrama de flujo

Primero deberemos comprobar que hay billetes de autobús y que el horario nos parezca correcto: salir hacia las 9 y volver hacia las 8. No tiene sentido afrontar el resto de los retos si no hemos resuelto este tema.

Segundo, haremos un check list con todo lo que debemos llevar, diferenciando lo que es para uso individual, como las gafas de sol, de lo que cogeremos para usar los dos, como lo es la crema de protección solar, que ya tengo un bote en casa

En este check list indicaremos quién se encarga de cada una de las tareas.

De manera esquemática podría escribirse como:

Al hacer el check list nos hemos dado cuenta de que se nos olvidaba la toalla.

Diagrama de flujo:

Salou.jpg

Evaluación

Se debe entender fácilmente, en caso contrario es posible que no está suficientemente descompuesto. En nuestro caso, si no especificamos qué debemos llevar a la playa tal vez nos olvidemos cosas, como por ejemplo la toalla.

Debe resolver todos los aspectos del problema: En nuestro caso hay un punto que está sin resolver…. ¿Paras un minuto y piensas cual puede ser?

Debe ser eficiente. No tiene ningún sentido que cojamos dos sombrillas o que nos encarguemos los dos en llamar a la compañía de autobuses para ver horarios y plazas disponibles,….

Debe cumplir con los criterios iniciales. En nuestro caso, si ante el hecho de no haber billetes optamos por buscar otra playa a la que ir en el día que hemos seleccionado estaríamos incumpliendo los criterios iniciales que eran ir a Salou.

Es interesante poder hacer un simulacro. Puede hacerse en lápiz y papel repasando punto por punto o algo más teatralizado. Es interesante que participe en la evaluación alguien que no ha estado en el proceso.

Y ahora…¿Has encontrado ya el fallo de nuestra solución?

¡¡Efectivamente!! No hemos consultado la previsión del tiempo. Aunque pensemos que el tiempo está asegurado, puede no ser así.

Pensamiento computacional

Pensamiento computacional en el aula

En el aula es común que encontremos problemas de este tipo:

“Un trastero tiene una forma cuadrada de 5 metros de lado y 2m de alto . ¿Cuál es el área del suelo del trastero?"

Las tres fases para resolver estos problemas son:

En la primera fase necesitamos encontrar los datos necesarios para la resolución del problema. Para ello es muy importante que sepamos qué nos pide el problema. Los datos relevantes no son los mismos si nos preguntan el área del suelo o cuánto aire cabe dentro trastero. Para completar la primera fase necesitamos saber que hablamos de un cuadrado de 5m de lado y que nuestra incógnita es el área.

A continuación tenemos que identificar la regla que relaciona los datos conocidos con los desconocidos. En nuestro caso el lado de un cuadrado con su área. La regla sería área = lado x lado.

Por último aplicamos la regla, sustituimos los datos conocidos y hallamos lo desconocido: 5 x 5= 25 m.

Este tipo de problemas son los que nos encontramos más habitualmente en el aula, tienen como resultado un número y además comparten otras características como:

Nuestro alumnado frecuentemente está adiestrado para resolver este tipo de problemas, de hecho, si doy en el enunciado más datos de los necesarios para resolver un problema les generaré dudas. Incluso puede pasar que apliquen reglas que no corresponden al problema con tal de usar todos lo datos. A pesar de que estos planteamientos son los más comunes en el entorno escolar no lo son en nuestro día a día.

Los problemas de la vida real, en general, no son deterministas ni en la solución ( hay varias posibles) ni en el proceso de llegar a ellas.

Veamos dos problemas que podrían pasar en un cole:

Problema 1: “Cuando llueve, los pasillos del cole se mojan y el suelo resbala”

resbalon.jpg

Las soluciones para este problema pueden ser:

Estos son tres enfoques posibles y cada uno requeriría su nivel de desarrollo:


Problema 2: “Muchas veces no se oye bien en clase”

ruido.jpg

Al igual que en el caso anterior y cada enfoque requeriría su nivel de desarrollo e investigación:

En ambos casos hay muchas respuestas y la mayoría no son conocidas a priori.

Son este tipo de problemas los que requerirán para su resolución más habilidades relacionadas con el pensamiento computacional. Su resolución, además, requiere de un nuevo lenguaje. La respuesta no va a ser un número. La respuesta tiene mucho que ver con el mismo proceso y su expresión nos debe permitir crear, simular, explorar, comprobar y experimentar.

En resumen, cuando hablamos de pensamiento computacional en el aula recuerda:

Para que las habilidades asociadas al pensamiento computacional se desarrollen debemos generar situaciones adecuadas de aprendizaje. Como todo en la vida, requieren de entrenamiento y práctica. Se adquieren de forma progresiva hasta alcanzar un grado en el que se convierten en operativas.  Del entrenamiento de estas destrezas nos encargaremos en el módulo 2. 

Actividades desenchufadas

Al final de este módulo vamos a: Ejercitar la resolución de problemas complejos a través del pensamiento computacional Analizar las diferentes destrezas que componen el pensamiento computacional Diseñar retos complejos para que nuestro alumnado active y desarrolle las destrezas necesarias Conocer actividades de aula para trabajar con el alumnado la resolución de problemas mediante el pensamiento computacional

Actividades desenchufadas

Cómo hacerlo en el aula

Introducción

El Pensamiento Computacional consiste en ser capaz de pensar de forma lógica, algorítmica, recursiva y abstracta

La teoría está clara, pero, ¿cómo podemos llevarlo a la práctica real en el aula?

Lo haremos mediante diversos recursos, algunos los podrás descargar directamente. Pero no sólo queremos darte peces, sino que aprendas a pescar, así que te enseñaremos cómo generar tus propios recursos

Nos hemos basado en las tarjetas de la bianual “Desafío Bebras”, adaptándolas y re-diseñándolas. 

Los retos incluidos en las tarjetas están centrados en aplicar y desarrollar habilidades de pensamiento computacional para resolver problemas y responder preguntas. Están diseñadas para ser utilizadas sin recursos adicionales y pueden ser trabajadas por estudiantes individuales o en pequeños grupos

Cada tarjeta de retos incluye una sugerencia de respuesta al reto y se indica qué destreza de pensamiento computacional es la que más se usa para resolver el problema. No obstante, se utilizan múltiples habilidades de pensamiento computacional en todas las preguntas. La habilidad destacada es solo una solución, utilizada para generar discusión sobre las habilidades de pensamiento computacional.

Es muy, muy importante que tú también estés entrenado/a en estas destrezas, con lo que recomendamos que sigas los mismos pasos que el alumnado: primero resolviendo retos en grupo y posteriormente de forma individual.

En la mayoría de los casos, no hemos sido formados en estas destrezas, destinadas a la resolución de retos complejos, con lo que es muy importante que nos formemos en las mismas, que nos entrenemos.

Objetivo

El objetivo fundamental de estas actividades es que las alumnas y alumnos “activen” estas destrezas. Para ello es necesario que practiquen, se entrenen en el uso de las mismas para que cuando se enfrenten a problemas complejos, de la índole que sea, puedan resolverlos.

El desarrollo de estas destrezas no es exclusivo para la resolución de retos informáticos o de programación. Estas destrezas son necesarias para la resolución de problemas complejos en general.

Guía de uso

Como ya hemos mencionado en la introducción, estas tarjetas de retos se pueden usar de manera individual o en pequeños grupos. No obstante, creemos que es importante, ya sea con las alumnas y alumnos más jóvenes, o sea en las primeras sesiones, empezar trabajando en grupo.

El tamaño de los grupos recomendado es de dos personas para infantil y primera etapa de Primaria, y de tres personas para más mayores.

Forma de proceder recomendada:

Puesta en común:

Es importante tomar notas de cómo ha resulto el reto cada grupo y qué tipo de destrezas están menos desarrolladas. Estas destrezas menos desarrolladas deberemos trabajarlas más.

Se recomienda realizar este tipo de retos con cierta frecuencia para conseguir que el alumnado asimile esta forma de trabajar y de afrontar los retos complejos. Como mencionábamos al principio, es importante el “entrenamiento”.

Destrezas, habilidades computacionales

En este apartado nos vamos a centrar en 6 destrezas principales. Algunos autores consideran más destrezas y pasos a dar en la resolución de un reto complejo. O incluso algunas de las destrezas que estamos considerando, las dividen en otras más simples.

Las 6 destrezas que considera “Bebras” son:

destrezas_bebras.jpg

Actividades desenchufadas

Ejemplos de actividades y propuestas para el aula

Tarjetas Bebras

Hemos adaptado, traducido y re-diseñado una serie de fichas de Bebras que puedes descargar. En cada nivel encontrarás una ficha para cada destreza. Las edades asociadas a cada nivel son orientativas. Te recomendamos que comiences siempre con los retos correspondientes a un nivel inferior a la edad de tu alumnado. Es importante que adquieran confianza, que se sientan capaces de resolver los retos y que aprendan a fijarse en los detalles.

Descargables por niveles y edades (orientativo):

Nivel 0: 3-4 años

Nivel 1: 5-6 años

Nivel 2: 7-8 años

Nivel 3: 9-10 años

Nivel 4: 11-12 años

Esta información está basada en Bebras Unplugged, de la “Australia’s National Science Agency”.

Diseña tu propia actividad

Como hemos visto, hay muchas actividades para trabajar las destrezas del pensamiento computacional. No obstante, siempre es interesante poder crear o adaptar alguna a lo que necesita tu aula.

Aquí puedes descargarte una actividad para practicar reconocimiento de patrones contextualizada:

Mi propia tarjeta (formato pdf)

Mi propia tarjeta (plantilla de Canva)

Hay multitud de herramientas que puedes utilizar para diseñar tus propias actividades. Nosotras hemos utilizado CANVA.

Con ella podrás diseñar cualquier actividad en un formato similar al de las tarjetas del punto anterior, o en cualquier otro formato.

Si no estás familiarizada/o con CANVA mira el siguiente video-tutorial donde encontrarás la información básica para trabajar con esta herramienta y un ejemplo de cómo crear tu propia actividad. 

Actividades desenchufadas

Actividades de conceptos de computación

Introducción

Esta información está basada en csunplugged.

“La Ciencia de la Computación no tiene que ver con las computadoras más que la Astronomía con los telescopios”. Edsger Dijkstra

Tal y como hemos visto, el pensamiento computacional trata sobre cómo poder enfrentarnos a un reto complejo. Es una manera de gestionar la información y una serie de habilidades humanas lo que ponemos en marcha a la hora de hacer funcionar un ordenador. No trata sobre cómo piensa un ordenador. El ordenador no piensa.

La ciencia de la computación es la ciencia del procesamiento de la información. El ordenador es una herramienta, como los telescopios lo son para la astronomía.

Ahora haremos una serie de actividades para llevar al aula, sin ordenador, para entender el procesamiento de la información y ver cómo funciona esta herramienta. 

Al llevar a cabo las actividades en el aula es fundamental dejar tiempo para que el alumnado sea capaz de generar alguna respuesta. Recordemos que estamos en la fase de instrucción.

Pautas recomendadas:

Información adicional a las actividades

Código binario

Imagina que quieres comunicarte con alguien, pero no puedes hablar ni escribir en letras y palabras como lo estamos haciendo ahora. En su lugar, puedes usar un lenguaje especial llamado código binario. Este lenguaje está compuesto únicamente por dos números: el 0 y el 1.

El código binario se basa en el sistema de numeración posicional, al igual que el sistema decimal que usamos normalmente, pero en lugar de tener 10 dígitos (0 al 9), el código binario solo tiene dos dígitos: 0 y 1. Estos dígitos se llaman "bits".

Cada número o carácter que queremos representar se traduce a una secuencia de ceros y unos. Por ejemplo, el número 5 en binario se representa como 101. Esto significa que tenemos un 1 en el lugar de las unidades, un 0 en el lugar de las decenas y un 1 en el lugar de las centenas.

codigo binario.jpgDe esta manera, usando combinaciones de ceros y unos, podemos representar cualquier número, que queramos en código binario.

El código binario es muy importante en informática porque los ordenadores entienden y procesan la información en forma de ceros y unos, la corriente eléctrica pasa o no pasa. Todos los programas y datos en un ordenador se almacenan y procesan utilizando el código binario.

Contenidos relacionados:

Matemáticas-números:

Matemáticas-álgebra:

Destrezas:

Edades:

A partir de 7 años

Materiales:

Cartulinas, rotuladores

Codificar texto

Hemos entendido cómo representar cualquier número, en esta ocasión aprenderemos cómo se almacenan y transmiten los textos.

Para esta tarea representaremos cada letra con un código binario y a partir de ahí podremos codificar un texto entero. Necesitamos un acuerdo previo, una equivalencia común de número y letra.

Como actividad para clase no usaremos la correspondencia estándar ( ASCII), sino una simplificada.

correspondencia_letras.jpg

Contenidos relacionados:

Matemáticas-números:

Matemáticas-álgebra:

Destrezas:

Edades:

A partir de 7 años

Materiales:

Codificar y comprimir imágenes

Además de números y letras, las imágenes son otra información importante que procesan los ordenadores. Aprenderemos cómo almacenar y transmitir imágenes de una manera eficiente.

ojo_1.jpg.   ojo_2.jpg.   ojo_3.jpg.   ojo_4.jpg 

Para el trabajo en el aula nos limitaremos a la codificación en blanco y negro ya que es fácilmente representable.

Las imágenes en blanco y negro están compuestas por una serie de puntos llamados píxeles. Cada píxel puede ser de dos colores: blanco o negro. La codificación en código binario se basa en representar cada píxel como un bit, que puede ser 0 o 1.

Imaginemos que tenemos una imagen en blanco y negro de 8 píxeles de ancho por 8 píxeles de alto. Esto significa que hay un total de 64 píxeles en la imagen. Para codificarla, necesitaríamos 64 bits (unos y ceros).

Por ejemplo, si tenemos un píxel blanco, lo representamos con el número 0 en binario, y si tenemos un píxel negro, lo representamos con el número 1 en binario.

Así, si tuviéramos una imagen en blanco y negro completamente blanca, la codificación binaria sería una secuencia de 64 ceros (00000000...0000).

Si tuviéramos una imagen en blanco y negro completamente negra, la codificación binaria sería una secuencia de 64 unos (11111111...1111).

Solo hace falta lápiz y papel para codificar una imagen.

El código resultante puede ser muy largo y repetitivo. Gracias a ello tenemos la oportunidad de introducir la compresión de imágenes, y de entender que significa.

Contenidos relacionados:

Matemáticas:

Tecnología:

Destrezas:

Edades:

A partir de 7 años

Materiales:

Control del error. Método de verificación

Cuando los datos se almacenan en un disco o se transmiten de un ordenador a otro, generalmente asumimos que los datos no cambian en el proceso. Pero, a veces, las cosas salen mal y los datos se modifican accidentalmente.

Imagina que estás enviando un mensaje muy importante a una amiga, pero durante el proceso de envío, algunos bits cambian.  Esto puede hacer que el mensaje llegue incorrecto o incompleto. Para evitar eso, se utiliza un método llamado control de error o verificación.

El control de error con código binario funciona agregando algunos bits extra al mensaje que se va a enviar. Estos bits extra se llaman bits de paridad. La paridad se refiere a si algo es par o impar.

En esta actividad te presentamos un ejemplo sencillo para llevar al aula de cómo funciona el control de error con código binario utilizando bits de paridad adecuada. Hay otros métodos más complejos y avanzados para detectar y corregir errores en la transmisión de datos, pero la idea principal es utilizar bits extra para verificar si los datos llegaron correctamente.

De esta manera, el control de error con código binario nos ayuda a asegurarnos de que los mensajes que enviamos lleguen sin errores y podamos confiar en la información recibida.

Contenidos relacionados:

Matemáticas-números:

Matemáticas-Algebra:

Matemáticas:

Tecnología:

Destrezas:

Edades:

Materiales:

Red de clasificación

A pesar de que los ordenadores son rápidos existe un límite, en cuanto a la rapidez, con la que pueden resolver problemas.

Una manera de acelerar el proceso consiste en utilizar diversos ordenadores para resolver diferentes partes de un problema.

En esta actividad vamos a utilizar una metodología llamada Redes de Ordenamiento, que realizan diversas comparaciones y ordenamientos al mismo tiempo con el objetivo de agilizar la tarea.

Imagina que tienes una caja llena de juguetes diferentes, y quieres ordenarlos por su tamaño. Una red de clasificación es como un sistema que te ayuda a hacerlo.

En una red de clasificación, tienes varios "nodos" o "cajas" que están conectados entre sí. Cada nodo realiza una tarea, por ejemplo, comparar el tamaño de dos juguetes y decidir cuál es más grande. Estos nodos trabajan juntos para ordenar los juguetes.

El proceso funciona de la siguiente manera: colocas los juguetes en la red y comienzan a pasar de un nodo a otro. Cada nodo compara el tamaño de los juguetes que recibe y los envía al nodo adecuado en función de su tamaño. Por ejemplo, si tienes un nodo que compara juguetes y decide cuál es más grande, enviará el juguete más grande al nodo correspondiente para los juguetes grandes y el juguete más pequeño al nodo para los juguetes pequeños.

A medida que los juguetes pasan de nodo en nodo, se van clasificando y ordenando según su tamaño. Al final del proceso, los juguetes habrán sido colocados en diferentes "cajas" según su tamaño, desde el más grande hasta el más pequeño.

Una red de clasificación se puede utilizar para ordenar diferentes cosas, no solo juguetes. Por ejemplo, se puede usar para ordenar números de menor a mayor o para clasificar objetos en categorías diferentes, como clasificar frutas según su color.

red-ordenamiento.jpg

Una red de clasificación puede ser mucho más compleja en la realidad, con muchos más nodos y funciones específicas. Pero la idea básica es que los nodos trabajan juntos para comparar y ordenar los elementos.

Contenidos relacionados:

Matemáticas-números:

Matemáticas-álgebra:

Destrezas:

Edades:

A partir de 10 años

Materiales:

Para saber mas: UC Computer Science Education:

Actividades desenchufadas

Juegos de mesa

Los juegos de mesa son siempre un buen recurso para practicar habilidades y destrezas como la lógica, la estrategia o la resolución de problemas. Muchas de estas destrezas están directamente relacionadas con el pensamiento computacional. Encontrarás en el mercado una amplia oferta de juegos que puedes llevar al aula.

En este apartado vamos a destacar dos de ellos creados para entender cómo funciona el pensamiento computacional sin necesidad de “estar conectado”.

Los dos han sido creados por el profesor en el departamento de Telecomunicaciones de la Facultad de Ingeniería de la Universidad de Deusto y miembro del Deusto Learning Lab, Pablo Garaizar.

Moon

juego-moon-caja.jpg.   juego-moon-colocacion.jpg

Fotos: Juego Moon. Tibot

JM-moon-E.jpg

“MOON es un juego para 1 a 4 jugadores donde controlamos la computadora del módulo lunar Eagle durante el primer alunizaje. Solo 3 minutos antes de alunizar, ¡la computadora de la nave falló! Sin embargo, un buen diseño desarrollado por los ingenieros de software del equipo liderado por Margaret Hamilton logró evitar un fallo fatal. En este juego deberemos emular esas inteligentes rutinas de software para ayudar a los astronautas a alunizar de forma segura.”
“Jugando a este juego aprenderás a contar en binario, realizar operaciones lógicas y matemáticas y reparar fallos técnicos que ocurrirán durante la misión.”

Este juego dispone de versión descargable imprimible, versión online y versión app.

Edad recomendada: a partir de 10 años

Arqueras de Nand

juego-arqueras-caja.jpg.   juego-arqueras-colocacion.jpg

Fotos: Juego Arqueras de Nand. Tibot

JM-Arqueras-E.jpg

“El Valle de Nand está siendo invadido por hordas salvajes de orcos. Mientras los guerreros locales pierden la batalla cuerpo a cuerpo, las arqueras de Nand aprovechan la altura de sus montañas para diezmar las tropas enemigas. En este juego, tendrás que decidir cómo proteger el valle gracias a la acción combinada de los guerreros y las arqueras de Nand antes de que los orcos lo destruyan todo.”

“ARQUERAS DE NAND es un juego con el que aprenderás los fundamentos básicos de las bases de datos (el Valle de Nand es una pequeña tabla de datos donde seleccionaremos parcialmente sus regiones para atacar a los orcos).”

Arqueras de Nand está diseñado para aprender fundamentos básicos de bases de datos.

Este juego dispone de versión descargable imprimible.

Robot Turtles

robot-turtles.jpeg

Foto: Robot Turtles de Aprendiendomatematicas

JM-ROBOT TURTLES-E .jpg

Es un juego diseñado para introducir a niños y niñas en los conceptos básicos de la programación. Tienes que utilizar tarjetas de movimiento para guiar a las tortugas robóticas hacia los objetivos en el tablero. A medida que avanzas en los niveles, se agregan más reglas y desafíos, fomentando el pensamiento lógico y algorítmico.

Bits & Bytes

10412-joguines-didactiques-BIT-AND-BYTES.jpeg

Foto: Bits & Bites de Artijoc

JM-BITS BYTES-E .jpg

Este juego fomenta el pensamiento estratégico, el razonamiento lógico y la resolución de problemas, al tiempo que promueve el trabajo en equipo y la colaboración. Al jugar debes tomar decisiones inteligentes y planificar cuidadosamente tus movimientos para lograr el objetivo común.

El  juego consiste en construir circuitos electrónicos utilizando tarjetas de componentes como puertas lógicas, cables y microchips. Quien juega se convierte en un/a ingeniero/a de software en busca de la combinación perfecta para completar los desafíos propuestos. Los desafíos van desde la creación de circuitos simples hasta los más complejos, lo que permite avanzar gradualmente e el juego y poner a prueba las habilidades de resolución de problemas. Además, el juego incluye tarjetas de desafío adicionales que permiten la creación de circuitos personalizados, agregando un elemento de creatividad y experimentación.

Rush Hour

rush-hour.jpeg

Foto: Rush Hour de Aprendiendomatematicas

JM-RUSH HOUR-E.jpg

En este juego, debes mover los coches en el tablero para despejar el camino y sacar el coche rojo del atasco. Te ayuda a desarrollar habilidades de planificación, resolución de problemas y pensamiento estratégico.

Set

set.jpeg

Foto: Set de Aprendiendomatematicas

JM-set-E .jpg

Como ya te comentamos en el módulo anterior debes observar patrones y relaciones entre las cartas para identificar los conjuntos. Te ayuda a desarrollar habilidades de reconocimiento de patrones y razonamiento lógico.

Blokus

blokus-clasico.jpeg

Foto: Blokus de Zacatrus

JM-BLOKUS-E.jpg

En este juego, cada persona tiene un conjunto de piezas de diferentes formas y colores. El objetivo es colocar tus piezas estratégicamente en el tablero, bloqueando a tus oponentes mientras intentas ocupar la mayor cantidad de espacio posible. Te ayuda a desarrollar habilidades de planificación, pensamiento estratégico y resolución de problemas.

Qwirkle

qwirkle.jpeg

Foto: Qwirkle de Zacatrus

JM-QWIEKLW.jpg

Es un juego en el que se deben crear líneas de fichas que comparten el mismo color o la misma forma. Debes encontrar combinaciones lógicas y tácticas para maximizar tus puntos. Te ayuda a desarrollar habilidades de reconocimiento de patrones, pensamiento abstracto y toma de decisiones.

Mastermind

master-mind-colores.jpeg

Foto: Mastermind de Aprendiendomatematicas

JM-MASTERMIND.jpg

Es un juego de deducción en el que uno de los/las  jugadores/as crea un código de colores oculto y otra persona debe adivinarlo en base a pistas limitadas. Te ayuda a desarrollar habilidades de razonamiento lógico, análisis de información y pensamiento analítico.

La Resistencia

la_resistencia.jpeg

Foto: La Resistencia de Zacatrus

JM-REsistance.jpg

Es un juego de roles ocultos en el que las  personas jugadoras deben descubrir quiénes son los espías dentro del grupo de resistencia. Se requiere una comunicación cuidadosa y un análisis de comportamientos para determinar quién está diciendo la verdad y quién está engañando. Te ayuda a desarrollar habilidades de razonamiento lógico, deducción y toma de decisiones basadas en la información disponible.

Code Master

codemaster.jpeg

Foto: Code Master de Zacatrus

JM-CODE MASTER-E.jpg

En este juego, debes programar al personaje principal para que supere diferentes desafíos. Debes usar cartas de programación para planificar el camino correcto y superar obstáculos. Te ayuda a desarrollar habilidades de planificación, secuenciación y resolución de problemas.

Ingenious

INGENIUS2.gif

Foto: Ingenious de masqueoca

JM-ingenius.jpg

En este juego, debes colocar fichas de diferentes formas y colores en un tablero hexagonal. El objetivo es acumular la mayor cantidad de puntos posibles al completar líneas y grupos de fichas del mismo color. Te ayuda a desarrollar habilidades de planificación, reconocimiento de patrones y pensamiento estratégico.

Código Secreto

CODENAMES.jpeg

Foto: Código secreto de Zacatrus

JM-codenames-E.jpg

Es un juego de palabras en el que los jugadores deben comunicarse de forma estratégica para descubrir las palabras clave de su equipo. Una persona dará pistas relacionadas con varias palabras y las demás deberán adivinar cuáles son las palabras correctas. Te ayuda a desarrollar habilidades de pensamiento lógico, comunicación y asociación de ideas.

Créditos

Curso creado en Junio 2023 por:

Elena López De Arroyabe (Responsable del departamento de formación y desarrollo de productos de robótica educativa en TIBOT)

María Gutiérrez-Segú Berdullas (Formadora en robótica educativa para profesorado en TIBOT)

www.tibot.es

@tibotroboticaeducativa

LOGO-TIBOT_72_RGB.jpg

Cualquier observación o detección de error en soporte.catedu.es

Los contenidos se distribuyen bajo licencia Creative Commons tipo BY-NC-SA excepto en los párrafos que se indique lo contrario.

image-1648462225402.gif

image-1648462299882.png

image-1648462361893.png

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png