Que es el pensamiento algoritmico

Siempre quise hacer un documento, un memorándum o un articulo como este, sobre una de las cosas que para mi, están afectando la formación de profesionales, principalmente las carreras de ciencias, en especial, las relacionadas a la Computación, aunque no escapan los que estudien para hacerse profesionales en las carreras de matemáticas, física, telecomunicaciones, automáticas, y muchas otras mas, inclusive al ser humano común, lejos de todas estas definiciones, no puede escapar a lo antes descrito.

Si al final nos detenemos a pensar un poco, creo que el pensamiento algorítmico es algo que se relaciona con la vida en general, y las personas lo desarrollan en mayor o menor grado en dependencia de factores, físicos y psico-sociales.

Un algoritmo no es mas que una secuencia finita, ordenada y lógica de pasos a seguir para realizar una tarea determinada, y el pensamiento algorítmico no es mas que las aptitudes que tenga el individuo para llegar a esas deducciones lógicas y llegar a confeccionar dicho algoritmo.

Siempre me acuerdo que fui de la generación que estudio bajo las normas de la “vieja escuela”, al punto que en Secundaria Básica, en 9no grado, los alumnos tenían las posibilidades de escoger en la asignatura de  Computación si querían dar programación. Me acuerdo de aquellos televisores en blanco y negro con esos teclados inteligentes y esas grabadoras chillonas que tenían acopladas, y conocí el MSx Basic, creo que se escribe así…………………por dios ha pasado tanto tiempo………………………éramos tan jóvenes…………………

Fue la primera vez que me enfrentaba a la programación y tuve que comenzar a desarrollar mi pensamiento algorítmico para poder realizar un programa, pues la definición de programa de computadoras podemos decir que no es mas que la simulación matemática y luego la traducción a un lenguaje determinado de programación de un algoritmo.

Fíjense como una cosa implica a otra, y podemos desencadenar una secuencia de implicaciones transitivas que al final como en la biblia todos descendemos de Adán y Eva, podemos decir que un programa al final es la consecuencia de un pensamiento algorítmico.

Pero no solo es en programación, es en todas las esferas técnicas y de la vida, debemos tener definido un pensamiento algorítmico que nos ayude a pensar como hacer todas las tareas a la que nos enfrentamos.

Desarrollar este pensamiento, nos ayuda a optimizar los pasos, y tal vez tareas en la que definíamos una cierta cantidad de pasos en un tiempo determinado, podemos con dedicación, empeño y ejercicio, disminuir la cantidad de pasos y mejorar considerablemente el tiempo en que efectuamos las cosas y tenemos respuestas, o sea mejorar nuestro pensamiento algorítmico. Claro…….el pensamiento algorítmico esta aparejado a la Lógica, y sin esta no podemos definir nunca ni llegar a nuestros resultados finales.

Por ejemplo, vamos a aterrizar un poco…………………….. pondremos un problema sencillo para ilustrar que es el pensamiento algorítmico y su resultado final: el algoritmo, y que es realmente lo que les quiero decir, pues de seguir así, ni yo mismo se que quiero decirles…………………. (Es una broma)

El problema del Reo:

A un reo se le promete la libertad, si lleva 4 litros de agua contando solo con dos envases, uno de 3 litros, uno de 5 litros y un pozo de agua.

Los envases pueden ser irregulares, o sea que no podemos definir a ciencia cierta medidas como, un tercio del agua, la mitad de agua del envase, y cosas por el estilo, lo que si sabemos es que los envases llenos poseen los volúmenes antes descritos y poseemos en el pozo una cantidad de agua suficiente para resolver este problema. Para resolver este problema definimos el siguiente algoritmo: (Este problema y sus dos últimos pasos pueden apreciarse en la película “Duro de matar 3”)
 * 1) Llenamos el pomo de tres litros
 * 2) Lo vertemos completo en el de 5 litros. (5-3=2 litros que es lo que le falta al de 5 litros para llenarse).
 * 3) Llenamos el pomo de tres litros nuevamente.
 * 4) Vertemos el contenido del pomo de tres litros en el de 5 hasta completarlo (3-2 litros que le faltan al de 5 para llenarse=1 litro que nos queda en el pomo de tres litros).
 * 5) Vaciamos por completo el pomo de 5 litros.
 * 6) Vertemos el litro que nos quedo en el pomo de tres litros en el de 5 litros que ahora esta vacio (ahora el pomo de 5 litros posee un litro de agua en su interior).
 * 7) Llenamos el pomo de tres litros nuevamente.
 * 8) Vertemos el pomo de tres litros en el de 5 completamente que ya tenia un litro de agua ya y obtenemos los 4 litros de agua que necesitamos.

Vemos que nos ha llevado 8 pasos el realizarlo y esta es la solución que la media del ser humano ve y que ejecuta normalmente, pero no es la única solución, el desarrollo del pensamiento algorítmico nos puede llevar a mejorar la cantidad de pasos si pensamos de forma inversa: Vemos que con esta solución mejoramos en rapidez, pues nos hemos ahorrado dos pasos.
 * 1) Llenamos el pomo de cinco litros
 * 2) Vertemos el contenido de este sobre el pomo de tres litros hasta llenarlo (5-3 = 2 litros de agua que ahora tiene el pomo de 5 litros).
 * 3) Vaciamos el pomo de tres litros
 * 4) Vertemos los dos litros que le quedan al pomo de 5 litros en el de tres litros (3-2 =1 litro que le queda por ocupar al pomo de tres litros, el pomo de 5 litros esta vacio ahora)
 * 5) Llenamos nuevamente el pomo de 5 litros.
 * 6) Vertemos el contenido en el pomo de 3 litros que ahora solo le falta un litro por llenar (5-1 =4 litros que le quedan de agua al pomo de 5 litros). Obteniendo nuestra respuesta.

El pensamiento algorítmico nos llevo a pensar en estos pasos y resolver el problema, vemos en este ejemplo que el resultado final esta en escoger desde el primer momento la estrategia a seguir, vemos que si escogemos de menor a mayor los pomos como pensamos siempre en ese primer momento, damos mas pasos que si comenzamos por el mayor pomo, y en la vida es así, hay veces que los resultados están influenciados desde el mismo comienzo de un problema determinado en las tomas de decisiones del arranque.

Mi decisión de dar programación en ese 9no grado, me conllevo a que luego en la Vocacional en Ciencias exactas, pudiera comprender mejor y a mayor velocidad e ir moldeando mi pensamiento algorítmico en las obligadas asignaturas de programación que tuve que recibir, y luego en una etapa decisiva y superior como fue la Universidad en la Carrera de Ciencia de la Computación (la llamada Cibernética aquí en cuba, como se le conoce en el argot del estudiantado), esta toma de pasos lógicos, me ayudaron a concluir exitosamente mi carrera como profesional.

En los tiempos de hoy en día, la tendencia predominante en las enseñanzas primarias y de enseñanza media es no ir potenciando la programación, y solo enseñar, las cosas básicas en estos niveles de enseñanzas, ya que para operar una computadora, un ser humano corriente, no necesita de esas especificidades técnicas, y olvidan que en ese mismo saco están los estudiantes que un día llegan a las carreras de Ciencias, y que su pensamiento algorítmico esta en el piso y vienen los desastrosos resultados en las pruebas de programación, los desaprobados, o la formación lagunosa de contenidos que poseen los profesionales de ciencias en las actividades que tengan que ver con el pensamiento algorítmico.

Cuando estudie Ciencia de la Computación, en ese primer año, se dedico una asignatura, que se llamo algoritmizacion, que nos ayudo a activar el pensamiento algorítmico, a mejorar el que ya traíamos de las enseñanzas inferiores, y algunos…………………victimas de la terrible toma de decisiones iníciales de las que les hacia alusión mas arriba, era la primera vez que se enfrentaban a esta tarea, y tenían 6 meses para desarrollar un pensamiento algorítmico que debía haberse desarrollado desde mucho antes, y hasta algunos de ellos desgraciadamente no llegaron porque estaban en una carrera contra reloj destinados inevitameblente al fracaso.

Hay una situación real en estas carreras y es que no existen metodologías para enseñar a pensar a una persona en ese nivel, no hay una asignatura que se llame “aprender a pensar “, el individuo debe venir con cierta capacidad de raciocinio lógico, y esto no puede lograrse, si desde el mismo inicio, la toma de decisiones es la correcta: que en nuestra enseñanza, desde las primeras edades, comiencen a formar en los educandos la lógica deductiva y el pensamiento algorítmico.

Me toco ser profesor de Programación de la carrera de Ingeniería en Informática, impartí las asignaturas de Introducción a la Programación a los alumnos de primer año y Análisis y Diseño de algoritmos a los alumnos de 2do año, y lo que me tope en muchos casos fueron las secuelas del cáncer que les describo mas arriba, y quiero que sepan que un profesor se siente derrotado (o por lo menos era así para mi), cuando tenia que obligatoriamente desaprobar a un estudiante, porque simplemente no tenían un pensamiento algorítmico desarrollado y la consecuencia es que no podían hacer un programa lógico y correcto.

Cuba no puede darse el lujo de malgastar recursos educacionales en personas que una vez que llegan a ese nivel, lo abandonen porque no poseen una buena base, que respondan a las exigencias reales de esos tipos de especialidades, cuando la solución es tan sencilla, y esta en formar con tiempo estas aptitudes.

Porque la URSS dio buenos campeones de ajedrez y poseían la supremacía de aquellos tiempos???????, pues porque desde las escuelas primarias, se empeñaron en que los niños jugasen ajedrez, aparte de otras cosas…………..

Si queremos desarrollar y obtener buenos resultados en un futuro totalmente de ciencias, debemos forjar buenos profesionales, y dentro de las tantas características que deben de tener, el pensamiento algorítmico, la lógica y la importante matemática entre muchas cosas que serian incontables ponerlas en este articulo, son necesarias para la Cuba que todos soñamos, y por la que lucharon nuestros padres………