Skip to main content

Programación en general: el mundo de los algoritmos

¿Qué es un Algoritmo? 

Un algoritmo es un conjunto de instrucciones estructuradas que tienen como objetivo resolver un problema. Los algoritmos están presentes en nuestra vida cotidiana en multiples campos, desde una receta de cocina que nos indica que ingredientes necesitamos, en que orden y como debemos prepararlos para obtener el plato deseado; pasando por las instrucciones de montage de un LEGO o un mueble de IKEA, una partitura musical que indica que notas tocar para reproducir una determinada pieza, una guía de color que nos dice que tenemos que mezclar azul y amarillo para obtener verde.

Estas instrucciones o algoritmos pueden representarse/implementarse utilizando diferentes lenguajes y estructuras (códigos de representación).

Por ejemplo:

- Mezclando azul y amarillo obtendremos verde.verde. Si a ese verde le añadimos blanco sera verde claro,claro, pero si le añadimos negro sera verde oscuro.oscuro.

                                                 +blanco = verde claro

- Azul + Amarillo = Verde  <

                                                 +negro = verde claro

- [  ] + [  ] = [  ]

En computación, los programas son algoritmos escritos en un lenguaje especifico y comprensible para la maquina, ya que es la maquina la que tiene que realizar esas acciones.

Al igual que en el ejemplo anterior en el que escribimoshemos escrito con tres códigos de representación diferentes el mismo algoritmo que resuelve el problema:problema '¿cómo crear color verde?', en la programación pasa igual y existen multiplesmúltiples estructuras, lenguajes y entornos que nos permitirán implementar el algoritmo que solucione nuestro problema.

Es muy importante tener siempre en mente que EN PROGRAMACION NO HAY UN SOLO CAMINO CORRECTO :)
Es un proceso creativo y constructivo en el que de diferentes formas se pueden obtener resultados equivalentes. Aunque siempre podrá haber diferencias en los costes tanto de tiempo como de memoria.

Existen muchos lenguajes de programación diferentes y aunque unos y otros frecuentemente tienen elementos en común, cada languagelenguaje se rige por sus reglas especificas,especificas. estoEsto implica que un comando/comando o elemento que funciona en un lenguaje puede no funcionar en otrootro, o funcionar de otra manera,manera; por lo que tendremos que conocer y tener en cuenta los códigos de representación del lenguaje y el entorno en el que estemos programando. (poner el ejemplo del ; despues de C++ que en pyton no es necesario, o la falatafalta de parentesis en pyton para los loops)

blue + amarillo = ?

Ejercicio: Busca 2 ejemplos de algoritmos en tu vida cotidiana y represéntalos con dos códigos diferentes :)

 

¿Qué es la programación?

La programación informática se refiere al proceso de construcción de estos grupos de instrucciones para ordenadoresque ysean procesadas por un ordenador o microcontrolador. La programación se basa en flujos de datos que se almacenan, comprueban y transforman de manera organizada/estructurada. 

En un sistema computacional vamos a tener elementos de dos tipos: Elel software que es la parte inmaterial y el hardware que es la parte material. 
El software son los componentes lógicos ("Software", 2022), las instrucciones o algoritmos, los programas que serán seguidos por el hardware, que son los componentes físicos que constituyen el ordenador/computadora (disco duro, tarjeta grafica, pantalla, ratón, altavoz, cámara ...). El software le dice al ordenador lo que tiene que hacer para lograr el resultado deseado. El software es el ADN de la maquina. No obstante, pese a que esta distinción está ampliamente extendida, en realidad no está tan claro dónde debe establecerse la línea que establece la diferencia entre hardware y software.

EstaLo que sí está claro es que esta combinación de hardware y software constituye el sistema/sistema, la infraestructura que permitirá que los datos introducidos en un programa, como por ejemplo Pure Data, a los que se conocen como inputs/entrada,entrada, sean procesados (comprobados, leídos, almacenados, modificados).

El resultado que este programa proporciona se conoce como output/salida. Esta terminología y estructura se aplica también a los procesos internos de los programas, ya que un programa esta constituido por otros programas mas pequeños, multiples procesos conectados e interrelacionados.interrelacionados.
Esta idea de entrada y salida de datos nos va a acompañar durante todo el curso, ya que en nuestros proyectos vamos a trabajar con un conjunto de datos de entrada que nos permitirán obtener un resultado o salida. Generalmente todo proceso tiene una entrada de datos (input), acciones que, sobre y con esos datos, ocurren durante el proceso, y una salida de datos(output) que es el resultado del proceso. Programar es la acción de construir esos programas para ordenador (Scratch, 2022). 

Para explicar y hacer más comprensible cómo funcionan los algoritmos, suelen emplearse metáforas. Así, es posible establecer similitudes entre algo tan abstracto como es la programación con procesos que nos resultan más familiares. Vamos a tomar como metáforasfora los sistemas hidrográficos; ríos, arroyos, pozos, lagos, meandros y las infraestructuras que el ser humano introduce en estos sistemas fluviales para modificar el curso y estado del agua: presas, centrales hidroeléctricas, sistemas de canalización para el riego, acueductos o simples marcas en la pared de un canal para medir el nivel del agua y obtener información acerca del crecimiento de los ríos. 

image-1660922913902.jpg

Ejemplo:Por ejemplo:

En Zaragoza el nivel del agua del rio se mide todos los días (Proceso 1: comparar) y se apunta en una libreta (Proceso 2: almacenar). Este nivel ha de ser siempre superior a 50 (Proceso 3: comparar). Cuando el nivel de agua en Zaragoza desciende por debajo de 50 se avisara al embalse (Proceso 4.1.1: enviar información) para que deje salir mas agua (Proceso 4.1.2: cambiar), si el nivel de agua no ha bajado por debajo de 50, no se avisa al embalse y el agua que deja salir este seguirá siendo la misma (Proceso 4.2: no cambiar). Comprobación del estado el agua en Zaragoza y Estado del embalse en función de esa comprobación.

El agua de este sistema hidrográfico van a ser los datos. Y las infraestructuras introducidas por el ser humano para controlar estas aguas van a ser los programas que procesaran estos datos. De esta manera iremos encadenando procesos por los que los datos pasan para conseguir nuestro objetivo. 

image-1660640818235.gif

 

Explicar imagen superior

explicar diferencia entre datos e información. explicar software y hardware.
 explicar que es un algoritmo

Referencias:

Pure Data (2022). Pure Data home. [Website/Pagina web] Pure Data. Consultado el 16 Agosto 2022 de http://puredata.info/

Scratch (n.d). Programming. Scratch wiki. Retrieved August 17, 2022 https://en.scratch-wiki.info/wiki/Programming 

Software. (2022, August 15). In Wikipedia. https://es.wikipedia.org/wiki/Software