Guía de Introducción a la Informática: Conceptos básicos para Principiantes

Guía  de Introducción a la Informática: Conceptos básicos para Principiantes

1. Los Fundamentos de la Computación en

el Principio de la base de datos: una máquina que representa y opera sobre los datos. La comprensión de estos fundamentos y evita la ambigüedad, a lo largo de todos los proyectos de software o en el sistema.

  • La representación de datos: bits, bytes, palabras a los hechos. Conversión entre binario, decimal y hexadecimal.
  • La codificación de caracteres: ASCII, UTF-8, el impacto de la interoperabilidad de los sistemas.
  • La Lógica de boole: los operadores AND, OR, NOT; prueba de aptitud académica y las expresiones mínimas.
  • Las operaciones aritméticas básicas: suma, la resta, la multiplicación de desplazamiento; los conceptos de acarreo y desbordamiento.

Las salidas rápidas para trabajar con los algoritmos, cada uno la elección de la representación que tiene consecuencias directas en el rendimiento y consumo de memoria.

2. La arquitectura de Computadores: la CPU, la Memoria y el Canal

Me explico, como en la arquitectura de modificar el comportamiento de un producto de software. El ciclo de fetch-decode-execute de la administración y de la memoria de una jerarquía, cada uno tiene un papel fundamental en el rendimiento.

  • De la CPU y de los registradores: la función básica de recolección de las operaciones, el estado de resultados provisionales.
  • El canal y el paralelismo: fetch, decode, ejecutar, como la superposición de etapas en las que aumenta el rendimiento, y en el que surgen, en las dependencias de la información.
  • La memoria de una jerarquía: la caché L1/L2, memoria principal, o ” trade-off entre la latencia y el ancho de banda de coherencia.
  • Dirección y modo de empleo: conjunto de instrucciones que la codificación de los códigos, modos de addressing, y su impacto en la eficiencia del código generado.

La idea de la práctica: comprender donde está el cuello de botella se produce la asistencia en el diseño de algoritmos y estructuras de datos más eficiente del hardware disponible.

3. Algoritmos, Estructuras de Datos y a la Complejidad

de mi flujo de trabajo, la elección de los algoritmos y las estructuras que determinan el éxito de sus soluciones de software. La teoría de la complejidad de la guía las decisiones simples y fundamentales.

  • En la notación Big-o: el rendimiento assintótico, en el mejor/peor del caso, y de casos prácticos, a elegir de entre los algoritmos.
  • Las estructuras de datos: arreglos, listas enlazadas, árboles, juegos, ejemplo: cuando se utiliza cada uno?
  • Los Algoritmos tradicionales de búsqueda binaria (o(log n)), organización (quicksort, mergesort), gráficos (Dijkstra, SALIDA/DFS), y problemas de memoria.
  • Trade-offs: el coste de la memoria, frente al tiempo de ejecución, caché de usar, de diseño y de acceso secuencial.

El ejemplo de código correspondiente

// Algoritmo de Euclides para el gcd (el mayor divisor común
de tipo int y gcd(int a, int b) {
 while (b != 0) {
 int t = b;
 b = a % b;
 a = t;
 }
 return s;
}

4. Prácticas para el Desarrollo y la Ejecución de

Desde el concepto hasta la ejecución, en el camino de un ciclo práctico de desarrollo con un enfoque en la calidad, el funcionamiento y el mantenimiento del mismo.

  • El Ciclo de vida de software: requisitos, diseño, implementación, pruebas, entrega y mantenimiento.
  • La obtención y enlace: rutas de acceso entre el código fuente, los fabricantes, los enlaces estáticos/dinámicos, y la creación de los archivos binarios y eficientes.
  • Entorno de tiempo de ejecución: es el sistema operativo, las llamadas de sistema, de los temas de competencia básica.
  • (El Perfil y la puesta a punto) la Medición del rendimiento: segmentación, el análisis de los cuellos de botella y los cambios se basan en los datos reales.

Te gustó? Sigue explorando

Esta guía es sólo el comienzo. A continuación aparece una lista de lecturas complementarias que ayudan a consolidar lo que se ha visto y se mueven a un nivel más profundo: