Esta forma de programar tiene su base en la manera en que se conciben los elementos y procedimientos a tener en cuenta en el desarrollo. Esto se hace pensando en estos elementos y procedimientos como si de objetos “reales” se tratara, es decir, elementos independientes unos de otros, con sus propias características.
DESARROLLO DEL CURSO
Durante la realización del curso, el alumno irá asimilando el contenido teórico de las sesiones de estudio, encontrándose con una serie de ejercicios prácticos, cuestionarios y evaluaciones que pondrán a prueba lo aprendido y servirán para afianzar los conocimientos adquiridos.
TEMARIO
Introducción a Java
Conociendo Java.
Sintaxis básica de Java.
Introducción a Java (2)
• Sentencias de flujo de control
o if-else
o switch
o for
o while y do-while
o break y continue
o return
• Editor ortográfico avanzado: compilación.
• Casos prácticos
o Uso del if...else
o Ejemplo de un switch
o Bucle for
o Bucle while
o Editor avanzado: Compilando
o Raíces de una ecuación
UML
• Modelo conceptual de UML
• Elementos (de Comportamiento, de Agrupación y de Anotación)
• Relaciones
• Diagramas
• Bibliografía UML
Orientación a objetos
• Introducción a la orientación a objetos
o Objetos
o Mensajes
o Clases
• Objetos en Java
o Destrucción de un objeto
• Clases en Java
o Declaración de una clase simple
o Constructores
o Métodos de clase
o Sobrecarga de métodos
o Control de acceso a los miembros de la clase
o Método main
o this
Orientación a objetos (2)
• Clases Java de utilidad
o Array
o Array(2)
o Clase String
o Clase String(2)
Características de la orientación a objetos
• Abstracción.
• Herencia.
o Subclases, superclases y herencia en Java
o La Clase Object
• Polimorfismo.
o Extensión de clases y sobrescribir de métodos
o Clases y métodos final
o Clases y métodos abstractos
• Ventajas de la orientación a objetos.
Estructuras de datos
• Introducción
o Interfaces
o Clases vs. Interfaces
• Listas
o Pilas
o Pilas / Pilas Arrays
o Pilas / Pilas Enlazadas
o Colas
Estructuras de datos
• Árboles
o Árboles binarios
• Grafos
o Clasificación de los grafos
o Implementación de los grafos
La eficiencia de los algoritmos
• Notación asintótica
o ¿Qué quiere decir T(n)?
o Notación O(n)
o Propiedades de la notación O(n)
• Reglas para el cálculo de la eficiencia
o Asignaciones y expresiones simples
o Secuencia de instrucciones
o Instrucciones condicionales
o Sentencias de iteración
o Llamadas a procedimientos
• Eficiencia en algoritmos recursivos
Divide y vencerás
• Características generales
• Ordenación
o Ordenación por mezcla (Mergesort)
o Ordenación rápida (Quicksort)
• Editor ortográfico avanzado: función ordenar
Algoritmos Voraces
• Características generales
• Problema de la mochila
• Árboles de recubrimiento mínimo
o Algoritmo de Kruskal
o Algoritmo de Prim
Exploración de árboles
• Recorrido de árboles
• Recorrido en profundidad
o Recorrido Preorden
o Recorrido Inorden
o Recorrido Portorden
• Recorrido en anchura
Backtracking
• Esquema general
• Ejemplo: búsqueda en un árbol binario
• Editor ortográfico avanzado: función verificar ortografía
Programación orientada a objetos avanzada
• Concepto de patrón de diseño
o De dónde surgen los patrones de diseño
o Ventajas de los patrones
• Patrones relacionados con la creación de objetos
o El patrón Factory (Generador)
o El patrón Abstract Factory (Generador abstracto)
o El patrón Singleton (Instancia única)
• Patrones estructurales
o El patrón Adapter (Adaptador)
o El patrón Bridge (Puente)
o El patrón Proxy (Apoderado)
Programación orientada a objetos avanzada (2)
• Patrones de comportamiento
o El patrón Command (Acción)
o El patron Iterator (Iterador)
o El patron Observer (Fisgón)
o El patrón Strategy (estrategia)
o El patrón Visitor (Visitante)
Anexo
• JavaDoc: Una herramienta de documentación
o ¿Cómo utilizamos JavaDoc?
o Una clase comentada
• Letras y dígitos Unicode
• Palabras clave en java