Sinopsi
Detalles
Índex
Indice
Índice
INTRODUCCIÓN.
Capítulo 1. El computador y el procesamiento de la información
1.1 Conceptos previos a la definición de información. La necesidad de un sistema
1.2 Concepto de información
1.2.1 Definición de C. E. Shannon (1948)
1.2.2 La teoría de la complejidad algorítmica. Definición de Kolmogorov - Solomonoff - Chaitin (1960-65)
1.3 Modelos de computación
1.3.1 Modelo de los autómatas regulares
1.3.2 Modelo de la máquina de Turing (1936)
1.4 Partes funcionales de un computador actual
1.4.1 Antecedentes del ordenador actual. Máquina de Von Newmann
1.4.2 Descripción modular del ordenador actual
1.4.3 El juego de instrucciones de la CPU
1.4.4 Descripción operacional
1.5 Ejercicios y cuestiones
Capítulo 2. Algoritmos y programas
2.1 Concepto de algoritmo. La tesis de Church-Turing
2.2 Concepto de programa y tipos de metodologías de programación
2.2.1 Definición
2.2.2 Concepto de programa estructurado y el paradigma de la programación estructurada
2.2.3 Otros paradigmas de programación
2.3 Estructura y representación de programas estructurados
2.3.1 Modularidad y uso de bibliotecas
2.3.2 Compilador e intérprete
2.4 Concepto de sistema operativo
2.5 El concepto de ingeniería del software
2.6 Ejercicios y cuestiones
Capítulo 3. Elementos básicos de la programación estructurada
3.1 Uso de datos en la programación. Atributos de los datos. Concepto de variable
3.1.1 Atributos de los datos
3.2 Las clases de datos
3.3 Tipos de datos simples
3.3.1 Tipo entero
3.3.2 Tipo de número en coma flotante
3.3.3 Tipo carácter
3.3.4 Tipo booleano
3.3.5 Tipo puntero
3.3.6 Tipo enumerado
3.4 Conversión de tipos
3.5 Expresiones, enunciados y sentencias de control de flujo
3.5.1 Expresiones y enunciados o sentencias atómicas.
3.5.2 Entrada/salida estándar en el lenguaje C
3.5.3 Sentencias de control de flujo de la información
3.6 Concepto de subprograma. Ámbito y paso de variables en subprogramas
3.6.1 Subprogramas, características básicas
3.6.2 Ámbito de las variables de los subprogramas
3.6.3 El modelo de ejecución de programas compilados. Relación con el concepto de encapsulamiento
3.6.4 Tipos de variables según su almacenamiento en el programa en ejecución
3.6.5 Encapsulamiento
3.7 Recursividad
3.8 Ejercicios y cuestiones
Capítulo 4. Representación de la información en el computador
4.1 Aritmética finita
4.2 Sistemas de numeración utilizados en computadoras. Sistemas base N
4.2.1 Sistema binario (Sistema base 2)
4.2.2 Sistema octal (Sistema base 8)
4.2.3 Sistema hexadecimal (Sistema base 16)
4.2.4 Cambios más comunes entre los sistemas anteriores
4.3 Expresión de números negativos en código binario. Complemento a 2
4.4 Representación de números en coma flotante (subconjunto de números reales)
4.4.1 Principios de la notación en coma flotante
4.5 Norma 754 de IEEE para representación de números en punto flotante
4.6 Algunas operaciones aritméticas en código binario
4.6.1 Operaciones unarias: Rotación y desplazamiento
4.6.2 Operaciones binarias
4.6.3 Cálculo de otros elementos matemáticos usuales
Capítulo 5. Tipos de datos compuestos. Estructuras de datos
5.1 Concepto de constructor de tipo
5.2 Tipos de datos compuestos homogéneos
5.2.1 Vectores (arrays)
5.2.2 Matrices multidimensionales
5.2.3 Cadenas de caracteres
5.3 Tipos de datos compuestos heterogéneos
5.3.1 Registros
5.4 El puntero como herramienta de construcción de estructuras de datos
5.5 Concepto de tipo abstracto de datos (TAD)
5.5.1 Definición de abstracción y breve caracterización de los TADs que se adaptan a ella
5.5.2 El TAD en la práctica
5.5.3 TAD como contenedor de datos
5.6 Ejercicios y cuestiones
Capítulo 6. Ficheros
6.1 Niveles lógico y físico de los ficheros
6.1.1 Nivel físico
6.1.2 Nivel lógico
6.2 Clasificaciones de los ficheros
6.3 Ficheros con operaciones de acceso secuencial
6.3.1 Ficheros de tipo texto sin formato
6.3.2 Ficheros de tipo texto con formato
6.3.3 Funciones de acceso
6.3.4 Ficheros binarios
6.4 Ficheros con operaciones de acceso directo
6.4.1 Operación de actualización de datos en ficheros con acceso directo
6.5 Algunos modelos reales de ficheros con estos accesos
6.5.1 Ficheros con índice (indexados)
6.5.2 Ficheros indexados con una función de dispersión
6.5.3 Acceso aleatorio usando una función de dispersión
6.6 Ejercicios y cuestiones
Capítulo 7. Introducción a la algoritmia
7.1 Concepto de coste computacional. Medida del coste temporal y espacial
7.1.1 Definición de coste temporal y espacial
7.1.2 Medida del coste temporal usando pasos
7.1.3 Medida de la complejidad temporal usando instrucciones críticas
7.1.4 El coste espacial
7.1.5 Concepto de talla de un algoritmo
7.1.6 Concepto de instancias de un problema. Coste medio, mejor caso y peor caso
7.1.7 Algunas notaciones asintóticas para definir costes. Las notaciones O, y
7.1.8 El compromiso entre el coste espacial y el coste temporal
7.2 Algoritmos de búsqueda
7.2.1 Búsqueda lineal
7.2.2 Búsqueda binaria
7.3 Algoritmos de ordenación
7.3.1 Algoritmos directos basados en comparaciones
7.3.2 Algoritmos rápidos basados en comparaciones
7.3.3 Ordenación con coste menor que n log n. Ordenación por distribución
7.4 Ejercicios y cuestiones
Capítulo 8. Breve referencia de algunas estrategias de programación
8.1 Divide y vencerás
8.2 Algoritmos voraces
8.3 Métodos de programación dinámica
8.4 Método de vuelta atrás (BackTracking)
8.5 Método de ramificación y poda
APÉNDICE
Aplicación del diseño descendente a un problema
BIBLIOGRAFÍA
ÍNDICE ANALÍTICO