Todo lo relacionado con el pensamiento computacional (la programación, la inteligencia artificial, las computadoras) ha estado muy presente en la mente de la sociedad, porque vivimos en un mundo en el que cada aspecto de la vida se ha visto influenciado por lo que la computación permite.
En varios lugares del mundo se ha pensado que se debe agregar el pensamiento computacional a la educación básica que todos reciben, bajo la promesa de que mejorará en general la capacidad de pensar y resolver problemas.
Hablemos de qué es el pensamiento computacional y cómo te puede ayudar a comprender mejor el mundo creado con la ayuda de las computadoras.
¿Qué es el pensamiento computacional?
No hay una definición clara, y todo el tiempo está cambiando lo que se entiende por este término, pero podemos dar una definición decente como la habilidad mental y las prácticas que nos permiten diseñar cálculos para que las computadoras realicen un trabajo.
Otra acepción es la capacidad de entender el mundo como un complejo de procesos de información.
Estas dos habilidades combinadas pueden ayudarte a resolver muchos problemas y a navegar mejor el mundo moderno.
Por ejemplo, para tener la capacidad de diseñar algoritmos para las computadoras modernas debes entender las bases del funcionamiento y eso necesariamente te llevará a entender sus limitaciones y fortalezas, lo cuál te llevará a evitar que te engañen fácilmente.
Tener conocimiento de las capacidades además nos hace conscientes de lo que una empresa o gobierno con los suficientes recursos puede lograr en los campo de manipulación y colección de datos, inteligencia artificial, vigilancia, seguridad e influencia sobre los pensamientos colectivos.
El pensamiento computacional ha avanzado en por lo menos seis áreas. Veamos lo que estas abarcan.
Métodos computacionales
Los matemáticos e ingenieros a lo largo de la historia han buscado desarrollar métodos para hacer más eficientes los cálculos y poder calcular más cosas automáticamente. Esto ha permitido que calculemos cosas que en cierto tiempo se creían imposibles.
Gran parte del trabajo que se ha realizado está dedicado a que los cálculos se puedan realizar sin entendimiento e intuición. Es por eso que se han ido desarrollando áreas de las matemáticas que tienen que ver directamente con esto:
- La lógica
- El álgebra booleana
- La teoría de autómatas.
Todo esto es con el objetivo de realizar cálculos libres de errores lo más rápidamente posible. Algunas de las tareas principales que los métodos de cómputo incluyen son:
- Descomposición de problemas en problemas más sencillos
- Distribución de la ejecución de los cálculos en diferentes tiempos y ejecutores
- Chequeo y corrección de errores
- Representación de información
Máquinas
La computación está casada con un medio que ejecute los cálculos. Estas son las computadoras, que han variado con el paso del tiempo.
La principal motivación de buscar máquinas automáticas que realizaran los cálculos es eliminar los problemas inherentes a los cálculos realizados por humanos: son lentos y propensos a errores.
Los medios en los que se ejecutan los cálculos han ido evolucionando hasta llegar a los microprocesadores que tenemos hoy que pueden realizar una infinidad de cálculos en poco tiempo.
Para diseñar y trabajar con estas máquinas, se tienen que entender muchos conceptos, que el pensamiento computacional trata:
- Representación de información digitalmente y señales eléctricas como códigos binarios
- Diseño de circuitos
- Temporización con reloj de los cálculos
- Control de flujo
- Loops
- Memoria digital
- Espacios de memoria
- Aislamiento de procesos
- Tolerancia a fallos
Todo esto está casado con el concepto de computadora digital que tenemos hoy (el modelo de von Neumann), pero existen otro tipo de computadoras que no ejecutan cálculos en la misma forma.
Dos ejemplos de esto son las redes neuronales y las computadoras cuánticas, que no necesitan una serie de “pasos” para resolver los cálculos y tienen un tipo de pensamiento computacional completamente diferente.
Es en este punto en donde la computación deja de ser un campo específicamente de las matemáticas y la lógica, ya que los cálculos y los procedimientos realizados están estrechamente ligados al medio de ejecución.
De este apartado lo último que tenemos que mencionar es que toda la revolución del mundo que vemos hoy causada por las computadoras está causada por la gran velocidad que las computadoras han alcanzado. Sin esto, que es difícil de comprender (ve la cita de abajo), no podríamos ver todo lo que las computadoras han causado hoy.
154,300,000,000 de operaciones por segundo en el procesador del iPhone 11 Pro.
Educación de ciencias de la computación
Difundir el conocimiento para crear procedimientos que las computadoras automáticas puedan ejecutar es una de las principales tareas y responsabilidades del pensamiento computacional.
Al ser una combinación de ingeniería, matemáticas y ciencia la computación nació como un campo nuevo de estudios que tomó tiempo en ser reconocido y abrazado como una ciencia más.
Las ciencias de la computación han sido entendidas de diferentes formas a lo largo del tiempo:
- Como los fenómenos que rodean a las computadoras
- Entendiendo la programación como un arte y una ciencia
- Computación == Automatización
- Entendimiento del universo como una computadora gigantezca
Estas etapas del entendimiento de las ciencias de la computación han modificado la forma en que el pensamiento computacional es entendido.
Ingeniería del Software
El software son los programas que las computadoras digitales modernas ejecutan para realizar los cálculos que les permiten realizar todas las tareas a las que estamos acostumbrados.
La construcción de software es una da las tareas más importantes que se relacionan con el pensamiento computacional. Lo más importante de esta área es la entrega confiable de software listo para entornos de la vida real (de producción), que tiene las siguientes características:
- Confiable (no falla constantemente)
- Usable (cumple con su función, a una velocidad adecuada)
- Seguro (no causa daños y no se puede robar información)
Hacer software con estas características es una tarea súmamente difícil por la complejidad que implica.
La ingeniería es “la aplicación de las matemáticas y la ciencia a los problemas de las personas”. Así, la ingeniería de software busca establecer técnicas y procedimientos para desarrollar software correcto.
Además la ingeniería del software ha buscado desarrollar herramientas que faciliten el desarrollo de software. Es un área muy compleja del pensamiento computacional que está constante evolución y el principal problema de la industria del software actual.
Diseño de Software
El buen diseño produce un objeto que funciona para las personas en un contexto de necesidades y valores, para producir resultados de calidad y una experiencia satisfactoria. - Terry Winograd
El software muchas veces está hecho para interactuar con personas. La tarea del diseñador de software es diseñar programas que resuelvan los problemas de los usuarios.
Esto tiene que ver con la forma de usarlo, las interfaces que presentará a los usuarios, las funciones, las actualizaciones, la protección de información, los medios de presentación y muchas más tareas relacionadas con crear software que deleite al usuario.
La principal diferencia con la ingeniería de software es que mientras la ingeniería está pensada desde el punto de vista del programador, el diseño está pensado desde el punto de vista del usuario.
Es decir, la ingeniería asegura que el programa funciona como el programador desea, el diseño asegura que el programa hace lo que el usuario necesita.
Ciencia computacional
La ciencia ha sido completamente revolucionada por lo que la computación electrónica automática permite, desde grandes cantidades de cálculos en poco tiempo hasta simulaciones de los procesos naturales.
Desde que la computación automática existe, ha sido una gran ayuda para llegar a lugares que no se había siquiera podido soñar. Incluso se han creado nuevas ciencias, que son la combinación de una ciencia tradicional con la computación como “Biología computacional”.
Pero la ciencia computacional requiere su propio tipo de pensamiento computacional, desde los métodos hasta el software creado. No se aplican las misma técnicas ni herramientas que para el software no usado en la ciencia. Es por eso que el uso de la computación en las ciencias he hecho avanzar a la computación.
Otro aspecto del pensamiento computacional en la ciencia es el uso del conocimiento de los procesos de información para interpretar el mundo natural como una conexión muchos modelos de información. Esto nos revela que la computación ha influido incluso en la manera en la que vemos el mundo.
Conclusión
El pensamiento computacional es mucho más complejo de lo que parece o de los que los medios han entendido (“hacer algoritmos”).
Este campo del pensamiento es tan grande que no alcanzaría una vida para cubrirlo en su totalidad, pero podemos tener una idea general de los campos que abarca y si nos gusta, especializarnos en uno de ellos.
Este artículo está basado en el libro Computational Thinking de Peter J. Denning y Matti Tedre.
Comentar