# data[].attributes.body
Esta Pizarra es un trabajo de la unidad 2 de la asignatura Introducción a la Informática, en este se busca profundizar en el tema de algoritmos, y para ello, se definen conceptos clave y se muestran algunas imágenes y ejemplos en relación.

# data[].attributes.body
Cuando hablamos de desarrollo Frontend nos referimos a aquella parte de la programación que está a la vista del usuario, que se ejecuta en la parte del cliente, es decir, la capa de presentación o capa UI (User Interface).

La lógica de la presentación y el diseño de la interfaz de la aplicación son tarea del desarrollador Frontend, que también se encarga del diseño de interacción: la manera en la que el usuario se relaciona con la aplicación a través del navegador.

En la programación Frontend, participan también otros perfiles: diseñador gráfico, diseñador UX, maquetador, etc.

Lo lenguajes básicos con los que trabaja un desarrollo Frontend son HTML, CSS y Javascript.

El desarrollo Backend alude a aquella parte de la programación que no es visible para el usuario. Esta parte no se ejecuta en el navegador o dispositivo del cliente, sino en un servidor (físico o en la nube).

La programación Backend está estrechamente relacionada con el diseño y la creación de la arquitectura de software.

Los lenguajes de programación más populares en el terreno del Backend son Java, PHP, Python, NodeJS, C#, .NET, Ruby, etc.

Se entiende por desarrollador Fullstack aquel capaz de trabajar en proyectos tanto del lado del cliente como del lado del servidor. Es decir, es un perfil capacitado para afrontar simultáneamente los retos del backend y del frontend.

# data[].attributes.body
El shell o intérprete de órdenes o intérprete de comandos es el programa informático que provee una interfaz de usuario para acceder a los servicios del sistema operativo. Dependiendo del tipo de interfaz que empleen, los shells pueden ser:

De líneas texto (CLI, Command-Line Interface, interfaz de línea de comandos).

Gráficos (GUI, Graphical User Interface, interfaz gráfica de usuario).

De lenguaje natural (NUI, Natural User Interface, interfaz natural de usuario).

Los shell son necesarios para invocar o ejecutar los distintos programas disponibles en la computadora. Un ejemplo de Shell en Windows es Power Shell.

# data[].attributes.body
Python es un lenguaje de programación versátil y de alto nivel que se ha vuelto cada vez más popular en los últimos años. Es conocido por su simplicidad y legibilidad de código, lo que lo convierte en una excelente opción para principiantes y expertos en programación.

Un IDE es un software que combina un editor de código, un compilador o intérprete, y herramientas de depuración en una sola interfaz. Proporciona a los desarrolladores un entorno completo para escribir, probar y depurar su código de manera eficiente. Un IDE también puede ofrecer características adicionales como gestión de proyectos, resaltado de sintaxis y autocompletado de código

# data[].attributes.body
El ciclo de vida de un software es una secuencia estructurada y bien definida de las etapas en ingeniería de software para desarrollar el software deseado. Lo describe desde el inicio hasta el final, con el objetivo de definir las distintas fases intermedias para validar el desarrollo de la aplicación y confirmar que cumpla con los requisitos de verificación.

Etapas

Planificación

Análisis

Diseño

Implementación

Pruebas

Instalación

Uso y mantenimiento

Modelos del ciclo de vida de un software

Modelo en cascada

Modelo V

Modelo iterativo

Modelo de desarrollo incremental

Modelo en espiral

Modelo de prototipos

# data[].attributes.body
Guido van Rossum es un informático,​ conocido por ser el autor del lenguaje de programación Python. Nació el 31 de enero de 1956 en los Países Bajos.

# data[].attributes.body
Pablo Novara, graduado y docente de Ingeniería en Informática de la Facultad de Ingeniería y Ciencias Hídricas (FICH) de la Universidad Nacional del Litoral (UNL), obtuvo el reconocimiento "September 'Community Choice' Project Of The Month" por su proyecto PSeInt, esta es una herramienta multiplataforma (probado en Microsoft Windows, GNU/Linux y Mac OS X), totalmente libre y gratuita (licencia GPLv2), que tiene como objetivo asistir a docentes y estudiantes de habla hispana en la construcción de programas o algoritmos computacionales.

# data[].attributes.body
MySQL es un sistema de gestión de bases de datos que cuenta con una doble licencia. Por una parte, es de código abierto, pero por otra, cuenta con una versión comercial gestionada por la compañía Oracle. Actualmente, es la base de datos de código abierto más famosa y utilizada en el mundo entero.

MySQL sirve para almacenar toda la información que se desee en bases de datos relacionales, como también para administrar todos estos datos sin apenas complicaciones gracias a su interfaz visual y a todas las opciones y herramientas de las que dispone. Es algo esencial, sobre todo en webs que cuentan con la opción de registrar usuarios para que inicien sesión.

Ulf Michael Widenius, nació el 3 de marzo de 1962, en Helsinki, Finlandia. Es el autor principal de la versión original de la base de datos de código abierto MySQL y miembro fundador de la empresa MySQL AB. Estudio en la Universidad Politécnica de Helsinki pero nunca se gradúo, comenzó a trabajar para Tapio Laakso Oy en 1981. En 1985 fundó TCX DataKonsult AB (una empresa sueca de almacenamiento) con Allan Larsson En 1995 comenzó a escribir la primera versión de la base de datos MySQL con David Axmark, que fue lanzada en 1996. Es coautor del Manual de Referencia de MySQL, publicado por O'Reilly Media en junio de 2002, y en 2003 fue galardonado con el premio al empresario de software finlandés del año. Hasta la venta de MySQL AB a Sun Microsystems en enero de 2008,​ era el director técnico de MySQL AB y siguió siendo una de las principales fuerzas detrás del desarrollo de MySQL

# data[].attributes.body
El diseño responsive es un formato de programación que permite ajustar un sitio web automáticamente al tamaño y disposición de los dispositivos de sus usuarios. Los sitios web responsive cambian para ofrecer la mejor experiencia a los visitantes desde sus teléfonos inteligentes, tabletas o computadoras de escritorio. La principal característica del diseño responsive es su flexibilidad.

Componentes:

1. Tamaño de visualización

2. Tamaño de navegación

3. Contenidos textuales

4. Contenidos visuales

5. Identificadores de marca

6. Botones de acción

# data[].attributes.body
Un algoritmo se puede definir como un conjunto de elementos ordenados por medio de una secuencia lógica para el procesamiento de la información, los cuales tienen un inicio y un final de las operaciones que realiza, con el fin de encontrar una solución fácil, rápida y eficiente a un problema planteado de cualquier disciplina.

Tipos de algoritmos:

Algoritmos computacionales: solo pueden ser ejecutados desde un computador y todos sus procesos deben estar vinculados a este.

Algoritmos no computacionales: no requieren de un computador para ser procesados y generar un resultado esperado.

Algoritmos cualitativos: no realizan operaciones matemáticas ni aritméticas, sino que procesa únicamente información, imágenes, gráficos, entre otros.

Algoritmos cuantitativos: realizan cálculos matemáticos o aritméticos y arrojan valores o estadísticas sobre los datos ingresados.

Algoritmo cotidiano: Es la serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades comunes.

# data[].attributes.body
Las fases de resolución de un algoritmo informático son:

Análisis del problema.

Diseño del algoritmo.

Codificación.

Compilación y ejecución.

Verificación y depuración.

Mantenimiento y documentación

EJEMPLO: sumar dos valores

# data[].attributes.body
Un dato es la representación simbólica (números, letras, algoritmos, etc.) de un atributo o variable cuantitativa o cualitativa. Un dato es un valor o referente que recibe el computador por distintos medios y representan la información que el programador manipula en la búsqueda de una solución o en el desarrollo de un algoritmo.

Un dato por sí solo no transmite información, pero un conjunto de datos puede describir objetos, condiciones o situaciones.

Tipos de datos:

Simples: almacenan un solo valor. Los datos simples pueden ser de tipo numérico, alfanumérico y lógico.

Estructurados: almacena varios valores al mismo tiempo dentro de una misma variable. Los datos estructurados o compuestos pueden ser arreglos, archivos, ficheros, etc.

# data[].attributes.body
Un pseudocódigo (falso lenguaje), es una serie de instrucciones a seguir, utilizando palabras léxicas y gramaticales referidos a los lenguajes de programación, pero sin llegar estar estrictamente correcta su sintaxis de programación, ni tener la fluidez del lenguaje coloquial; permitiendo codificar un programa con mayor agilidad que en cualquier lenguaje de programación. Forma parte de las distintas herramientas de la ingeniería de software y es, netamente, lenguaje de tipo informático.

# data[].attributes.body
Variable es una palabra que representa a aquello que varía o que está sujeto a algún tipo de cambio. Se trata de algo que se caracteriza por ser inestable, inconstante y mudable. En otras palabras, una variable es un símbolo que permite identificar a un elemento no especificado dentro de un determinado grupo. Este conjunto suele ser definido como el conjunto universal de la variable (universo de la variable, en otras ocasiones), y cada pieza incluida en él constituye un valor de la variable.

Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: iva=0.19            pi=3.1416 costo=2500

Variables lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos

Variables alfanuméricas: Está formada por caracteres alfanuméricos (letras, números y caracteres especiales).

Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: suma=a+b/c

Tipos de variables:

Variables dependientes: que son aquellas que dependen del valor que se le asigne a otros fenómenos o variables.

Variables independientes: cuyos cambios en los valores influyen en los valores de otra.

Variables aleatorias: son las funciones que asocian un número real a cada elemento de un conjunto E.

Contador:  Es una variable que está en ambos miembros de una asignación interna, a la que se le suma un valor constante. Es necesario haber inicializado en un momento previo a esta variable, ya que va a ser leído su contenido.

# data[].attributes.body
Los operadores básicos son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Los tipos son:

Aritméticos

Relacionales

Lógicos

# data[].attributes.body
La asignación es una operación fundamental en la programación, ya que permite almacenar valores y manipularlos según las necesidades del programa. Además, es importante destacar que el valor asignado a una variable puede ser de cualquier tipo, desde números enteros hasta cadenas de caracteres, pasando por valores booleanos o estructuras complejas de datos.

Por lo general, la asignación se realiza mediante el uso de un operador especial que se representa por el símbolo "=", aunque en algunos  lenguajes de programación se utiliza otra notación, como el operador ":=".

# data[].attributes.body
La "lectura de datos" en un algoritmo se refiere al proceso mediante el cual el algoritmo obtiene información de alguna fuente de entrada, como un archivo, una base de datos o incluso la entrada del usuario. Esta etapa es crucial, ya que los datos son el insumo necesario para que el algoritmo realice sus operaciones y produzca resultados.

Algunos puntos clave sobre la lectura de datos:

Fuente de los datos

Formato de los datos

Validación

Estructuración

# data[].attributes.body
En informática, los conceptos de escritura, impresión y almacenamiento se refieren a diferentes formas de manejar y presentar datos.

Escritura: se refiere al proceso de guardar o enviar datos a un dispositivo de salida o a una ubicación de almacenamiento.

Impresión: implica la producción de una copia física o visual de datos, ya sea en papel o en otro formato visual.

Almacenamiento: se refiere al proceso de guardar datos de manera permanente o temporal para su uso futuro

# data[].attributes.body
Una prueba de escritorio es la comprobación lógica, de un algoritmo de resolución.

Para desarrollar la prueba de escritorio, se utilizará el siguiente procedimiento:

Con datos de prueba, se seguirán cada uno de los pasos propuestos en el algoritmo de resolución.

Si la prueba de escritorio genera resultados óptimos, quiere decir que el algoritmo posee una lógica adecuada, en caso contrario el algoritmo tendrá que ser corregido.

Algunos programas para desarrollar una prueba de escritorio son:

Jam

Selenium

Kualitee

HeadSpin

# data[].attributes.body
Un diagrama de flujo es una descripción grafica de los algoritmos; se usan con símbolos conectados entre sí a través de flechas para indicar la secuencia de las instrucciones o los pasos ordenados en la solución.

Un diagrama de flujo o flujograma es una forma de representar gráficamente los pasos para resolver un problema en específico. Estos diagramas utilizan una serie de símbolos con significados especiales y son la representación gráfica de los pasos de un proceso. En computación es un primer enfoque con lo que sería la programación formal

# data[].attributes.body
EJEMPLO:

Que el usuario de su género y su nombre, dependiendo de su género imprimir en pantalla Bienvenido “nombre”, Bienvenida “nombre”, y si en dudo caso se pone otra opción imprimir en pantalla Hola indeciso

# data[].attributes.body
Las estructuras de control son un conjunto de reglas que hacen posible la gestión del flujo de ejecución de los programas, esto lo logran determinando el orden en que las instrucciones se ejecutan. Grosso modo, las estructuras de control permiten que el código tome decisiones, repita acciones o bien siga su flujo de ejecución secuencial.

EJEMPLO: algoritmo que calcule el promedio de 4 notas de un estudiante de acuerdo con la siguiente condición: si el promedio es mayor o igual a 3 el estudiante ganará la asignatura de lo contrario perderá la asignatura.

# data[].attributes.body
Una estructura de decisión simple evalúa la condición, luego: Si la condición es cierta entonces ejecuta el conjunto de sentencias definidas por Si , i = 1 .. n. Si la condición es falsa entonces no ejecuta el conjunto de sentencias definidas por Si , i = 1 .. n.

# data[].attributes.body
Las estructuras de doble permiten elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de la condición: Si el resultado de evaluar la condición el CIERTO se ejecutará un determinado grupo de instrucciones 1i, para i = 1, .., n. Si el resultado de evaluar la condición es FALSO se ejecutará otro grupo de instrucciones 2k, para k = 1, .., m

# data[].attributes.body
Las estructuras de decisión anidadas están contenidas unas dentro de otras.

# data[].attributes.body
Las estructuras multicondicionales son una instrucción o conjunto de instrucciones que controlan el flujo del programa para que sea secuencial, alternativo o repetitivo

# data[].attributes.body
Los condicionales en programación son estructuras que permiten tomar decisiones basadas en ciertas condiciones.

Repetitivos: Son estructuras que permiten ejecutar un bloque de código repetidamente mientras se cumpla una condición.

No repetitivos: Son estructuras que permiten ejecutar un bloque de código una sola vez si se cumple una condición. Si la condición no se cumple, el bloque se omite.

# data[].attributes.body
Un bucle es un tipo de pseudocódigo consiste en la posibilidad de realizar una misma instrucción más de una vez. Bucle mientras Realiza ciertas instrucciones mientras que la condición se siga cumpliendo.

Bucle repetir: realiza ciertas instrucciones hasta que se deje de cumplir con la condición de que a diferencia del mientras esta instrucción realiza al menos una vez las instrucciones.

Bucle para: se utiliza para realizar instrucciones cierto número de veces, pero definiendo por un índice que se incrementa en cada vuelta.

Bucle para cada: Realiza instrucciones para todo elemento que cumpla con la condición.

# data[].attributes.body
DFD es un software diseñado para construir y desarrollar algoritmos, normalmente es usado por usuarios no programadores, debido a que su operatividad es fácil y no requiere un conocimiento avanzado.

Este software tiene como base los diagramas de flujo para la representación de algoritmos de programación, de forma que un usuario convencional, por medio de figuras y gráficos, pueda construir y probar la funcionalidad de su algoritmo desarrollado.

# data[].attributes.body
PSeInt está pensado para asistir a los estudiantes que se inician en la construcción de programas o algoritmos computacionales. El pseudocódigo se suele utilizar como primer contacto para introducir conceptos básicos como el uso de estructuras de control, expresiones, variables, etc., sin tener que lidiar con las particularidades de la sintaxis de un lenguaje real

# data[].attributes.body
PSEINT es una herramienta de programación enfocada en la enseñanza de algoritmos, mientras que DFD es una técnica de modelado que describe el flujo de información en un sistema.

# data[].attributes.body
En el mundo actual se utilizan los algoritmos en casi todos los ámbitos humanos: la planeación de la cotidianidad, la organización social, el entorno laboral, etc., de allí la importancia de aprender de ellos, pues no solo pueden hacer más fácil nuestra cotidianidad, sino que también nos podrían servir para prevenir ciertas situaciones indeseadas.

Es importante tener en cuenta que no es necesario tener un conocimiento especializado para aprender de algoritmos, pues hay opciones básicas que facilitan el aprendizaje y el desarrollo de los mismos.

# data[].attributes.body
Adictos digitales. (2023) ¿Qué es el IDE en Python? ¿Qué Es El IDE En Python? | Adictos Digitales

Alegsa, L. (2023). Definición de asignación (operador de programación).

Definición de asignación (operador de programación) (alegsa.com.ar)

Arcia, A. (2024). Estructuras de Decisión Simples y Dobles. Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.

Coppola, M.E. (2023). Qué es un diseño responsive: características y ejemplos. Hubspot

Qué es un diseño responsive: características y ejemplos (hubspot.es)

Facultad de Ingeniería, UNAM. (2010). Diagramas de flujo, pseudocódigo y pruebas de escritorio.

Guía algoritmos. (S.f) ¿Qué es un algoritmo?

Herrero, A. (2024). MySQL.  ▷ ¿Qué es MySQL y para que sirve? - Neo Wiki | NeoAttack

Martin, M.J. (S.f). ¿Desarrollador frontend, backend o fullstack? ¿Desarrollador frontend, backend o fullstack? (profile.es)

Maldonado, R. (2024). ¿Qué son las estructuras de control en programación? KEEPCODING. Estructuras de control: ¿qué son y qué tipos existen? (keepcoding.io)

Ospina, A. (S.f). ALGORITMO. Materia IBX12.

Pérez Díaz, M.L. (2016). Introducción a la Informática Unidad 2. Algoritmia. Institución Universitaria ITM.

SOLBYTE. (2021). Ciclo de vida del software. Qué es, modelos y etapas

Ciclo de vida de un software: qué es, modelo, etapas | Solbyte

UNL NOTICIAS. (2015). Premian a docente de la UNL por un desarrollo de software libre.

Premian a docente de la UNL por un desarrollo de software libre

Wikipedia. (2010). Shell. (Informática). Shell (informática) - Wikipedia, la enciclopedia libre

Wikipedia. (2024). Michael Widenius. Michael Widenius - Wikipedia, la enciclopedia libre