5. El reto final#

A continuación nos paramos en tres conceptos previos sobre programar que quizá te ayuden a enfrentar cualquier tipo de reto. Los tres son puntos importantes también para trabajar en un entorno educativo de iniciación a la programación.

5.1. Pensar Analógico, Ejecutar Digital#

Uno de los conceptos más importantes, y que muchas veces se olvida enseñando programación, es entender que la tecnología no lo resuelve todo. Es simplemente una herramienta más, que eso sí, bien utilizada puede suponer una herramienta muy útil. Pero eso muchas veces implica distinguir que una cosa es lo analógico, digamos lo de siempre, y otra lo digital, que va cambiando continuamente (diferentes herramientas). En concreto, dos ideas:

  1. Pensar en analógico. No hay nada como un papel y un lápiz para analizar y diseñar propuestas.

  2. Ejecutar en digital. Usar la tecnología para lo que es, una herramienta que ayuda en tu trabajo.

Pensar Analógico / Ejecutar digital es un buen marco de referencia en el uso de cualquier competencia y uso de tecnología. En el caso que nos ocupa, programar, no es buena idea usar directamente el simulador sin haber hecho antes algún dibujito en un papel para entender el problema e incluso proponer una idea sencilla de algoritmo de solución. No subestimes la importancia del papel.

5.2. El ciclo de la programacion#

Todos los programas, que tengan una cierta complejidad, implican un desarrollo por pasos hasta llegar a un resultado final que satisfaga nuestra necesidad. Y la necesidad surge de un problema, de un reto concreto, al que tenemos que darle una solución. Podríamos pensar en estos 4 pasos sencillos:

  1. El problema (y su análisis). Tendremos una descripción de un problema, o de un reto a resolver. Es un paso donde debemos entender cual es el problema analizando los diferentes aspectos involucrados

  2. La propuesta de solución (el algoritmo). Una vez que entendemos el problema, proponemos una solución. En el ámbito de la programación estructurada será una colección de instrucciones secuenciales, de control y repetitivas donde se ejecutarán unas instrucciones u otras según ciertas condiciones.

  3. La programación en sí. Es decir, la construcción y desarrollo del programa. En nuestro caso, la construcción con bloques del programa para nuestro robot.

  4. La simulación. Es decir, la prueba de ese programa. En nuestro caso, usando el simulador para ese robot concreto.

Y este ciclo se repite de forma continua hasta encontrar el programa que cumple con nuestros requisitos (resolver nuestro problema). Y esto es programar. Un proceso de mejora continua.

../../_images/ciclo-vida-programa.webp

5.3. Los Algoritmos#

El algoritmo es el corazón del programa porque es la propuesta de solución a un problema expresado en tus propias palabras, en un gráfico o incluso de forma matemática. En la práctica será el conjunto de instrucciones necesarias para obtener un resultado final. Puede ser desde algo muy sencillo (Avanzar 10 cm) hasta algo más complejo que incluye muchos pasos y tipos de instrucciones.

En realidad usamos algoritmos, digamos secuencias de instrucciones y tomas de decisiones, en múltiples tareas habituales. Por ejemplo arreglar una lámpara eléctrica :

https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/LampFlowchart-es.svg/750px-LampFlowchart-es.svg.png

Aquí podemos ver la gran importancia de aprender a programar, como una competencia importante para el estudiante. Le puede ayudar a entender que:

  1. Muchos problemas se pueden resolver en una secuencia ordenada de acciones, paso a paso

  2. Y según el estado en cada momento (por ejemplo datos) tomará unas acciones u otras

  3. Es decir, tomará decisiones en función de la información que tiene en cada momento

Un algoritmo puede servir para arreglar una lámpara, desarrollar un programa de un robot que se mueve esquivando obstáculos o …

5.4. Ejemplo Final#

Recuerda repasar lo visto en las sesiones anteriores antes de enfrentarte a este reto final. Un tiempo estimado de solución es en menos de 20 minutos.

El reto final

El robot profesor