José María Vegas Gertrudix
Datos técnicos
El objetivo de esta obra es que el lector adquiera los conocimientos y capacidades necesarias para la programación en JAVA.
De forma práctica y didáctica se explican los conceptos de la programación y el diseño orientado a objetos, explicando a continuación cómo se aplica un enfoque moderno en el estudio de las estructuras de datos y el diseño de algoritmos, utilizando métodos formales de
manera equilibrada a través de contratos materializados en aserciones,
sin olvidar las pruebas unitarias como el complemento necesario que son. Finalmente, se profundiza en los conceptos tanto de la programación funcional como de la programación concurrente, aprovechando
las construcciones actuales que presenta Java.
Accediendo a la ficha del libro en www.ra-ma.es podrás el código completo del proyecto Maven descrito en el libro.
ACERCA DEL AUTOR
PREFACIO
CAPÍTULO 1. PROGRAMACIÓN ORIENTADA A OBJETOS
1.1 TIPOS ABSTRACTOS DE DATOS, CLASES Y OBJETOS
1.2 LA ESTRUCTURA ESTÁTICA: LAS CLASES
1.3 LA ESTRUCTURA DINÁMICA: LOS OBJETOS
1.4 CARACTERÍSTICAS CONSTANTES Y GLOBALES
1.5 HERENCIA
1.6 POLIMORFISMO Y VINCULACIÓN DINÁMICA
1.7 INTERFACES
1.8 OBJECT: LA SUPERCLASE CÓSMICA
1.9 GESTIÓN DE EXCEPCIONES
1.10 ENUMERADOS
1.11 ARRAYS
1.12 CLASES INTERNAS
CAPÍTULO 2. PROGRAMACIÓN GENÉRICA
2.1 CLASES GENÉRICAS, MÉTODOS GENÉRICOS Y GENERICIDAD
RESTRINGIDA
2.2 EL BORRADO DE TIPOS Y CONSECUENCIAS
2.3 TIPOS COMODÍ
2.4 VARIANZA DE TIPOS
2.5 TIPOS MATERIALIZABLES Y CONTAMINACIÓN DEL MONTÍCULO
2.6 LA INTERFAZ COMPARABLE
CAPÍTULO 3. PROGRAMACIÓN POR CONTRATO
3.1 ASERCIONES
3.2 ROBUSTEZ.
3.3 PRUEBAS UNITARIAS
3.4 DISEÑO DE ALGORITMOS ITERATIVOS
3.5 DISEÑO DE ALGORITMOS RECURSIVOS
CAPÍTULO 4. ESTRUCTURAS DE DATOS
4.1 PILAS
4.2 COLAS
4.3 LISTAS.
4.4 COLAS DOBLES
4.5 CONJUNTOS
4.6 TABLAS
4.7 MULTICONJUNTOS
4.8 ARRAYS
4.9 TABLAS DE DISPERSIÓN
4.10 ÁRBOLES BINARIOS
4.11 ÁRBOLES BINARIOS DE BÚSQUEDA
CAPÍTULO 5. GRAFOS
5.1 CONCEPTO Y DEFINICIÓN
5.2 IMPLEMENTACIÓN
5.3 ALGORITMOS: RECORRIDO EN PROFUNDIDAD
5.4 ALGORITMOS: RECORRIDO EN ANCHURA
5.5 ALGORITMOS: DETERMINAR SI UN GRAFO NO DIRIGIDO ES CONEXO
5.6 ALGORITMOS: DETERMINAR COMPONENTES FUERTEMENTE
CONEXAS DE UN GRAFO DIRIGIDO
5.7 ALGORITMOS: ORDENACIÓN TOPOLÓGICA DE UN GRAFO DIRIGIDO ACÍCLICO
5.8 ESTRUCTURAS DE DATOS: COLAS DE PRIORIDAD Y MONTÍCULOS DE FIBONACCI
5.9 ESTRUCTURAS DE DATOS: PARTICIONES
5.10 MÉTODO ALGORÍTMICO VORAZ: CÁLCULO DE ÁRBOLES DE RECUBRIMIENTO DE COSTE MÍNIMO. ALGORITMOS DE PRIM Y KRUSKAL
5.11 MÉTODO ALGORÍTMICO VORAZ: CÁLCULO DE CAMINOS DE COSTE MÍNIMO. ALGORITMO DE DIJKSTRA
5.12 MÉTODO ALGORÍTMICO DE PROGRAMACIÓN DINÁMICA:
CÁLCULO DE CAMINOS DE COSTE MÍNIMO. ALGORITMO DE BELLMAN-FORD
5.13 MÉTODO ALGORÍTMICO DE PROGRAMACIÓN DINÁMICA:
CÁLCULO DE CAMINOS DE COSTE MÍNIMO.
DE FLOYD-WARSHALL
5.14 MÉTODO ALGORÍTMICO DE VUELTA ATRÁS: COLOREADO ALGORITMO DE UN GRAFO
5.15 MÉTODO ALGORÍTMICO DE VUELTA ATRÁS: CICLOS HAMILTONIANOS DE UN GRAFO
CAPÍTULO 6. PROGRAMACIÓN FUNCIONAL I.
6.1 INTERFACES FUNCIONALES Y EXPRESIONES LAMBDA
6.2 EVALUACIÓN PEREZOSA. EFECTOS
6.3 REFERENCIAS A MÉTODOS
6.4 OPTIMIZACIÓN AVANZADA DE LA RECURSIVIDAD
6.5 MÓNADAS. MANEJANDO DATOS OPCIONALES CON LA MÓNADA OPTION
6.6 MANEJANDO ERRORES Y EXCEPCIONES CON LAS MÓNADAS EITHER Y RESULT
6.7 PROCESAMIENTO DE DATOS CON LA MÓNADA STREAM
CAPÍTULO 7. PROGRAMACIÓN FUNCIONAL II
7.1 INMUTABILIDAD
7.2 ESTRUCTURAS DE DATOS FUNCIONALES: LISTAS INMUTABLES
7.3 ENTRADA/SALIDA EN UN ENTORNO FUNCIONAL
7.4 REFACTORIZACIÓN DE PROGRAMAS IMPERATIVOS:
LECTURA DE PROPIEDADES DE UN FICHERO
7.5 REFACTORIZACIÓN DE PROGRAMAS IMPERATIVOS: LECTURA DE XML
7.6 ESTRUCTURAS DE DATOS FUNCIONALES: ÁRBOLES BINARIOS DE BÚSQUEDA
7.7 ESTRUCTURAS DE DATOS FUNCIONALES: MAPAS
BIBLIOGRAFÍA
MATERIAL ADICIONAL
2024 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas