Cuando empezamos a programar por primera vez todos hemos escuchado esa gran palabra llamada “algoritmo”, la primera vez que la escuchamos nos cuesta entender su significado pero tenemos una cosa bastante clara, es un concepto muy importante en programación.

Con este articulo mi objetivo es explicar el significado de esta palabra y el valor que tiene cuando programamos, pero no lo quiero explicar de forma teórica si no de una manera más práctica. Más concretamente lo voy a explicar con mi experiencia de clase y como busqué la manera para que mis alumnos pudiesen entender esta idea y sobre todo que vean su finalidad.

Llevo varios cursos enseñando programación en mi asignatura de Tecnología, más exactamente el lenguaje Python, un lenguaje ideal para entender y enseñar conceptos de programación para alumnos que ven por primera vez el código.

Mis comienzos en la asignatura siempre son bastante sencillos, conocemos el entorno de programación, la ejecución secuencial del lenguaje, variables y poco más.

Poco a poco nos vamos sumergiendo en conceptos un poco más complicados como las condicionales y los bucles, donde ya podemos hacer pequeños programas matemáticos como por ejemplo introducir un numero y decir si es par o impar.

Como sabéis cualquier numero que dividas entre dos y su resto sea cero, es un número par, por lo tanto aquí tenemos la base de nuestro primer programa.

numero=input(«Introduce un numero para saber si es par o impar: «)
if int(numero)%2 is 0:
print(«Este número es par»)
else:
print(«Este número es impar»)

Una vez llegados a este punto de mi clase, es donde la famosa palabra “algoritmo” empieza a tener forma y donde se formula la pregunta, ¿este programa de par o impar vale para cualquier número?, ¿da igual el número que yo introduzca?.

 La respuesta en el aula suele ser, con ciertas dudas, SI. Aquí tenemos la principal condición para que nuestro programa este correcto, probamos a introducir valores aleatorios entre los diferentes programas creados en clase… esto funciona!!!!.

Hemos creado una formula en programación que vale para cualquier número!!!, ¿Puede ser esto un algoritmo?

Lo primero que haremos es definir algoritmo. Un algoritmo es un grupo finito de operaciones organizadas de manera lógica y ordenada que permite solucionar un determinado problema o llegar a una solución.

Por lo tanto si seguimos la definición, nuestro pequeño programa que es finito, con un conjunto de simples instrucciones, nos da una solución a un problema planteado. Que en este caso es saber si el numero que introducimos en par o impar.

Entonces SI podemos considerar estas pequeñas líneas de código como un algoritmo.

Pero mi articulo no acaba aquí, como empecé diciendo esta idea se basa en una de mis experiencias reales en clase y después de que el concepto de algoritmo ya está “sobrevolando” el aula, voy a mostrar uno de los algoritmos más populares usados en programación para ordenar elementos, BubbleSort (ordenamiento Burbuja).

El ordenamiento Burbuja es un algoritmo que funciona intercambiando pares de elementos adyacentes previamente desordenados. La invariante del algoritmo es que al final de la i-ésima iteración, el i-ésimo elemento de la lista estará en la posición correcta. ¿Magia?, no programación.

En este escenario i puede tomar valores entre 0 y n, donde n es la cantidad de elementos a ordenar.

Para comprender el funcionamiento de este algoritmo vamos a usar un sencillo ejemplo en clase, vamos a considerar la siguiente lista de elementos.

¿Cómo haremos para ordenar esta lista?

  1. Vamos a realizar un recorrido desde la última posición hasta la primera intercambiando pares de elementos adyacentes , si el elemento de la derecha es menor.
  2. Para llevar el segundo elemento más pequeño a la segunda posición de la lista, se procede de igual forma pero haciendo el recorrido de la ultima posición hasta la segunda. Así sucesivamente para que cada elemento quede en su posición ordenada.

Siendo bien sencillo, este algoritmo carece de utilidad práctica en la alta programación ya que hay otros algoritmos de ordenación mucho más eficientes. Pero independientemente de esto es un ejercicio perfecto para llevarlo al aula y poder practicarlo con los alumnos que ya tienen una pequeña base de programación.

Como ya os he comentado al inicio de este articulo, yo lo trabajo en Python, pero este algoritmo puede ser trabajado en cualquier lenguaje, incluso con bloques.

En este enlace os dejo el código en Python del algoritmo Burbuja para que os animéis a llevar vuestro primer algoritmo al aula.

Código en Python de BubbleSort