Clase digital 1. Algoritmos

Portada » Clase digital 1. Algoritmos

Algoritmos

Introducción

¡Hola!

Es un gusto saber que inicias un proceso académico, pues siempre es satisfactorio tener a estudiantes con gran dedicación como tú, con motivación por aprender cada día algo nuevo. En este curso tendrás la oportunidad de descubrir y aprender temas relevantes para tu educación, es por ello que con mucho entusiasmo te doy la bienvenida al mismo. 

Es importante señalar, que dentro de este proceso de aprendizaje estarás dentro de la cultura del pensamiento en el aula, ya que, para resolver problemas de la vida cotidiana, requerirás de procesos mentales de análisis, reflexión, toma de decisiones, creatividad, innovación y una lógica de pensamiento. Lo anterior abonará de forma transversal en tu formación integral, en todas las UDA que cursas y también un impacto importante en tu vida personal.

Mediante esta clase podrás descubrir la importancia que tiene el adentrarnos al mundo de la programación de computadoras mediante los lenguajes de programación, y cómo es que podemos activar la lógica de pensamiento para resolver problemas de la vida cotidiana a través de soluciones informáticas. 

En esta primera clase abordaremos los siguientes temas:

  • Concepto de algoritmos
  • Características de algoritmos
  • Diseño de algoritmos
  • Escritura de algoritmos (Ejemplos de algoritmos)

Sin más preámbulos, ¡Comencemos este trayecto formativo!

Desarrollo del tema

A lo largo de nuestras vidas vamos realizando diversas tareas de todo tipo, las cuales nos llevan a lograr un determinado fin, por lo que hablando de manera general estamos continuamente haciendo Algoritmos.

¿Pero qué es un algoritmo?

Según la Real Academia Española, nos dice que la definición de algoritmo es: “Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema”. 

Y siguiendo esa definición es que referimos que cualquier tarea que realicemos de esta manera la podemos conceptualizar como algoritmo. Por ejemplo: Cuando preparamos un pastel, tomamos una receta de cocina, la cual tiene una serie de actividades por realizar, y éstas deben de hacerse en el orden y tiempo que corresponde para poder lograr el fin, que es tener un pastel.

Hablando de un algoritmo computacional, lo podemos definir como un conjunto de pasos sucesivos en orden, que indican las instrucciones a ejecutar por la máquina. A mediados del siglo XIX, Augusta Ada Byron, crea lo que se considera el primer algoritmo diseñado para ser ejecutado por una máquina, lo que sentó las bases para los lenguajes de programación futuros.

En el siglo pasado con la llamada “Revolución Informática” los algoritmos comenzaron a cobrar mayor importancia y a medida que avanzaba tecnológicamente, estos adquirieron cada vez más relevancia hasta convertirse en parte fundamental en los procesos tecnológicos que afectan nuestro diario vivir.

Para conocer más al respecto, te invito a ver el siguiente video.

Los algoritmos están compuestos de tres elementos importantes:

Imagen 1. Componentes del algoritmo. Tomado de Aguilar (2022).

Todo algoritmo independientemente de su tipo tiene las siguientes características:

Imagen 2. Características de un algoritmo. Tomado de Aguilar (2022).

Diseño de algoritmos

Cuando resolvamos un problema, es necesario diseñar un algoritmo, que refiera cada uno de los pasos o instrucciones necesarias para resolverlo, así como el orden en que estos se realizan. Estos pueden ser problemas sencillos o complejos, sin duda las soluciones a problemas complejos requerirán de muchos pasos a seguir y una serie de estrategias para poder resolverlos. De aquí la importancia de reconocer algunas estrategias para diseñar soluciones a estos algoritmos más complejos; Según Joyanes (2008) señala los siguientes:

  • Divide y vencerás: Consiste en dividir un problema grande en unidades más pequeñas que puedan ser resueltas individualmente. Por ejemplo: Podemos dividir el problema de limpiar una casa en labores más simples correspondientes a limpiar cada habitación, la cocina, el baño, etc.; a diferencia de poder verlo como limpiar toda la casa.
  • Resolución por analogía: Dado un problema, se trata de recordar algún problema similar que ya esté resuelto. Los dos problemas análogos pueden incluso pertenecer a áreas de conocimiento totalmente distintas.  Por ejemplo: El cálculo de la media de las edades del grupo, la media de las calificaciones del primer parcial de los alumnos, etc., en este caso el proceso para sacar la media es igual en todos los casos, lo único que cambia son los datos de entrada.
  • Descendente (top-down design): Se refiere a la descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples. Tras la primera descripción del problema (poco específica), se realiza una siguiente descripción más detallada con pasos más concretos. Este proceso se denomina refinamiento del algoritmo.

Escritura y ejemplos de algoritmos

En apoyo a tu aprendizaje, te invito a ver el siguiente video

Para comenzar a escribir un algoritmo, es importante tomar en cuenta las características anteriormente citadas e identificar el orden en que cada paso se debe realizar, siendo estos numerados en orden secuencial.

Ejemplo 1: Algoritmo para cambiar la llanta de refacción de un vehículo.

En este algoritmo nuestra entrada será: Gato, llave de cruz y llanta de refacción. El proceso será quitar la llanta afectada y colocar la llanta de refacción. La salida será la llanta de refacción puesta en el vehículo. A continuación, llevamos cada paso a la escritura del algoritmo:

  • Levantar el auto con el gato.
  • Tomar la llave de cruz para soltar y sacar los pernos de la llanta.
  • Quitar la llanta.
  • Colocar llanta de refacción.
  • Colocar y apretar los pernos con la llave de cruz.
  • Bajar el gato.

Los pasos a seguir pueden ser tan detallados como usted lo defina.

Ejemplo 2: Cambiar el foco del techo de la cocina.

Los datos de entrada serán el foco nuevo y la escalera. El proceso será quitar el foco en mal estado y colocar el nuevo. La salida será el nuevo foco instalado.  La solución la podemos visualizar desde dos partes: 1) Quitar el foco fundido y 2) Colocar el nuevo foco.

Por lo que el algoritmo puede quedar escrito de la siguiente manera:

1. Quitar el foco fundido

    1.1 Colocar la escalera debajo del foco fundido.
    1.2 Subir por la escalera hasta alcanzar el foco.
    1.3 Girar el foco en sentido contrario a las manecillas del reloj hasta que salga.

2. Colocar la nueva bombilla:

   2.1 Tomar el foco nuevo de la misma potencia que el fundido.
   2.2 Enroscar el foco nuevo en sentido de las manecillas del reloj hasta que quede justo.
   2.3 Bajar de la escalera.
   2.4 Comprobar que la bombilla funciona.

Verificación del funcionamiento del algoritmo

Una vez que se ha escrito el algoritmo, es necesario comprobar que realiza las tareas para las que fue diseñado y produce los resultados correctos y esperados a partir de la información de entrada. Este proceso se conoce como prueba del algoritmo y consiste básicamente en recorrer todos los caminos posibles del algoritmo comprobando en cada caso que se obtienen los resultados esperados. Para ello se debe realizar una ejecución manual del algoritmo con datos significativos (ejemplo) que abarquen todo el posible rango de valores y comprobaremos que la salida coincide con la esperada en cada caso.

La aparición de errores puede conducir a tener que rediseñar determinadas partes del algoritmo que no funcionaban bien y a aplicar de nuevo el proceso de localización de errores, definiendo nuevos casos de prueba y recorriendo de nuevo el algoritmo con dichos datos.

Te recomiendo ver el siguiente video sobre cómo construir un algoritmo.

Conclusión

En esta sesión abordamos el tema de los algoritmos, identificando la importancia que tienen estos en nuestra vida cotidiana, y que al final de cuentas estamos rodeados de ellos en todos los aspectos de nuestras vidas.

Haciendo una reflexión, nuestro proceso de inscripción que realizamos cada semestre en la preparatoria, es un algoritmo, ya que debemos seguir una serie de pasos a seguir en determinado orden, hasta lograr nuestra inscripción. Otra vivencia que tenemos con los algoritmos es cuando venimos camino a la escuela, existe todo un proceso para que tu estés a tiempo en el salón de clases cada día, y así, podemos ir citando una serie de experiencias personales que te lleven a pensar que se trata de un algoritmo.

Por lo anterior es importante reconocer que poseemos un pensamiento lógico y algorítmico para resolver diversos problemas de nuestro entorno y que podemos plasmar mediante un algoritmo que nos conduzca a una solución y considere todos los posibles casos que pueden llegar a presentarse.

Al escribir un algoritmo es probable que cuando verifiquemos su funcionamiento encontremos diversos errores, pero no te preocupes esto es parte de la construcción y diseño de los algoritmos, simplemente debemos regresar y modificar lo que sea necesario. No olvides antes de iniciar la escritura de un algoritmo, reconocer cuáles son tus datos de entrada, el proceso y la salida para que sea exitoso.

Has llegado al final de la sesión, espero que la hayas disfrutado y aprendido los conceptos principales pues son necesarios para continuar con el trayecto académico. En el mismo sentido, te invito a realizar la tarea y el formulario de esta clase.

¡El camino hacia el éxito comienza con un solo paso, que bien que ya has comenzado! 
¡Sigue así, vas muy bien!

Fuentes de información

  • Albert, R., y Breedlove, T. (2009). C++: An active learning approach. Jones and Bartlett Publishers.
  • Cairo Battistutti, O. (2005). Metodología de la Programación, Algoritmos Diagrama, de Flujo y Programas. Alfaomega.
  • Deitel, P., y Deitel, H. (2008). Cómo Programar en C++. Pearson Prentice Hall.