-
Introducción
El pensamiento computacional es una metodología para resolver problemas descomponiéndolos en partes manejables y abstractas. A través de etapas como la descomposición, abstracción, reconocimiento de patrones y diseño de algoritmos, permite crear soluciones organizadas y efectivas. Estas habilidades son esenciales en programación y ayudan a aplicar soluciones en diversas áreas mediante el análisis y simplificación de problemas
-
¿Qué es el Pensamiento Computacional?
Consiste en resolver problemas cotidianos utilizando los conceptos fundamentales de la programación, cuyas soluciones pueden representarse mediante pasos o instrucciones.
Figura 1: Pensamiento computacional
Fuente: Del Angel (2023)Figura 1: Pensamiento computacional
Fuente: Del Angel (2023)Etapas del pensamiento computacional
A continuación, las etapas:
- Descomposición: permite dividir un problema en subproblemas más pequeños y manejables, cuyas soluciones combinadas contribuirán a la solución final del problema original.
- Abstracción: permite centrarse en las características más importantes del problema, captando su esencia. Esto se logra al invisibilizar las características no fundamentales y destacar, a su vez, los rasgos más relevantes, desarrollando así una representación simplificada del problema.
- Reconocimiento de patrones: permite buscar similitudes entre los distintos subproblemas dentro de una misma situación, facilitando la búsqueda de soluciones.
- Diseño de algoritmos: permite la creación de un programa ejecutable que resuelva el problema. Este programa debe ser evaluado en cuanto a su efectividad y ausencia de errores.
Figura 2: Fases pensamiento computacional
Fuente: Batistelli (2022)Figura 2: Fases pensamiento computacional
Fuente: Batistelli (2022)Descomposición
Es el proceso de dividir un problema en partes más pequeñas o sencillas. Descomponer un problema facilita su resolución al reducir su complejidad. En esencia, toda descomposición implica:
- Identificar las partes de algo.
- Dividir algo en partes más pequeñas.
Ejemplo:
Preparar la fiesta de graduación de los estudiantes de la PUCE.
Dividimos el evento en tareas más pequeñas:
- Armado del programa de actividades.
- Difusión del evento.
- Preparación.
- Ensayo de actividades artísticas.
- Preparación del servicio de aperitivos y bebidas.
- Preparación del sitio logístico.
Figura 3: Descomposición
Fuente: Uscudum (s. f.)Figura 3: Descomposición
Fuente: Uscudum (s. f.)Abstracción
Un proceso de abstracción permite definir la esencia de algo. Se basa en identificar lo que es importante sin preocuparse por los detalles. Como resultado de la abstracción, podemos determinar los aspectos más relevantes de un problema y elaborar una representación simplificada del mismo. Se utiliza para mostrar, mediante ejemplos simples, el estudio y la comprensión de sistemas complejos.
Ejemplos:
- En música, los pentagramas son soportes de escritura de piezas musicales y pueden entenderse como abstracciones que representan sonidos en el tiempo.
- En una agenda, se utiliza la abstracción para representar una semana en términos de días y horas, lo que la convierte en un objeto útil para organizar el tiempo personal.
Figura 4: Pentagrama (Licencia Creative Commons) Figura 4: Pentagrama (Licencia Creative Commons)
-
2.3 Reconocimiento de patrones
En el reconocimiento de patrones, el objetivo es encontrar similitudes entre los distintos subproblemas dentro de una misma situación. De esta manera, se utiliza el reconocimiento de problemas similares que han sido resueltos con anterioridad y se aplica directamente (generalización). Cuantos más patrones se reconozcan, más fácil y rápido será el desarrollo de un proyecto. La generalización es una tarea relacionada con la identificación de patrones, semejanzas y conexiones, que permite explotar las características encontradas.
Figura 5: Patrones (Licencia Creative Commons) Figura 5: Patrones (Licencia Creative Commons)
Funcionamiento del reconocimiento de patrones
Con el reconocimiento de patrones se busca crear reglas y resolver problemas más generales. A continuación, te indicamos los pasos a seguir:
- Recopilar datos.
- Organizar los datos.
- Analizar los datos para detectar patrones y tendencias.
- Usar los patrones identificados.
El reconocimiento de patrones no solo se utiliza en áreas de la computación; también puede aplicarse en matemáticas, medicina y otras disciplinas.
Figura 6:Reconocimiento de patrones (Licencia Creative Commons) Figura 6:Reconocimiento de patrones (Licencia Creative Commons)
Ejemplo de reconocimiento de patrones
Una persona está a cargo de un campo con animales, y hay comida suficiente y especial para cada uno. Las instrucciones para que un operario alimente a los animales son las siguientes:
- Para alimentar al perro, poner la comida del perro en el plato del perro.
- Para alimentar al pollo, poner la comida del pollo en el plato del pollo.
- Para alimentar al conejo, poner la comida del conejo en el plato del conejo.
¿Qué patrón se puede visualizar? (un proceso de generalización): Para alimentar al [animal]
, poner la comida del [animal] en el plato del [animal] (Bordignon & Adrián, 2020). Diseño de algoritmos
Su objetivo es crear un conjunto de instrucciones lógicas y precisas que nos permitan resolver el problema de manera eficiente y efectiva. Los pasos de esta etapa son los siguientes:
- Definir el problema específico y los resultados deseados.
- Identificar los datos necesarios para resolver el problema.
- Determinar el orden de los pasos necesarios para llegar al resultado deseado.
- Diseñar el algoritmo paso a paso.
A continuación, veremos algunos ejemplos de algoritmos:
Figura 7: Diseño de algoritmo Figura 7: Diseño de algoritmo
Diseño de algoritmo – basado en texto
Problema:
Preparar una sopa instantánea en el microondas.
Planteamiento de la solución:
- Iniciar algoritmo.
- Destapar el envase de sopa.
- Agregar una taza de agua al envase de sopa.
- Introducir el envase en el horno microondas.
- Programar el horno microondas por 3 minutos.
- Fin del algoritmo.
Figura 8: Sopa instantánea (Licencia Creative Commons) Figura 8: Sopa instantánea (Licencia Creative Commons)
Diseño de algoritmo – usando un diagrama de flujo
Problema:
Encender una lámpara de velador.
La imagen muestra un diagrama con el algoritmo de solución para encender una lámpara.
- Identificamos cuál es el problema: la lámpara no funciona.
- Realizamos una comprobación: ¿Está enchufada?
- Si lo está, continuamos a la siguiente comprobación.
- Si no lo está, hay que enchufarla.
- Otra comprobación: ¿El foco está quemado?
- Si está quemado, reemplazar el foco por uno nuevo.
- Si no está quemado, hay que comprar una nueva lámpara.
Estos diagramas se conocen como "diagramas de flujo" y se explicarán más adelante en el apartado de Pseudocódigo y flujogramas.
Figura 9: Flujograma (Licencia Creative Commons) Figura 9: Flujograma (Licencia Creative Commons)
-
Ejemplo práctico: Hacer caminar a un robot
Una vez que hemos aprendido los conceptos principales sobre las fases del pensamiento computacional, vamos a ver un ejemplo práctico.
Problema: Se requiere que un robot camine siguiendo un camino.
Descomponer
¡Manos a la obra! Usando las cuatro fases del pensamiento computacional, comenzamos por descomponer./
La construcción del robot se dividirá en lo siguiente:
- Identificar los materiales necesarios para construir el robot.
- Diseñar y planificar el modelo del robot.
- Armar el cuerpo del robot y sus piezas individuales, como ruedas, motores, sensores, etc.
- Probar el robot para asegurarse de que todo funcione correctamente.
La programación del robot se dividirá así:
- Instalación o verificación de sensores en la parte inferior para que el robot sea capaz de seguir la línea negra.
- Programación del robot mediante la escritura de código que le permita leer la información de los sensores y determinar la dirección en la que debe moverse para seguir la línea negra.
Figura 10: Legos Motor y piezas (Licencia Creative Commons) Figura 10: Legos Motor y piezas (Licencia Creative Commons)
Abstracción
Una vez que hemos dividido el problema en tareas más pequeñas, pasamos a la abstracción. En esta etapa, nos enfocamos en lo más importante: identificar qué tipo de sensores necesita el robot para detectar la línea negra y cuál será la programación para mover el robot según los datos que envíen los sensores. Los detalles del robot, como el tamaño, la forma o la velocidad a la que se moverá, se ignoran por el momento.
Figura 11: Sensores de un robot
Fuente: TecnoSalva (2020)Figura 11: Sensores de un robot
Fuente: TecnoSalva (2020)Reconocimiento de patrones
Continuamos con esta fase del reconocimiento de patrones: ¡los detalles cuentan! Supongamos que el robot está construido y programado, pero no sigue la línea negra. Para resolver este problema, necesitamos recopilar datos como la forma y el color de la línea negra, la dirección en la que se dibuja la línea, la luz ambiental y otros factores que puedan influir en el reconocimiento por parte de los sensores.
Se organizan los datos y se procede a buscar patrones entre el comportamiento del robot y los datos recogidos. Por ejemplo, podemos entender que el robot no detecta la línea negra cuando hay poca iluminación. Una vez que se ha identificado el patrón, podemos ajustar la luz para lograr que el robot se mueva.
Figura 11: Reconocimiento de patrones
Fuente: Jiménez (s. f.)Diseño del algoritmo
Finalmente, llegamos a la cuarta fase, donde se crea el algoritmo y se programa. El algoritmo debería contemplar:
- Iniciar los sensores y asegurarse de que estén funcionando correctamente.
- Detectar la línea negra utilizando los sensores.
- Ajustar la dirección del robot en función de la posición detectada de la línea negra.
- Mover el robot en la dirección adecuada y ajustar la velocidad según sea necesario.
- Repetir el proceso hasta que el robot llegue al final de la línea negra.
Figura 12: Robot seguidor de líneas
Fuente: TecnoSalva (2020)Figura 12: Robot seguidor de líneas
Fuente: TecnoSalva (2020)Actitudes del pensador computacional
Las siguientes son las actitudes que hacen a una persona resolutiva en el campo del pensamiento computacional:
- Ser persistente: Es tener la voluntad de continuar sin detenerse en la consecución de una tarea. La persistencia va de la mano de la tolerancia, seguir intentando a pesar de los eventuales fracasos y aprender de cada uno de ellos.
- Dar valor agregado a las cosas: Involucra probar nuevas ideas y técnicas de solución para encontrar formas originales que enriquezcan el trabajo, sin conformarse con el mínimo esfuerzo.
- Evaluar el trabajo realizado: Siempre se puede mejorar. Evalúa tu trabajo para identificar los puntos débiles y busca nuevas y mejores soluciones.
Aprende más
Mira el video de actitudes de un pensador computacional aquí ¡Accede aquí!
Profundiza más
Este recurso te ayudará a visualizar cómo se aplica Evaluación de la solución ¡Accede aquí!
Profundiza más
Este recurso te probara mediante una autoevaluación tus conocimientos sobre Autoevaluación - Sincronización - Paralelismo. ¡Accede aquí!
-
-
-
Descomposición de problemas