# data[].attributes.attachment_caption
Fig. 1 Tomada de Alfabeto [Fotografía], Canva, 2022, www.canva.com

# data[].attributes.headline
Elementos que conforman un lenguaje de programación.

# data[].attributes.subject
Elementos que conforman un lenguaje de programación.

# data[].attributes.body
Alfabeto: Conjunto de símbolos y caracteres utilizables.
Sintaxis: Conjunto de normas que determinan como escribir las sentencias del lenguaje.
Semántica: Interpretación de las sentencias.
(Rodríguez Sala, 2013)

Para sintetizar los conceptos anteriores, comparemos nuestro lenguaje (el español) con las definiciones. Nuestro alfabeto es una variación del latino, de ahí se tomaron esos símbolos y se les atribuyó distintos usos y funciones. Este idioma tiene reglas gramaticales, fonéticas, ortográficas entre otras que permiten la existencia de estructuras de oraciones. Y por último, la semántica es lo que nos permite entender una oración de acuerdo al contexto en el que se usa. Todo esto es completamente aplicable al lenguaje de programación, con los mismos factores pero bajo distintas normas y semánticas.

# data[].attributes.attachment_caption
Fig. 2 Tomada de Syntax y Bynary [Fotografías], Canva, 2022, www.canva.com

# data[].attributes.headline
Clasificación de los lenguajes de programación y sus características.

# data[].attributes.subject
Clasificación de los lenguajes de programación y sus características.

# data[].attributes.body
Lenguajes de bajo nivel: Son aquellos que por sus características se encuentran más próximos a la arquitectura de máquina.

Lenguajes de alto nivel: Son aquellos lenguajes que por sus características se encuentran más próximos al usuario o programador.

(Quero Catalinas, 2002)

# data[].attributes.attachment_caption
Fig. 3 Tomada de Lenguajes de programación [Fotografía], Canva, 2022, www.canva.com

# data[].attributes.headline
Evolución de los lenguajes de programación y sus características.

# data[].attributes.subject
Evolución de los lenguajes de programación y sus características.

# data[].attributes.body
Lenguaje de máquina: Sus instrucciones dependían de las características de cada equipo y eran en ceros y unos.
Lenguaje ensamblador: Dada la necesidad de simplificar el uso de ceros y unos, se desarrolló este lenguaje. Introducción de palabras nemotécnicas.
Lenguajes de alto nivel: Frases en inglés, abreviaturas. Las instrucciones ya no dependen del equipo, por lo tanto es más accesible para los programadores.
Traductores de lenguaje (Ensamblador, intérprete, compilador): Una vez introducidos los lenguajes de alto nivel, existe una necesidad de transformar sus instrucciones a lenguaje máquina, por lo tanto, los programas ensambladores, intérpretes y compiladores estaban implícitos, incluso integrados. Los compiladores traducen el código fuente, convirtiendolo en un programa objeto. Este programa objeto permite que el programa esté unificado y pueda procesarse en cualquier momento, obteniendo un programa ejecutable. Los intérpretes analizan línea a línea el programa y lo ejecuta, pero sin generar un programa ejecutable, su función es encontrar errores y coherencia en la sintaxis. (Quero Catalinas, 2002)

# data[].attributes.attachment_caption
Fig. 4 Tomada de Automatización [Fotografía], Canva, 2022, www.canva.com

# data[].attributes.headline
Paradigmas de programación y sus características.

# data[].attributes.subject
Paradigmas de programación y sus características.

# data[].attributes.body
Un paradigma de programación es una colección de patrones conceptuales que moldean la forma de razonar sobre problemas, de formular soluciones y de estructurar programas.

-Programación imperativa: el programa es una secuencia finita de instrucciones, que se ejecutan una detrás de otra.

-Programación funcional: Todas las sentencias son funciones en el sentido matemático del término. Un programa es una función que se define por composición de funciones más simples.

-Programación lógica: el programa consiste en declarar una serie de hechos (elementos conocidos, relación de objetos concretos) y reglas (relación general entre objetos que cumplen unas propiedades) y luego preguntar por un resultado.

-Programación orientada a objetos: Se refiere a un estilo de programación (POO). Un lenguaje de programación orientada a objetos (LOO) puede ser tanto imperativo como lógico o funcional. Lo que lo caracteriza es la forma de manejar la información que está basada en 3 conceptos:
Clase: Tipo de dato con unas determinadas propiedades y una determinada funcionalidad.

Objeto: Entidad de una determinada clase con un determinado estado (valores del conjunto de sus propiedades) capaz de interactuar con otros objetos.

Herencia: Propiedad por la que es posible construir nuevas clases a partir de las clases existentes.

(Rodriguez Sala, 2013)

# data[].attributes.attachment_caption
Fig. 5 Tomada de Metodología [Fotografía], Canva, 2022, www.canva.com

# data[].attributes.headline
Fases de la metodología de la programación y en qué consiste cada una de ellas. 

# data[].attributes.subject
Fases de la metodología de la programación y en qué consiste cada una de ellas. 

# data[].attributes.body
Planteamiento del problema: consiste en seleccionar y plantear el problema que se quiere resolver para poder comenzar su análisis.

Análisis del problema:  En esta fase se determina ¿qué hace el programa? Por lo cual debe definirse de manera clara y concisa el problema en cuestión.

Diseño del algoritmo:  En esta fase se define ¿cómo el programa resuelve el problema? Para ello, se describe paso a paso la solución del mismo, lo cual se conoce como algoritmo.

Implementación o codificación:  El algoritmo no puede ser ejecutado por una computadora, por ello debe traducirse a un lenguaje de programación.

Pruebas y validación:  Esta fase se lleva a cabo una vez que se ha codificado el algoritmo previamente diseñado con el fin de verificar que su ejecución sea correcta. Existen diferentes formas de probar que la solución es correcta, algunas de ellas son formales y otras informales

Documentación del programa: Documentar el programa permite su fácil entendimiento para personas ajenas a la programación, así como para otros programadores, haciendo su lectura y futura modificación/mantenimiento más accesibles.

Mantenimiento: Esta fase tiene sentido una vez que fue terminada y liberada una primera versión del programa, misma que ya está siendo utilizada. En esta fase se actualiza y modifica dicho programa para corregir errores no detectados o para cambiar y/o agregar una nueva función.

(UnADM, 2022)