Diseño Efectivo de Programas Correctos

Autor: Jaime Alejandro Bohórquez Villamizar

ISBN: 9789588060569

Editorial: Editorial Escuela Colombiana de Ingenieria

Edición: 1

Páginas: 472

Formato: 24x17x2.5

Cant. tomos: 1

Año: 2006

Idioma: España

Origen: Colombia

Disponibilidad.: Disponible

Gs 612.000
Cantidad:
La programación y el diseño algorítmico son temas desafiantes y fascinantes, pero por lo general son tratados en un lenguaje muy riguroso. Esto no sucede en el presente libro, el cual se aparta del enfoque tradicional de la enseñanza de la programación, donde hay que adivinar el código de los programas para su posterior remiendo, mediante un proceso de ensayo y error lento y costoso. Dirigido a cualquier programador serio, estudiante de informática o participante asiduo de maratones de programación, con al menos un año de experiencia en programación de computadores, este libro se ocupa del diseño de programas correctos por construcción, es decir del diseño calculativo de programas a partir de sus especificaciones. Se utiliza una combinación balanceada de la teoría matemática, la práctica de la programación y el diseño de algorítmos correctos y eficientes, enfrentando algo que no se hace en la mayor parte de los textos de clase: mostrar porqué la matemática y la lógica son instrumentos esenciales para un buen programador. En esta obra se presentan principios explícitos subyacentes al desarrollo de los programas, que dirigen al lector por medio de numerosos ejemplos en los que se aplican dichos principios. Los algorítmos aparecen en seudocódigo para hacer el texto accesible a todo estudiante, independientemente del lenguaje de programación con el cual haya aprendido. El lector juicioso logrará una visión renovada de la teoría y la práctica del diseño de programas, al igual que la seguridad de desarrollar programas correctos y eficientes. En esta obra se presentan principios explícitos subyacentes al desarrollo de los programas, que dirigen al lector por medio de numerosos ejemplos en los que se aplican dichos principios. Los algorítmos aparecen en seudocódigo para hacer el texto accesible a todo estudiante, independientemente del lenguaje de programación con el cual haya aprendido. El lector juicioso logrará una visión renovada de la teoría y la práctica del diseño de programas, al igual que la seguridad de desarrollar programas correctos y eficientes. El lector juicioso logrará una visión renovada de la teoría y la práctica del diseño de programas, al igual que la seguridad de desarrollar programas correctos y eficientes.
Prefacio
0. Introducción
¿Por qué resolver problemas y programar son labores tan difíciles?
1. Cálculo lógico
Introducción
1.0 Operadores voléanos
1.1 Cuantificaciones
1.2 Conjuntos, secuencias y bolsas
1.3 Inducción y relaciones bien fundadas
1.4 Sobre el arte de demostrar teoremas
2. La programación como ciencia
2.0 La confiabilidad del software
2.1 El proceso creativo en programación
2.2 Qué, por qué y cómo
2.3 Notas bibliográficas
3. Corrección y derivación de programas iterativos
3.0 Triplas de Hoare
3.1 Corrección de programas iterativos
3.2 Tema de profundización: Equivalencia de programas y precondición más débil
3.3 Técnicas elementales de derivación formal de algoritmos
3.4 Diseño de programas iterativos
3.5 Logro parcial del objetivo
4. Corrección y derivación de programas recurrentes
4.0 Abstracción de procesos: Comandos modulares
4.1 Programas recurrentes
4.2 Derivación de programas recurrentes
5. Complejidad algorítmica
5.0 Problemas y soluciones algorítmicas
5.1 Complejidad de algoritmos
5.2 Órdenes de complejidad
5.3 Cálculos de complejidad de algoritmos
6. Ecuaciones de recurrencia
6.0 Definiciones básicas
6.1 Ejemplos de análisis de algoritmos
6.2 Ecuaciones de recurrencia
6.3 Ecuaciones de recurrencia lineales
6.4 Ecuaciones de recurrencia no lineales
7. Métodos generales de solución de problemas
7.0 Divide y vencerás
7.1 Técnicas voraces
7.2 Programación dinámica
7.3 Cambio de representación
7.4 Técnicas de aproximación
8. Divide y vencerás
8.0 Problema prototípico
8.1 Algoritmos de ordenamiento
8.2 Multiplicación de matrices
9. Técnicas avanzadas de derivación
9.0 Fortalecimiento de invariables
9.1 Balance de información
9.2 Modificación de arreglos
10. Búsqueda en estructuras lineales
10.0 Reducción de incertidumbre
10.1 Matrices generalizadas
10.2 Búsqueda binaria
10.3 Búsqueda por eliminación
10.4 Búsqueda inclinada como patrón algorítmico
11. Estructuras notables
11.0 Matrices generalizadas
11.1 Sistemas de equivalencia
11.2 Colas de prioridad
12. Programación dinámica
12.0 El problema del morral
12.1 Producto óptimo de matrices
12.2 Ruta óptima de un grafo
13. Métodos voraces
13.0 árboles generadores de costo mínimo
13.1 Características generales de los algoritmos voraces
13.2 El problema de los caminos más cortos
14. Exploración de grafos
14.0 El problema de búsqueda
14.1 Estrategas de exploración de grafos
14.2 Métodos de reintento
14.3 Patrón algorítmico de exploración
14.4 Ramificar y tantear
15. Intratabilidad
15.0 Complejidad computacional
15.1 Problemas NP-completos
15.2 Complejos pero?
Bibliografía

Índice temático
No hay enlaces disponible
Libros Relacionados