El mundo donde vivimos se ha convertido en un mundo digital, lleno de tecnología e impulsado por la informática. El software y la tecnología han transformado todas las materias y áreas de trabajo, desde la ciencia y la medicina, hasta la historia del arte y la psicología. La tecnología digital es omnipresente. Para ser ciudadanos informados y empoderados, la próxima generación de estudiantes debe comprender este mundo digital en el que viven.
Esta es la razón por la que se ha llamado al pensamiento computacional el "conjunto de habilidades del siglo XXI" y es importante que todos lo aprendan. Es fundamental para comprender cómo funciona el mundo digital, para aprovechar el poder de los ordenadores para resolver problemas difíciles y hacer que sucedan cosas geniales. También nos permite pensar críticamente no solo sobre los beneficios de ciertas tecnologías, sino también sobre el daño potencial, las implicaciones éticas o las consecuencias no deseadas de estas.
Pero, ¿qué es exactamente el pensamiento computacional? Echemos un vistazo a una definición técnica...
"El pensamiento computacional lo conforman los procesos de pensamiento involucrados en la formulación de problemas y sus soluciones para que las soluciones se representen de una forma que pueda ser llevada a cabo de manera eficaz por un agente de procesamiento de información."
Vaya trabalenguas, ¿verdad? Pero, como nos gusta decir en CS Unplugged, ¡son solo palabras complicadas para ideas sencillas! "Agente de procesamiento de información" significa cualquier cosa que siga un conjunto de instrucciones para completar una tarea (a esto lo llamamos "computación"). La mayoría de las ocasiones, este "agente" es un ordenador u otro tipo de dispositivo digital - ¡pero también podría ser un humano! Nos referiremos a él como un ordenador para hacer las cosas un poco más simples. Para representar soluciones de manera que un ordenador pueda llevarlas a cabo, debemos representarlas como un proceso paso a paso - un algoritmo. Para crear estas soluciones algorítmicas, usamos algunas habilidades especiales de resolución de problemas. ¡Estas habilidades son las que forman el pensamiento computacional! Y son habilidades que se pueden transferir a cualquier campo.
El pensamiento computacional se puede describir como "pensar como un informático", pero hoy en día es una habilidad importante que todo el mundo debería aprender, ¡aunque no quieran ser informáticos! Es interesante, e importante, señalar que el pensamiento computacional y la Informática no tratan solo de ordenadores, tienen más que ver con las personas. Podrías pensar que escribimos programas para ordenadores, pero realmente los escribimos para las personas - para ayudarlas a comunicarse, a encontrar información y a resolver problemas.
Por ejemplo, puedes usar una aplicación en un smartphone para ver cómo llegar a la casa de un amigo; la aplicación es un ejemplo de un programa de ordenador y el smartphone es el "agente de procesamiento de información" que ejecuta el programa para nosotros. Quienes diseñaron el algoritmo para encontrar la mejor ruta y todos los detalles como la interfaz y cómo almacenar el mapa, aplicaron el pensamiento computacional para diseñar el sistema. Pero no lo diseñaron por el bien del smartphone; lo diseñaron para ayudar a la persona que lo usa.
Pensamiento computacional en CS Unplugged
A lo largo de las lecciones y las unidades en CS Unplugged hay muchos enlaces al pensamiento computacional. La enseñanza del pensamiento computacional a través de las actividades de CS Unplugged le enseña a los alumnos cómo:
describir un problema,
identificar los detalles importantes necesarios para resolver este problema,
descomponer el problema en pequeños y lógicos pasos,
utilizar estos pasos para crear un proceso (algoritmo) que resuelva el problema,
y luego evaluar este proceso.
Estas habilidades son transferibles a cualquier otra área curricular, pero son particularmente relevantes para desarrollar sistemas digitales y para resolver problemas utilizando la capacidad de los ordenadores.
Estos conceptos del pensamiento computacional están todos conectados entre sí y se apoyan mutuamente, pero es importante tener en cuenta que no necesariamente todos los aspectos del pensamiento computacional ocurrirán en cada unidad o lección. En cada unidad y lección, hemos resaltado las conexiones importantes para que puedas observar a tus alumnos en acción.
Hay una serie de definiciones de pensamiento computacional, pero la mayoría tiene un conjunto de 5 o 6 habilidades de resolución de problemas que representan el pensamiento computacional. Para el proyecto Unplugged, hemos identificado las siguientes seis habilidades de PC que a menudo se mencionan en la bibliografía; se describen a continuación y al final de cada lección de Unplugged, hemos identificado las formas en que se manifestaron estas habilidades en la lección, para ayudarte a ver la conexión del PC con las lecciones.
Habilidades del pensamiento computacional
Pensamiento algorítmico
Los algoritmos están en el corazón del pensamiento computacional y la informática, porque en informática las soluciones a los problemas no son simplemente respuestas (p. ej. "42" o un hecho), sino que son algoritmos. Un algoritmo es un proceso que paso por paso resuelve un problema o completa una tarea. Si sigues los pasos del algoritmo correctamente, llegarás a una solución correcta, incluso para diferentes entradas. Por ejemplo, podemos usar un algoritmo para encontrar la ruta más corta entre dos ubicaciones en un mapa; el mismo algoritmo se puede usar para cualquier par de puntos de inicio y llegada, por lo que la solución depende de la entrada del algoritmo. Si conocemos el algoritmo para resolver un problema, entonces podemos resolver ese problema fácilmente, cuando queramos, ¡sin tener que pensar! Solo debemos seguir los pasos. Los ordenadores no pueden pensar por sí mismos, por lo que necesitan algoritmos para hacer las cosas.
El pensamiento algorítmico es el proceso de creación de algoritmos. Cuando creamos un algoritmo para resolver un problema, lo llamamos una solución algorítmica.
Los algoritmos computacionales (del tipo que se puede ejecutar en dispositivos digitales) tienen relativamente pocos ingredientes porque los dispositivos digitales solo tienen unos pocos tipos de instrucciones que pueden seguir; las principales cosas que pueden hacer son recibir entrada, proporcionar salida, almacenar valores, seguir instrucciones en una secuencia, elegir entre opciones y repetir instrucciones en un bucle. A pesar de lo limitada que es esta gama de instrucciones, hemos descrito todo lo que los dispositivos digitales pueden computar y esta es la razón por la que los algoritmos están restringidos a estos elementos.
Abstracción
La abstracción consiste en simplificar las cosas para ayudarnos a gestionar la complejidad. Requiere identificar cuáles son los aspectos más importantes de un problema y ocultar los otros detalles específicos en los que no necesitamos centrarnos. Los aspectos importantes se pueden usar para crear un modelo o una representación simplificada de la cosa original con la que estábamos tratando. Entonces podemos trabajar con este modelo para resolver el problema, en lugar de tener que lidiar con todos los detalles esenciales a la vez. Los informáticos a menudo trabajan con múltiples niveles de abstracción.
Usamos la abstracción a menudo en nuestra vida cotidiana, por ejemplo, cuando usamos mapas. Los mapas nos muestran una versión simplificada del mundo al omitir detalles innecesarios, como dónde se encuentra cada árbol en un parque y solo conservan la información más relevante que el lector del mapa necesitará, como carreteras y nombres de calles.
Los dispositivos digitales usan la abstracción todo el tiempo; intentan ocultar tanta información innecesaria como sea posible. Por ejemplo, supongamos que hiciste una bonita foto panorámica en tu última acampada y ahora deseas editarla en el portátil y ajustar los colores. Normalmente podríamos hacer esto abriendo un programa de edición de imágenes, ajustando algunos controles deslizantes de color o tal vez eligiendo un filtro. Cuando haces esto suceden muchas operaciones complicadas que el ordenador te oculta.
La foto que hiciste se almacena en el ordenador como una gran lista de píxeles, cada uno de un color diferente y cada color se representa mediante un conjunto de números y cada uno de estos números se almacena como dígitos binarios. Eso es mucha información. ¡Imagínate si al ajustar los colores tuvieras que repasar y mirar todos los valores del color de cada píxel y cambiarlos todos! Eso es lo que el ordenador hace por ti, pero como tú no necesitas saber todo esto para lograr tu objetivo, el ordenador oculta esta información.
Descomposición
La descomposición consiste en descomponer los problemas en partes más pequeñas y manejables, para luego enfocarse en resolver cada uno de estos problemas más pequeños. Podemos descomponer un problema complejo hasta que las partes más pequeñas sean tan simples que sean fáciles de resolver. Las soluciones para cada uno de estos problemas más pequeños y simples se convierten en una solución al gran problema con el que comenzamos. ¡La descomposición ayuda a que los problemas grandes sean mucho menos intimidantes!
La descomposición es una habilidad importante para crear algoritmos y procesos que se puedan implementar en un dispositivo informático, porque los ordenadores necesitan instrucciones muy específicas. Necesitan que les digan cada uno de los pequeños pasos que deben seguir para hacer las cosas.
Por ejemplo, la tarea general de hacer una tarta se puede descomponer en varias tareas más pequeñas, cada una de las cuales se puede realizar fácilmente.
Hacer tarta
Hornear tarta
Poner los ingredientes en un cuenco (mantequilla, azúcar, huevo, harina)
Mezclar
Verter en el molde
Meter al horno durante 30 min.
Sacarla del molde
Hacer el glaseado
Poner sobre la tarta
Generalización y patrones
La generalización también se conoce como "reconocimiento y generalización de patrones". La generalización consiste en tomar una solución (o parte de una solución) a un problema y generalizarla para que se pueda aplicar a otros problemas y tareas similares. Dado que las soluciones en informática son algoritmos, esto significa que debemos tomar un algoritmo y hacerlo lo suficientemente general de manera que se pueda usar para una variedad de problemas. Este proceso implica la abstracción, ya que para hacer algo más general, tenemos que eliminar detalles innecesarios que están relacionados con un problema o una situación específica, pero no son importantes para el funcionamiento del algoritmo.
La identificación de patrones es una parte importante de este proceso. Cuando pensamos en problemas, podemos detectar similitudes entre ellos y ver que se pueden resolver de manera similar. Esto se llama concordancia de patrones y es algo que hacemos de forma natural todo el tiempo en nuestra vida diaria.
Los algoritmos generalizados se pueden reutilizar para un grupo completo de problemas similares, lo que significa que podemos encontrar soluciones de manera rápida y eficaz.
Evaluación
La evaluación consiste en identificar las posibles soluciones a un problema y juzgar cuál nos conviene usar, si funcionarán en algunas situaciones pero no en otras y cómo se pueden mejorar. Al juzgar nuestras soluciones, debemos pensar en una variedad de factores. Por ejemplo, cuánto tiempo tardarán estos procesos (algoritmos) en resolver el problema y si lo resolverá de forma fiable o si hay ciertas situaciones en las que funcionará de una manera muy diferente. La evaluación es algo que practicamos constantemente en nuestra vida cotidiana.
Existen diferentes maneras de evaluar nuestras soluciones algorítmicas. Podemos probar su velocidad implementándolas en un ordenador; o podemos analizarlas contando o calculando cuántos pasos es probable que necesiten. Podemos probar que nuestras soluciones algorítmicas funcionan correctamente proporcionándoles muchas entradas diferentes y verificando que funcionan como esperamos. Cuando hacemos esto, tenemos que pensar en las diferentes entradas que probamos, porque no queremos verificar todas las entradas posibles (¡a menudo hay un número infinito de posibles entradas!), pero aún necesitamos saber si nuestras soluciones algorítmicas funcionarán para todas ellas. La realización de pruebas es algo que los informáticos y programadores hacen todo el tiempo. Pero como normalmente no podemos probar todas las entradas posibles, también tratamos de evaluar un sistema utilizando el razonamiento lógico.
Lógica
Al tratar de resolver problemas, debemos pensar de forma lógica. El razonamiento lógico consiste en tratar de darle sentido a las cosas observando, recopilando datos, pensando en los hechos conocidos y luego resolviendo las cosas en función de lo que ya se sabe. Nos ayuda a usar nuestro conocimiento existente para establecer reglas y verificar hechos.
Por ejemplo, supongamos que estás desarrollando un programa que calcula la ruta más corta a una ubicación desde tu casa. En el siguiente mapa, la biblioteca se encuentra a 2 minutos si vas hacia el norte desde tu casa, pero si vas hacia el sur, el siguiente cruce se encuentra a 3 minutos. Quizás te preguntes si hay una ruta mejor hacia la biblioteca si comienzas dirigiéndote hacia el sur, pero lógicamente no puede existir porque ya habrías caminado durante 3 minutos para llegar al cruce.
A un nivel más profundo, los ordenadores están construidos completamente sobre la lógica. Usan los valores "Verdadero" y "Falso" y usan una cosa llamada "expresiones booleanas", como "edad > 5", para tomar decisiones en los programas de ordenador.
Rastrear un error en un programa también requiere pensamiento lógico, para determinar dónde y por qué está fallando algo en el programa.
¡Lamentablemente esta definición no está disponible en español!