Resolución de problemas y algoritmos
Los programas de ordenador tienen como finalidad resolver problemas específicos y el primer paso consiste en definir con precisión el problema hasta lograr la mejor comprensión posible.
Una manera eficaz de realizar esta actividad se basa en formular claramente el problema, especificar los resultados que se desean obtener, identificar la información disponible (datos), determinar las restricciones y definir los procesos necesarios para convertir los datos disponibles (materia prima) en la información requerida (resultados).
Para obtener la solución de un problema matemático mediante los principios del pensamiento computacional, obteniendo un algoritmo listo para ser ejecutado por una persona, una máquina o una combinación de ambos, podemos seguir la siguiente secuencia:
Leer y comprender el problema
• Leer el problema varias veces.
• Establecer los datos del problema.
• Aclarar lo que se va a resolver (¿cuál es la pregunta?).
• Precisar el resultado que se desea lograr.
• Determinar la o las incógnitas del problema.
• Organizar la información.
• Agrupar los datos en categorías.
• Realizar una representación (figura, diagrama...).
Diseñar un plan
• Escoger y decidir las operaciones que efectuar.
• Eliminar los datos superfluos, simplificar el problema, quedándonos únicamente con la información relevante y útil.
• Descomponer el problema en otros más pequeños.
Ejecutar el plan. Resolver el problema
• Ejecutar en detalle cada operación.
• Simplificar antes de calcular.
• Realizar una representación que nos ayude a visualizar el plan.
Analizar la validez de la solución. Revisar
• Dar una respuesta completa.
• Hallar el mismo resultado de otra manera.
• Verificar por apreciación que la respuesta es adecuada.
Diseñar el algoritmo
Cuando se ha realizado un análisis a fondo del problema, se puede proceder a elaborar el algoritmo (diagrama de flujo). Este consiste en la representación gráfica, mediante símbolos geométricos, de la secuencia lógica de las instrucciones (plan), que, posteriormente, serán traducidas a pseudocódigo, y de ahí a un lenguaje de programación, como por ejemplo Scratch, para ejecutarlas y probarlas en un ordenador.
Ejemplo
Diseñar un algoritmo (pseudocódigo y diagrama de flujo) para hallar el área de un triángulo rectángulo cuya base mide 3 cm, su altura mide 4 cm y su hipotenusa mide 5 cm.
Análisis del problema
- Formular el problema.
Ya se encuentra claramente planteado.
- Resultados esperados.
El área de un triángulo rectángulo.
- Datos disponibles.
Base, altura, hipotenusa y tipo de triángulo. La incógnita es el área y todos los valores son constantes. El valor de la hipotenusa se puede obviar, no es necesario. El estudiante debe preguntarse si sus conocimientos actuales de matemáticas le permiten resolver este problema. De no ser así, debe plantear una estrategia para obtener, previamente, los conocimientos requeridos.
- Determinar las restricciones.
Utilizar las medidas dadas.
- Pasos necesarios.
Guardar en dos variables (BASE y ALTURA ) los valores correspondientes, respectivamente, a la base y la altura dadas en el enunciado.
Guardar en una constante (DIV) el valor 2.
Aplicar la fórmula (BASE*ALTURA)/DIV y guardar el resultado en la variable AREA.
Comunicar el resultado (AREA), mostrarlo en pantalla.
Luis Miguel Iglesias. Diagrama de flujo: área de un triángulo. (CC BY-SA)
Algoritmo en pseudocódigo
Paso 1: Inicio
Paso 2: Asignar el número 2 a la constante "DIV"
Paso 3: Asignar el número 3 a la constante “BASE”
Paso 4: Asignar el número 4 a la constante “ALTURA”
Paso 5: Guardar en la variable "AREA" el resultado de (BASE*ALTURA)/DIV
Paso 6: Imprimir, mostrar en pantalla, el valor de la variable "AREA"
Paso 7: Fin
Luis Miguel Iglesias. Pseudocódigo: área de un triángulo. (CC BY-SA)
Traducir el algoritmo. Ejecutar el plan
Una vez que el algoritmo está diseñado y representado gráficamente, se pasa a la etapa de traducción a un lenguaje de programación determinado (en nuestro caso será un lenguaje por bloques, Scratch). Cada lenguaje posee sus propias reglas gramaticales; por lo tanto, es fundamental que se conozca de antemano la sintaxis de los comandos que se deben utilizar para resolver el problema. A mayor dominio del lenguaje de programación, mayor posibilidad de llegar rápidamente a una solución satisfactoria. A esta fase de traducción se le conoce comúnmente como «codificación».
Luis Miguel Iglesias. Bloques de código de programa en Scratch: área de un triángulo. (CC BY-SA)
Depurar el programa. Revisar
Después de traducir el algoritmo en un lenguaje de programación por bloques como Scratch, el programa resultante debe ser probado para validar su resultado. A este proceso se le conoce como «depuración». Depurar programas contribuye a mejorar la capacidad, como alumnos, de resolver problemas. La depuración es una destreza importante.
Luis Miguel Iglesias. Bloques de código de programa en Scratch: área de un triángulo. (CC BY-SA)