Curso de Java: Fundamentos de Programación

Bienvenido al Curso de Fundamentos de Programación con Java. Está pensado para personas que nunca han programado y cubre el temario completo de una asignatura de programación de primer curso: el módulo de Programación de los ciclos formativos (DAM y DAW) y las asignaturas de Fundamentos de Programación y Programación Orientada a Objetos de los grados universitarios de Informática.

💡 Consejo: Cuando termines este curso, continúa con el Curso de Java Avanzado: programación funcional, concurrencia, bases de datos con JDBC e Hibernate, y aplicaciones con Spring Boot.

¿Qué vas a aprender?

Al finalizar este curso serás capaz de:

  • Comprender cómo funciona un ordenador al ejecutar un programa y qué son la JVM, el JDK y el bytecode
  • Resolver problemas diseñando algoritmos con pseudocódigo y diagramas de flujo
  • Escribir programas en Java con variables, operadores, entrada/salida, condicionales y bucles
  • Descomponer problemas en métodos y aplicar la recursividad
  • Trabajar con arrays, matrices y algoritmos clásicos de búsqueda y ordenación
  • Manipular cadenas de texto
  • Programar orientado a objetos: clases, objetos, encapsulación, herencia, polimorfismo, clases abstractas e interfaces
  • Usar enumeraciones, records, clases selladas y pattern matching
  • Gestionar errores con excepciones
  • Almacenar datos en colecciones (listas, conjuntos y mapas) con genéricos
  • Leer y escribir ficheros
  • Representar tus diseños con diagramas de clases UML
  • Probar tu código con JUnit y depurarlo con el IDE
  • Escribir código limpio, documentarlo y versionarlo con Git
  • Desarrollar una aplicación completa de principio a fin

Versión del curso

El curso utiliza Java 25, la versión con soporte a largo plazo (LTS) actual. Incluye las novedades que simplifican el aprendizaje, como los ficheros fuente compactos con void main() y la clase IO, sin olvidar la forma clásica de escribir programas que encontrarás en el código profesional.

Estructura del curso

El curso se divide en 22 módulos agrupados en cuatro bloques:

Bloque 1: Introducción a la programación (Módulos 00-04)

Módulo Tema Descripción
00 Introducción a la programación y a Java Qué es programar, lenguajes, compilación e interpretación, historia de Java, JVM, JDK y JRE
01 Entorno de desarrollo Instalación del JDK 25, IntelliJ IDEA, VS Code, JShell, primer programa y estructura de un proyecto
02 Algoritmos, pseudocódigo y diagramas de flujo Resolución de problemas, diseño de algoritmos, pseudocódigo, diagramas de flujo y trazas
03 Variables, tipos de datos y operadores Tipos primitivos, variables, constantes, var, conversiones, operadores y expresiones
04 Entrada y salida por consola System.out, printf, la clase IO, Scanner y validación de la entrada

Bloque 2: Programación estructurada (Módulos 05-09)

Módulo Tema Descripción
05 Estructuras condicionales if, else, switch clásico y expresiones switch, operador ternario
06 Estructuras repetitivas while, do-while, for, bucles anidados, contadores, acumuladores y banderas
07 Métodos y recursividad Definición, parámetros, retorno, ámbito, sobrecarga, paso por valor y recursividad
08 Arrays y algoritmos Arrays unidimensionales y bidimensionales, búsqueda lineal y binaria, ordenación
09 Cadenas de caracteres String, StringBuilder, métodos, comparación, text blocks y expresiones regulares básicas

Bloque 3: Programación orientada a objetos (Módulos 10-16)

Módulo Tema Descripción
10 Clases y objetos Paradigma orientado a objetos, clases, atributos, métodos, constructores, this y memoria
11 Encapsulación, miembros estáticos y paquetes Modificadores de acceso, getters y setters, static, paquetes, clases envoltorio e inmutabilidad
12 Herencia extends, super, sobrescritura, Object, equals, hashCode, toString y final
13 Polimorfismo, clases abstractas e interfaces Polimorfismo, upcasting y downcasting, clases abstractas, interfaces y métodos por defecto
14 Enumeraciones, records y clases selladas enum, record, clases selladas, pattern matching con instanceof y switch
15 Excepciones Jerarquía, try/catch/finally, throw, throws, excepciones propias y try-with-resources
16 Colecciones y genéricos List, Set, Map, iteradores, Comparable, Comparator y clases genéricas

Bloque 4: Ficheros, diseño y calidad (Módulos 17-21)

Módulo Tema Descripción
17 Ficheros Rutas, java.nio.file, ficheros de texto, CSV, ficheros binarios y serialización
18 Diagramas UML de clases Clases, relaciones (asociación, agregación, composición, herencia, dependencia) y de UML a Java
19 Pruebas y depuración Depurador del IDE, pruebas unitarias con JUnit, casos de prueba y TDD
20 Buenas prácticas Convenciones, código limpio, Javadoc, refactorización y control de versiones con Git
21 Proyecto final Aplicación completa de consola con POO, colecciones, ficheros, excepciones y pruebas

Requisitos

  • Ningún conocimiento previo de programación
  • Un ordenador con Windows, macOS o Linux
  • Conexión a internet para descargar el JDK 25 y el IDE (se explica en el módulo 01)

Convenciones utilizadas

A lo largo del curso encontrarás estos indicadores:

📘 Concepto: Explicación teórica de un concepto importante.

💻 Ejemplo: Código de ejemplo que puedes copiar y ejecutar.

✏️ Ejercicio: Práctica para que resuelvas por tu cuenta.

⚠️ Importante: Información crucial que debes recordar.

💡 Consejo: Trucos y buenas prácticas profesionales.


Table of contents