# data[].attributes.body
Se trata de redimensionar y colocar los elementos de la web de forma que se adapten al ancho de cada dispositivo permitiendo una correcta visualización y una mejor experiencia de usuario. Se caracteriza porque los layouts (contenidos) e imágenes son fluidos y se usa código media-queries de CSS3.

El diseño responsive permite reducir el tiempo de desarrollo, evita los contenidos duplicados, y aumenta la viralidad de los contenidos ya que permite compartirlos de una forma mucho más rápida y natural.

# data[].attributes.body
Es una secuencia finita y ordenada de operaciones que permite solucionar un problema o realizar una tarea. Estos pasos son claros, precisos y están diseñados para ejecutarse en un orden específico, llevando a la obtención de un resultado o solución a partir de unos datos de entrada dados. Los algoritmos son fundamentales en el campo de la informática y la programación, pero también se aplican en la vida cotidiana y en diversas disciplinas científicas y matemáticas.

Las características principales de un algoritmo incluyen:

⦁ Definición precisa: Cada paso y su secuencia deben estar claramente definidos, sin ambigüedad.

⦁ Finitud: Un algoritmo debe terminar después de un número finito de pasos, no puede ser un proceso infinito.

⦁ Entrada: Generalmente recibe datos de entrada (0 o más), sobre los cuales realiza una serie de cálculos o procedimientos.

⦁ Salida: Produce al menos un resultado o salida, que es la solución al problema que el algoritmo busca resolver.

⦁ Efectividad: Cada uno de los pasos debe ser lo suficientemente básico para poder ser realizado, en principio, de manera manual, aunque en la práctica se realicen de manera automática por una computadora.

Los algoritmos pueden ser representados de diversas maneras, incluyendo lenguaje natural, pseudocódigo, diagramas de flujo y, por supuesto, mediante lenguajes de programación específicos. Son la base para el desarrollo de software, permitiendo a los programadores y diseñadores de sistemas estructurar las soluciones a problemas de manera lógica y ordenada.

# data[].attributes.body
Son las clasificaciones que se le dan a los diferentes tipos de datos que se pueden manejar dentro de un programa. Los tipos de datos más comunes son enteros (int), decimales (float), caracteres (char), cadenas de texto (string), y booleanos (bool).

Variables: Son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Cada variable tiene un tipo de dato asociado y un identificador único o nombre para referirse a ella.

Operadores: Son símbolos que le dicen al compilador o intérprete que realice operaciones matemáticas, lógicas o de comparación específicas. Los más comunes incluyen operadores aritméticos (+, -, *, /), operadores lógicos (AND, OR, NOT) y operadores de comparación (==, !=, >, <).

# data[].attributes.body
Algoritmo para construir una casa

Paso 1: Planificación: Decidir el tamaño, estilo, y ubicación de la casa. Obtener los permisos necesarios.

Paso 2: Preparación del terreno: Limpiar el terreno, nivelarlo y marcar el área de construcción.

Paso 3: Cimentación: Excavar para la cimentación, verter el hormigón y dejar que cure.

Paso 4: Estructura: Construir el esqueleto de la casa con madera o acero, incluyendo paredes, pisos y techos.

Paso 5: Instalaciones: Realizar las instalaciones eléctricas, de plomería, y de calefacción/ventilación.

Paso 6: Cerramiento: Colocar el techo, ventanas y puertas.

Paso 7: Acabados interiores y exteriores: Incluir aislamiento, yeso, pintura, pisos, azulejos, etc.

Paso 8: Inspecciones y ajustes: Realizar inspecciones necesarias y ajustes finales.

Paso 9: Mudanza: Tras la finalización y aprobación, mudarse a la nueva casa.

Algoritmo para preparar café

Paso 1: Colocar una taza debajo de la salida del café.

Paso 2: Añadir agua al depósito de la cafetera.

Paso 3: Colocar un filtro en el compartimento correspondiente.

Paso 4: Añadir café molido al filtro.

Paso 5: Encender la cafetera.

Paso 6: Esperar a que el café se filtre y caiga en la taza.

Paso 7: Apagar la cafetera una vez terminado.

Paso 8: Servir el café y disfrutar.

# data[].attributes.body
Entender el problema

Antes de intentar resolver un problema, es crucial comprenderlo completamente. ¿Cuál es el objetivo? ¿Qué se busca resolver?

Diseñar un plan

Una vez que se entiende el problema, el siguiente paso es elaborar un plan de acción. Esto puede incluir la identificación de los pasos necesarios para alcanzar la solución.

Dividir el problema

Si el problema es complejo, dividirlo en subproblemas más pequeños y manejables puede ser útil.

Ejecutar el plan

Implementar los pasos o algoritmos diseñados para resolver el problema o sus subcomponentes.

Revisar y depurar

Después de implementar una solución, es importante revisarla y probarla para asegurarse de que resuelve el problema efectivamente. Si hay errores o no funciona como se esperaba, es necesario identificar dónde está el problema y corregirlo.

Optimizar y aprender

Una vez que se ha encontrado una solución, se puede buscar maneras de optimizarla o hacerla más eficiente. También es importante reflexionar sobre el proceso de resolución y aprender de cualquier error para aplicar esos conocimientos en el futuro.

# data[].attributes.body
Es la parte del desarrollo web o de aplicaciones que se encarga de la interfaz y la experiencia de usuario. Es todo lo que los usuarios finales ven y con lo que interactúan en la web o en una aplicación móvil. El objetivo del desarrollo frontend es presentar la información de manera clara, atractiva y accesible. Para ello, se utilizan diferentes tecnologías y herramientas.

# data[].attributes.body
Es la parte o rama del desarrollo web encargada de que toda la lógica de una página funcione; consiste en el conjunto de acciones que pasan dentro de una web, pero que no podemos ver.

# data[].attributes.body
El backend de una aplicación o sitio web está compuesto por varios componentes que trabajan en conjunto para proporcionar la funcionalidad necesaria y respaldar la operación del sistema. A continuación, se describen algunos de los componentes típicos del backend:

Servidores del backend

Los servidores son componentes físicos o virtuales que ejecutan el software del backend y responden a las solicitudes del frontend y los clientes. Pueden incluir servidores web, servidores de aplicaciones y servidores de base de datos, entre otros.

Base de datos

La base de datos es donde se almacena la información crítica de la aplicación, como datos de usuarios, productos, transacciones, registros y más. Los sistemas de gestión de bases de datos (DBMS) como MySQL, PostgreSQL, MongoDB, o SQL Server se utilizan para administrar y consultar los datos.

Caché

La caché se utiliza para almacenar temporalmente datos o respuestas a fin de acelerar el acceso a la información. Esto reduce la carga en la base de datos y mejora el rendimiento de la aplicación.

Sistema de autenticación y autorización

Estos sistemas gestionan la identificación y la validación de usuarios, así como la autorización para acceder a determinados recursos y realizar acciones específicas en la aplicación.

Sistema de gestión de errores y registros

El backend debe ser capaz de detectar, registrar y gestionar errores, lo que facilita la resolución de problemas y el mantenimiento de la aplicación.

# data[].attributes.body
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 “:=".

Cabe destacar que la asignación es una operación reversible, lo que significa que se pueden asignar diferentes valores a una misma variable en distintos momentos del programa. De este modo, las variables pueden almacenar diferentes valores en función de las operaciones que se realicen en el programa.

# data[].attributes.body
Los lenguajes algorítmicos constituyen una herramienta expresiva con una libertad y flexibilidad próxima a la de los naturales y con el rigor de los de programación. En realidad, las únicas  restricciones que deberían imponerse a estos lenguajes proceden de las características que tienen los algoritmos: expresar sus acciones (que deben realizar y cuándo) con la precisión necesaria, y que estas acciones sean deterministas.

Por consiguiente, todo lenguaje algorítmico debe poseer mecanismos con que expresar las acciones así como el orden en que han de llevarse a cabo. Las acciones, se expresan mediante instrucciones (también llamadas órdenes o sentencias).

Los diagramas de flujo constituyen uno de los lenguajes algor´ıtmicos que mayor difusión han alcanzado, aunque su uso est´a menguado drásticamente en los últimos años en favor de otros métodos más apropiados desde el punto de vista formativo.6 Entre ellos, debe citarse el pseudoc´odigo, que aportar´a valiosas ideas para la adquisición de un buen estilo de programaci´on y, en definitiva, para aprender cómo enfocar la resolución de problemas complicados. Seguidamente, describimos el algoritmo de la suma lenta mediante seudocódigo:

Sean a, b ∈ Z Leer a y b

Mientras a 6= 0,

hacer ½ a ← a − 1 b ← b + 1

Escribir b

# data[].attributes.body
Escritura: Es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programación utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

Impresión: La impresión en programación es una técnica fundamental que le permite a los desarrolladores visualizar y depurar su código. Aunque pueda parecer una acción simple, imprimir resultados en la consola es esencial para comprender cómo funciona un programa y detectar posibles errores.

Almacenamiento:El almacenamiento de datos consiste en la conservación de información empleando una tecnología específicamente desarrollada para mantener los datos y que se encuentren accesibles siempre que sean necesarios. El almacenamiento de datos se refiere al uso de medios de grabación para conservar los datos utilizando PC y otros dispositivos. Las formas más frecuentes de almacenamiento de datos son el almacenamiento de archivos, el almacenamiento en bloque y el almacenamiento de objetos, cada uno de los cuales resulta adecuado para un fin diferente.

# data[].attributes.body
Es un tipo de prueba algorítmica que consiste en la validación y verificación del algoritmo a través de la ejecución de las sentencias que lo componen (proceso) para determinar sus resultados (salida) a partir de un conjunto inicial determinado de elementos (entrada).

Programas:

Kinsta APM

WebLOAD

Apache JMeter

LoadNinja

Loadero

SmartMeter.io

StormForge

LoadView

NeoLoad

LoadUI Pro

# data[].attributes.body
Tamaño de navegación. No solo es importante para la usabilidad, sino también de cara a mejorar la experiencia de usuario. En este tipo de diseño los menús de navegación se adaptan para ser accesibles y fáciles de utilizar en pantallas de cualquier tamaño. Botones de menú desplegables, iconos intuitivos y una disposición lógica facilitan la exploración, independientemente de la pantalla en la que se visual

●      Formato de visualización. El formato o tamaño de visualización implica la adaptación dinámica de la interfaz según el dispositivo. Desde una pantalla expansiva de escritorio hasta la modesta dimensión de un smartphone, el diseño responsive garantiza que los elementos visuales se escalen, es decir, se reorganicen de manera inteligente para aprovechar al máximo el espacio disponible.

# data[].attributes.body
●      Contenidos en texto. En un responsive design, el texto se ajusta fluidamente para garantizar una legibilidad óptima. Esto implica cambiar el tamaño de la fuente y la disposición del texto para adaptarse al dispositivo sin por ello sacrificar claridad ni coherencia.

●      Contenidos visuales. Las imágenes y otros elementos visuales son tan poderosos que aportan vida y atractivo a un sitio web. Dichas imágenes deben adaptarse para mantener la coherencia estética y la carga rápida en diferentes dispositivos.

# data[].attributes.body
●      Contenidos visuales. Las imágenes y otros elementos visuales son tan poderosos que aportan vida y atractivo a un sitio web. Dichas imágenes deben adaptarse para mantener la coherencia estética y la carga rápida en diferentes dispositivos.

●      Marca o logo. Consiste en la facilidad con la que se puede identificar a la marca, independientemente del dispositivo. Y es que los logotipos también deben adaptarse al tamaño de la pantalla sin perder su impacto visual para así reforzar la confianza con el internauta.

# data[].attributes.body
Adaptación a Diferentes Dispositivos y Tamaños de Pantalla

Uno de los aspectos más destacados del diseño web responsive es su capacidad para adaptarse a una amplia variedad de dispositivos y tamaños de pantalla. Esto se logra mediante la reorganización de elementos y la optimización de imágenes y medios para asegurarse de que el contenido se vea bien y se ajuste a la pantalla, sin importar si el usuario está en una computadora de escritorio de gran tamaño o en un smartphone de pantalla pequeña.

Flexibilidad en la Disposición de Elementos

El diseño web responsive no se trata solo de redimensionar elementos, sino también de reorganizarlos según sea necesario.

Uso de Imágenes y Medios Flexibles

Las imágenes y los medios desempeñan un papel crucial en el diseño web responsive. La optimización de imágenes y medios para diferentes dispositivos es esencial para garantizar que el tiempo de carga sea rápido y que la experiencia del usuario sea fluida

# data[].attributes.body
Las DICS (Dato, Información, Conocimiento y Sabiduría) representan una progresión que describe cómo se transforma la información en algo cada vez más significativo y útil. Aquí tienes una descripción de cada uno y cómo se relacionan:

Dato: Un dato es una unidad básica de información que describe una entidad, una relación entre entidades o alguna otra cosa, pero sin contexto adicional. Por ejemplo, "10 de julio de 2024" es un dato.

Información: La información es un conjunto de datos organizados y procesados que tienen un significado y contexto específicos. Por ejemplo, "La reunión está programada para el 10 de julio de 2024 a las 15:00 horas" es información, ya que proporciona más contexto sobre el dato anterior.

# data[].attributes.body
Conocimiento: El conocimiento implica comprensión, experiencia y habilidades adquiridas a través del aprendizaje o la experiencia. Se deriva de la información y se utiliza para tomar decisiones o resolver problemas. Por ejemplo, saber cómo organizar y dirigir una reunión efectiva basándose en la información disponible.

Sabiduría: La sabiduría va más allá del conocimiento y se refiere a la capacidad de aplicar el conocimiento de manera juiciosa y prudente en situaciones prácticas. La sabiduría implica discernimiento y comprensión profunda de las cosas, y se adquiere a través de la reflexión y la experiencia a lo largo del tiempo.

# data[].attributes.body
software es un programa informático, esto es, un conjunto de instrucciones, algoritmos y partes visuales que nos permiten interactuar con un dispositivo electrónico de una forma sencilla. El software es un conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un Sistema Informático

# data[].attributes.body
Los softwares suelen contar con una serie de licencias atribuidas por el creador en los que se establece lo que puede hacer el cibernauta

# data[].attributes.body
·         Sistema operativo: tiene la función de manejar o administrar los recursos del hardware y aprobar diversos servicios a la programación.

·         Lenguaje de programación: podríamos definirlo como el prototipo de lenguaje o idioma formal, creado para solucionar los diversos procesos realizados por equipos computarizados.

·         Aplicación informática: es la adaptación informática o aplicación que le permite al usuario realizar todas las tareas que necesite de diferentes maneras.

·         Paquetes: agrupación de programas distribuidos de forma complementaria.

·         Drivers: facilita a los sistemas operativos conectarse con los diversos periféricos.

# data[].attributes.body
Los softwares de sistema son desarrollados para que el usuario y el programador se desvinculen de los detalles informáticos que utilice.

Los softwares de programación, por su parte, son el conjunto de herramientas a partir de las cuales un programador puede desarrollar programas informáticos utilizando alternativas diversas y lenguajes de programación.

Los softwares de aplicación, que le permiten al usuario realizar o cumplir tareas.

1.    Software de presentación

2. Navegadores web

3. Programas multimedia

4. Software educativo y de referencia

5. Software de gráficos

6. Software de hoja de cálculo

7. Software de base de datos

8. Software de procesamiento de textos

9. Software de simulación

# data[].attributes.body
Hablar de dispositivos de sotware en la actualidad es un tema complejo ya que hoy en dia tenemos paginas web en las que con solo dar un clic tenemos acceso a los sotware que queramos antes existían los famosos CDs en los cuales venían dicho sofware y solo bastaba con ingresarlo en nuestra computadora y este ejecutaría el programa hoy en dia podemos también descargarnos el software y guardarlo en un pendrive y asi posteriormente ejecutarlo cuando sea necesario Aun que como dije anterior mente cada vez mas los desarrolladores han optado por subir sus softwares a internet

# data[].attributes.body
En 1847 el matemático inglés George Boole definió  un tipo de álgebra en la que sólo podían adoptar dos valores, verdadero o falso. Estos valores se designan por  0 y 1. Estos símbolos no representan números si no dos tipos de estados diferentes dentro de un dispositivo, como puede ser encendido o apagado, abierto o cerrado etc.

# data[].attributes.body
Una variable lógica es una variable que sólo puede tener dos valores posibles de forma que un valor excluye al otro, es decir que si tiene un valor el otro no puede ser. Por ejemplo, sí o no o también 0 o 1. Imaginemos que A es una variable que almacena la respuesta a la pregunta ¿está encendida la bombilla? que sólo puede tener dos respuestas sí o no. Si es sí no puede ser no, si es no, no puede ser sí. Normalmente la variables lógicas se representan por 0 o 1 de forma numérica lo que conforma el sistema binario de numeración usado en sistemas digitales (dentro de los digitales están los computacionales).

# data[].attributes.body
Combinaciones de variables lógicas en frases como: algo será verdadero cuando "A" sea verdadera o 1 y "B" sea verdadera o falsa, nos lleva a afirmar que se crea una función lógica. Lo anterior se expresa booleanamente como S = A·B.

# data[].attributes.body
En la tabla de verdad se especifica caso por caso el comportamiento de la función. La tabla de verdad tiene dos partes: entrada y salida. La tabla de la verdad de la anterior función lógica S= A·B sólo será afirmativa en el caso de que lo sean simultáneamente las dos variables lógicas que la componen.

El número de filas que podemos obtener en una tabla de verdad depende del número de variables independientes de entrada a tener en cuenta. En el caso de ser tres variables independientes, 8 serían los resultados. El número de filas de la tabla de verdad responde a la ecuación 2n siendo n el número de las variables lógicas de entrada.

# data[].attributes.body
VARIBLES DE ENTRADA: A,B,C        N=3

2x2x2=8

# data[].attributes.body
https://www.santanderopenacademy.com/es/blog/que-es-software-y-ejemplos.html

https://sdindustrial.com.mx/blog/definicion-de-software-y-para-que-sirve/

https://www.nextu.com/blog/que-es-software-de-aplicacion-rc22/

https://weblab.deusto.es/olarex/cd/UD/Puertas%20logicas_ES_final/bases_del_lgebra_de_boole.html

REFERENCIAS DE IMÁGENES:
https://images.app.goo.gl/Vbe3sBNrdsdZi1qF6

https://images.app.goo.gl/NdqYCnmJ1Y8PvrmPA

REFENCIA EXPLICACION Y DESARROLLO DE TABLA DE VERDAD

https://www.youtube.com/watch?v=evuHZth5slA&ab_channel=Pasosporingenier%C3%ADa

https://www.youtube.com/watch?v=CjX8q8lXWdg&ab_channel=Pasosporingenier%C3%ADa

# data[].attributes.body
A continuación, te presento cinco componentes clave relacionados con el frontend y sus características principales:

1. HTML (Lenguaje de Marcado de Hipertexto)

Característica Principal: Es el esqueleto de cualquier página web. Define la estructura y el contenido de la web mediante etiquetas y atributos. HTML5, la última versión, incorpora etiquetas semánticas que mejoran la accesibilidad y la comprensión del contenido por parte de buscadores y asistentes tecnológicos.

2. CSS (Hojas de Estilo en Cascada)

Característica Principal: Se encarga del diseño y la presentación visual de la página web. Permite definir colores, tipografías, espaciados, y más, para todos los elementos HTML. CSS3, su última versión, soporta animaciones, transiciones, y diseños responsivos que se adaptan a diferentes tamaños de pantalla.

3. JavaScript

Característica Principal: Es el lenguaje de programación que permite agregar interactividad y dinamismo a las páginas web. Puede manipular los elementos HTML y CSS, permitiendo crear efectos visuales, calcular datos en el navegador, validar formularios antes de enviarlos al servidor, y mucho más.

4. Frameworks y Bibliotecas de JavaScript

Característica Principal: Proporcionan herramientas y componentes reutilizables para agilizar el desarrollo de aplicaciones web. Ejemplos populares incluyen React, Angular, y Vue.js. Cada uno tiene su propio enfoque y filosofía, pero todos buscan facilitar la creación de interfaces de usuario dinámicas y responsivas.

5. Herramientas de Desarrollo y Construcción

Característica Principal: Incluyen preprocesadores de CSS como Sass o LESS, que permiten escribir CSS de manera más eficiente mediante variables, mixins y funciones; herramientas de automatización y construcción como Webpack y Gulp, que optimizan el código para producción minimizándolo y agrupándolo; y sistemas de control de versiones como Git, que permiten llevar un registro de los cambios en el código y colaborar en equipos de desarrollo.

Estos componentes son fundamentales en el desarrollo frontend, cada uno aportando su parte para crear experiencias web ricas, interactivas y accesibles para los usuarios.

# data[].attributes.body
Laura Rodriguez Avendaño

Kevin Alzate Cadavid

Dahyana Betancur Alvarez

Harold Arbelaez Duque