1.2 – Alcance del curso

Después de esa base inicial, el curso avanzará hacia la programación orientada a objetos, uno de los pilares fundamentales de Java. Aprenderemos a diseñar clases, crear objetos, aplicar encapsulación, trabajar con relaciones entre clases, usar herencia, polimorfismo, clases abstractas e interfaces. La idea no es solo aprender la sintaxis del lenguaje, sino entender cómo se piensa y se organiza una aplicación real.

En la parte final se introducen conceptos algo más avanzados relacionados con los tipos abstractos de datos, como pilas, colas, listas y una primera aproximación a los grafos. Estos contenidos servirán como puente hacia una comprensión más profunda de las estructuras que se utilizan en programación y prepararán el camino para cursos posteriores.

Este será el primero de tres grandes módulos. Una vez asentadas las bases de Java, continuaremos con el desarrollo de aplicaciones web mediante Java EE y, posteriormente, con Spring/Spring Boot, donde aplicaremos estos conocimientos en proyectos más completos y cercanos al desarrollo profesional.

Bloque 1 — Introducción al curso y entorno de trabajo

  1. Presentación del curso de programación con Java
  2. Qué es programar
  3. Qué es Java y para qué se utiliza
  4. Instalación del JDK
  5. Instalación de Eclipse
  6. Configuración inicial de Eclipse
  7. Creación del primer proyecto Java
  8. Estructura básica de un programa Java
  9. Primer programa: Hola Mundo
  10. Compilar, ejecutar y corregir errores básicos

Bloque 2 — Primeros conceptos de programación

  1. Algoritmos y pensamiento computacional
  2. Instrucciones y flujo de ejecución
  3. Datos, memoria y variables
  4. Tipos de datos primitivos en Java
  5. Constantes
  6. Conversión de tipos
  7. Entrada de datos por teclado con Scanner
  8. Salida de datos por consola
  9. Comentarios y buenas prácticas iniciales
  10. Errores comunes al empezar a programar

Bloque 3 — Operadores y expresiones

  1. Operadores aritméticos
  2. Operadores de asignación
  3. Operadores relacionales
  4. Operadores lógicos
  5. Incremento y decremento
  6. Prioridad de operadores
  7. Expresiones simples y compuestas
  8. Ejercicios básicos de cálculo
  9. Validación de expresiones
  10. Depuración básica en Eclipse

Bloque 4 — Estructuras condicionales

  1. Toma de decisiones en programación
  2. Condicional if
  3. Condicional if else
  4. Condicionales anidados
  5. Condiciones múltiples
  6. Operadores lógicos en condiciones
  7. Estructura switch
  8. Menús básicos con switch
  9. Validación de datos con condicionales
  10. Ejercicios prácticos de decisiones

Bloque 5 — Bucles y control de flujo

  1. Introducción a los bucles
  2. Bucle while
  3. Bucle do while
  4. Bucle for
  5. Contadores y acumuladores
  6. Bucles anidados
  7. Control de bucles con break
  8. Control de bucles con continue
  9. Validación repetitiva de datos
  10. Ejercicios prácticos con bucles

Bloque 6 — Métodos y organización del código

  1. Qué es un método
  2. Métodos sin parámetros y sin retorno
  3. Métodos con parámetros
  4. Métodos con valor de retorno
  5. Parámetros y argumentos
  6. Variables locales
  7. Alcance de las variables
  8. Sobrecarga de métodos
  9. Organización del código en métodos
  10. Ejercicios prácticos con métodos

Bloque 7 — Arrays y estructuras básicas de datos

  1. Introducción a los arrays
  2. Declaración y creación de arrays
  3. Recorrido de arrays
  4. Carga de datos en arrays
  5. Búsqueda de elementos
  6. Cálculos con arrays
  7. Arrays de cadenas de texto
  8. Arrays multidimensionales
  9. Matrices en Java
  10. Ejercicios prácticos con arrays y matrices

Bloque 8 — Cadenas de texto y clases básicas de Java

  1. La clase String
  2. Métodos principales de String
  3. Comparación de cadenas
  4. Conversión entre texto y números
  5. La clase Math
  6. Números aleatorios con Random
  7. Fechas básicas con Java
  8. Formateo básico de datos
  9. Uso de clases de utilidad
  10. Ejercicios prácticos con cadenas y utilidades

Bloque 9 — Introducción a la programación orientada a objetos

  1. Qué es la programación orientada a objetos
  2. Clases y objetos
  3. Atributos
  4. Métodos
  5. Creación de objetos
  6. Acceso a atributos y métodos
  7. Estado y comportamiento
  8. Diseño básico de clases
  9. Diagramas sencillos de clases
  10. Primeros ejercicios con objetos

Bloque 10 — Constructores, encapsulación y organización de clases

  1. Constructores
  2. Constructor por defecto
  3. Constructores con parámetros
  4. Sobrecarga de constructores
  5. Encapsulación
  6. Modificadores de acceso
  7. Métodos get y set
  8. Uso de this
  9. Separación de clases en archivos
  10. Ejercicios prácticos de encapsulación

Bloque 11 — Relaciones entre clases

  1. Objetos como atributos
  2. Asociación entre clases
  3. Composición
  4. Agregación
  5. Colecciones de objetos usando arrays
  6. Clases principales y clases auxiliares
  7. Diseño de pequeños modelos de datos
  8. Programas con varias clases
  9. Diagramas UML básicos
  10. Proyecto guiado con varias clases

Bloque 12 — Herencia y reutilización de código

  1. Introducción a la herencia
  2. Clases padre y clases hijas
  3. Uso de extends
  4. Herencia de atributos y métodos
  5. Sobrescritura de métodos
  6. Uso de super
  7. Constructores en herencia
  8. Jerarquías de clases
  9. Ventajas y límites de la herencia
  10. Ejercicios prácticos con herencia

Bloque 13 — Polimorfismo, clases abstractas e interfaces

  1. Introducción al polimorfismo
  2. Referencias de tipo padre
  3. Sobrescritura y comportamiento dinámico
  4. Conversión entre tipos de objetos
  5. Clases abstractas
  6. Métodos abstractos
  7. Interfaces
  8. Implementación de interfaces
  9. Diferencias entre clase abstracta e interfaz
  10. Ejercicios prácticos de polimorfismo

Bloque 14 — Gestión de errores y excepciones

  1. Errores de compilación
  2. Errores de ejecución
  3. Errores lógicos
  4. Introducción a las excepciones
  5. Bloque try catch
  6. Captura de varias excepciones
  7. Bloque finally
  8. Lanzamiento de excepciones
  9. Validación robusta de programas
  10. Ejercicios prácticos con excepciones

Bloque 15 — Colecciones básicas de Java

  1. Limitaciones de los arrays
  2. Introducción a las colecciones
  3. ArrayList
  4. Recorrido de colecciones
  5. Búsqueda en colecciones
  6. Eliminación de elementos
  7. Colecciones de objetos
  8. Ordenación básica
  9. Diferencias entre arrays y colecciones
  10. Ejercicios prácticos con ArrayList

Bloque 16 — Proyecto final del curso

  1. Planteamiento del proyecto final
  2. Análisis de requisitos
  3. Diseño de clases
  4. Creación del proyecto en Eclipse
  5. Desarrollo del modelo de datos
  6. Desarrollo de la lógica del programa
  7. Creación de menús por consola
  8. Validación de entradas
  9. Pruebas y corrección de errores
  10. Presentación del proyecto final

Bloque 17 — Introducción a los tipos abstractos de datos

  1. Qué es un tipo abstracto de datos
  2. Diferencia entre estructura lógica y estructura física
  3. Estructuras estáticas
  4. Estructuras dinámicas
  5. Pilas estáticas
  6. Pilas dinámicas
  7. Colas estáticas
  8. Colas dinámicas
  9. Listas enlazadas básicas
  10. Listas simplemente enlazadas
  11. Listas doblemente enlazadas
  12. Comparación entre arrays, listas, pilas y colas
  13. Introducción a los árboles
  14. Introducción a los grafos
  15. Representación básica de grafos
  16. Recorrido básico de grafos
  17. Ejercicios introductorios de tipos abstractos de datos