Skip to main content

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á 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.

Descomposición: Divide y vencerás

dividir y venceras.jpg

¿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: 

  • Es mucho más difícil de resolver. Tratar con muchas variables diferentes a la vez es mucho más difícil que dividir un problema en varios problemas más pequeños y resolver cada uno, de uno en uno. Dividir el problema en partes más pequeñas significa que cada problema más pequeño se puede examinar con más detalle.
  • Es mucho más difícil de entender.   Tratar de entender cómo funciona un sistema complejo es más fácil fijándose en cada uno de los subsistemas. Por ejemplo, entender cómo funciona una bicicleta es más sencillo si toda la bicicleta se separa en partes más pequeñas y se examina cada parte para ver cómo funciona con más detalle.

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:

  • Qué cepillo usar
  • Cuánto tiempo estar cepillándome los dientes
  • Cuanta hacer presión con el cepillo
  • Qué pasta usar

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:

  • ¿Qué crimen ha sido cometido?
  • ¿Cuándo fue cometido el crimen?
  • ¿Dónde fue cometido el crimen?
  • ¿Qué evidencia hay?
  • ¿Hay algún testigo?
  • ¿Han ocurrido crímenes similares?

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:

  • ¿Qué necesita para cubrir tu aplicación?
  • ¿Qué aspecto tendrá tu app?
  • ¿Quién es el objetivo público de tu app?
  • ¿Qué tipo de gráficos usarás?
  • ¿Qué tipo de audio usarás?
  • ¿Qué tipo de software usarás para crear la app?
  • ¿Cómo navegará el usuario por la aplicación?
  • ¿Cómo probarás la aplicación?
  • ¿Dónde se venderá la aplicación?

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

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:

  • Un gato puede tener ojos verdes, cola larga y pelaje negro.
  • Otro gato puede tener ojos amarillos, cola corta y pelaje rayado.

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.jpgdibujar_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:

  • Qué tipo de pastel queremos hornear
  • Qué ingredientes necesitamos y cuánto de cada uno
  • Para cuántas personas queremos hacer el pastel
  • Cuánto tiempo tenemos que hornear el pastel
  • Cuándo necesitamos agregar cada ingrediente
  • Qué equipo necesitamos

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:

  • Cada pastel necesitará una cantidad precisa de ingredientes específicos.
  • Los ingredientes se agregarán en un momento concreto.
  • Cada pastel se horneará durante un período de tiempo concreto.

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:

  • Identificar el ingredientes (nombrarlo)
  • Una medida específica

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.

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

patrones en el aula.jpg

Secuencias con plastilina.

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 pro colores…. podéis jugar a encontrar los de vuestra escuela

Juegos de mesa tipo el SET.  Este es juego de mesa, 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 pude 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.

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:

  • Un pastel necesita ingredientes.
  • Cada ingrediente necesita una cantidad específica.
  • Un pastel necesita un tiempo de horneado.

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.