1. Introducción a la programación.
1.1. Datos, algoritmos y programas.
1.1.1. Definición de algoritmo.
1.1.2. Datos.
1.1.3. Características de un programa.
1.2. Paradigmas de programación.
1.2.1. Programación imperativa.
1.2.2. Programación funcional.
1.2.3. Programación lógica.
1.2.4. Programación orientada a objetos.
1.3. Lenguajes de programación.
1.3.1. Historia de los lenguajes de programación.
1.3.2. Características de los lenguajes de programación.
1.4. Errores y calidad de los programas.
1.4.1. Diseño de un programa.
1.4.2. Diagramas de flujo.
1.4.3. Pseudocódigo.
1.5. Herramientas y entornos para el desarrollo de programas.
1.5.1. Entorno de desarrollo Eclipse.
1.6. Resumen.
2. Identificación de los elementos de un programa informático.
2.1. Estructura y bloques fundamentales de Java.
2.2. Caracteres en Java.
2.3. Tipos de datos en Java.
2.3.1. Primitivos.
2.3.2. Referenciados.
2.3.3. Enumerados.
2.4. Literales en Java.
2.4.1. Enteros.
2.4.2. Reales.
2.4.3. De un solo carácter.
2.4.4. De cadenas de caracteres.
2.5. Identificadores en Java.
2.6. Palabras reservadas en Java.
2.7. Comentarios en Java.
2.8. Variables. Declaración, inicialización y utilización. Almacenamiento en memoria.
2.9. Constantes en Java.
2.10. Conversiones de tipo. Implícitas y explicitas (casting) en Java.
2.10.1. Conversión implícita.
2.10.2. Conversión explícita.
2.11. Operadores y expresiones. Precedencia de operadores.
2.11.1. Aritméticos.
2.11.2. De relación.
2.11.3. Lógicos.
2.11.4. Unitarios.
2.11.5. A nivel de bits.
2.11.6. De asignación.
2.11.7. Condicional.
2.12. Prioridad y orden de evaluación.
2.13. Resumen.
3. Introducción a la orientación a objetos.
3.1. Un poco de historia.
3.2. Clases.
3.3. Objetos.
3.4. Principios básicos de la orientación a objetos.
3.4.1. Abstracción.
3.4.2. Encapsulamiento.
3.4.3. Modularidad.
3.4.4. Polimorfismo.
3.4.5. Herencia.
4. Desarrollo de clases.
4.1. Concepto de clase.
4.2. Estructura y miembros de una clase en Java.
4.3. Creación de atributos. Declaración e inicialización en Java.
4.4. Métodos en Java.
4.4.1. Métodos de instancia y de clase.
4.4.2. Cabecera y cuerpo. Signatura.
4.4.3. Métodos recursivos.
4.5. Sobrecarga de métodos en Java.
4.6. Creación de constructores en Java.
4.7. Control de acceso.
4.7.1. Librerías y paquetes de clases. Utilización y creación.
4.7.2. Especificadores de acceso Java.
4.7.3. Métodos accesores y mutadores.
4.8. Clases internas.
4.9. Utilización de clases.
4.10. Documentación sobre librerías y paquetes de clases.
5. Utilización de objetos.
5.1. Características de los objetos
5.2. Constructores.
5.3. Instanciación de objetos. Declaración y creación.
5.4. Comparación de objetos.
5.5. Utilización de métodos. Parámetros y valores de retorno.
5.5.1. Invocación de métodos, el método main.
5.5.2. Paso de parámetros. Paso por valor y paso por referencia.
5.5.3. Valor de retorno. La instrucción return.
5.6. Utilización de métodos estáticos.
5.7. Clases predefinidas.
5.7.1. Envoltorios y autoboxing.
5.8. Destrucción de objetos y liberación de memoria.
5.8.1. Finalizadores en Java.
6. Uso de estructuras de control.
6.1. Estructuras de selección en Java.
6.1.1. If.
6.1.2. If-Else.
6.1.3. If-Else if.
6.1.4. Operador condicional.
6.1.5. Switch.
6.2. Estructuras de repetición.
6.2.1. While.
6.2.2. Do-while.
6.2.3. For.
6.2.4. For-each.
6.3. Estructuras de salto.
6.3.1. Break.
6.3.2. Continue.
7. Control y manejo de excepciones.
7.1. Excepciones de Java.
7.2. Jerarquías de excepciones en Java.
7.3. Manejo de excepciones en Java.
7.3.1. Captura de excepciones.
7.3.2. Delegación de excepciones.
7.3.3. Definición de excepciones de usuario.
7.3.4. Lanzamiento de excepciones de usuario y redefinición.
7.4. Aserciones.
8. Utilización avanzada de clases.
8.1. Relaciones entre clases. Composición de clases.
8.2. Herencia. Concepto y tipos (simple y múltiple).
8.3. Superclases y subclases.
8.4. Constructores y herencia.
8.5. Conversiones de tipos entre objetos (casting).
8.5.1. Conversión ascendente.
8.5.2. Conversión descendente.
8.6. Sobreescritura de métodos.
8.7. Polimorfismo.
8.8. Clases y métodos abstractos y finales en Java.
8.8.1. Herencia forzada.
8.9. Interfaces. Clases abstractas vs. Interfaces en Java.
8.9.1. Jerarquía de interfaces.
8.10. Clases y tipos genéricos o parametrizados.
9. Aplicación de las estructuras de almacenamiento.
9.1. Arrays unidimensionales y multidimensionales en Java.
9.1.1. Declaración.
9.1.2. Creación de arrays unidimensionales y multidimensionales.
9.1.3. Inicialización.
9.1.4. Acceso a elementos.
9.1.5. Recorridos, búsquedas y ordenaciones.
9.2. Cadenas de caracteres en Java.
9.2.1. Clase String.
9.2.2. Clase Stringbuffer.
9.2.3. Clase StringTokenizer.
9.2.4. Operaciones. Acceso a elementos, conversiones, concatenación.
10. Colecciones de datos.
10.1. Uso de clases y métodos genéricos.
10.2. Operaciones con colecciones. Acceso a elementos y recorridos.
10.3. Tipos de colecciones en Java.
10.3.1. List.
10.3.2. Set.
10.3.3. Map.
11. Lectura y escritura de información.
11.1. Flujos o streams.
11.1.1. Tipos de flujos. Flujos de bytes y de caracteres.
11.1.2. Clases asociadas a las operaciones de gestión de ficheros.
11.1.3. Creación y eliminación de ficheros y directorios.
11.2. Entrada/salida estándar.
11.2.1. Entrada desde teclado.
11.2.2. Salida a pantalla.
11.3. Almacenamiento de información en ficheros.
11.3.1. Formas de acceso a un fichero.
11.3.2. Operaciones sobre ficheros.
11.3.3. Apertura y cierre de ficheros. Escritura y lectura de información en ficheros de texto.
11.3.4. Escritura y lectura de información en ficheros binarios.
11.3.5. Almacenamiento de objetos en ficheros. Persistencia. Serialización.
11.4. Interfaces gráficas de usuario simples. Concepto de evento. Creación de controladores de eventos.
12. Gestión de bases de datos relacionales.
12.1. Interfaces de programación de acceso a bases de datos.
12.2. Acceso a datos mediante JDBC.
12.2.1. Establecimiento de conexiones.
12.2.2. Ejecución de sentencias de manipulación de datos.
12.3. Ejecución de consultas sobre la base de datos.
12.4. Ejecución de sentencias de descripción de datos.
13. Mantenimiento de la persistencia de los objetos.
13.1. Bases de datos orientadas a objetos.
13.2. Características de las bases de datos orientadas a objetos.
13.3. El estándar ODMG. Tipos de datos objeto y colección.
13.3.1 El lenguaje de definición de objetos (ODL).
13.3.2 El lenguaje de consulta de objetos (OQL).
13.4. Instalación del gestor de bases de datos Neodatis object database.
13.5. Creación de bases de datos.
13.6. Mecanismos de consulta.
13.7. Recuperación, modificación y borrado de información.
13.8. Resumen glosario bibliografía enlaces de interés.