Objetos y clasesHerencia e interfacesProgramar con tiposDiseño
  1. 01
    Sesión A
    Presentación del curso · De C a Java
    Sesión B
    Objetos como estado + comportamiento
    Laboratorio
    Entorno de trabajo
  2. 02
    Sesión A
    Clases, campos, métodos y constructores
    Sesión B
    Referencias, heap, null · Identidad vs. igualdad
    Laboratorio
    Primeras clases y depuración
  3. 03
    Sesión A
    Encapsulamiento e invariantes
    Sesión B
    static, paquetes, inmutabilidad · record
    Laboratorio
    Unit tests con JUnit
    P0 entregaP1 publicadoApuntesDiapositivasCódigo
  4. 04
    Sesión A
    Arreglos y ArrayList
    Sesión B
    Diseñar con clases: responsabilidades, UML de clases
    Laboratorio
    Modelar un dominio con pruebas
  5. 05

    Herencia y la clase Object

    Herencia e interfaces
    Sesión A
    Herencia: extends, super, override
    Sesión B
    Object: toString, equals, hashCode
    Laboratorio
    Jerarquías y el contrato de equals
  6. 06
    Sesión A
    Polimorfismo y dynamic dispatch
    Sesión B
    Clases y métodos abstractos
    Laboratorio
    Polimorfismo en el proyecto
    P1 entregaP2 publicadoApuntesDiapositivasCódigo
  7. 07

    Interfaces y composición

    Herencia e interfaces
    Sesión A
    Interfaces
    Sesión B
    Composición vs. herencia · Sustitución de Liskov
    Laboratorio
    Interfaces y test doubles
  8. 08
    Sesión A
    Tipos sealed y pattern matching · Repaso
    Sesión B
    Examen parcial
    Laboratorio
    Repaso con ejercicios
  9. 09

    Excepciones y robustez

    Programar con tipos
    Sesión A
    Excepciones: lanzar, capturar, propagar
    Sesión B
    Robustez: checked vs. unchecked, try-with-resources, contratos
    Laboratorio
    Manejo de errores y pruebas de excepciones
    P2 entregaP3 publicadoApuntesDiapositivasCódigo
  10. 10

    Genéricos

    Programar con tipos
    Sesión A
    Genéricos: clases y métodos
    Sesión B
    Wildcards y type erasure
    Laboratorio
    Una colección genérica propia
  11. 11

    Colecciones

    Programar con tipos
    Sesión A
    Colecciones: List, Set, Map
    Sesión B
    Comparable, Comparator, iteradores
    Laboratorio
    Elegir la colección adecuada
  12. 12

    Lambdas y streams

    Programar con tipos
    Sesión A
    Lambdas, interfaces funcionales, referencias a métodos
    Sesión B
    Streams
    Laboratorio
    Reportes con streams
    P3 entregaP4 publicadoApuntesDiapositivasCódigo
  13. 13
    Sesión A
    Principios de diseño: cohesión, acoplamiento, SOLID
    Sesión B
    Refactoring guiado por pruebas
    Laboratorio
    Refactorizar el proyecto
  14. 14
    Sesión A
    Patrones de diseño I: Strategy, Observer
    Sesión B
    Patrones de diseño II: Factory, Composite
    Laboratorio
    Patrones en el proyecto
  15. 15
    Sesión A
    Archivos y E/S: java.nio.file, streams · Decorator
    Sesión B
    Persistencia simple: CSV y serialización
    Laboratorio
    Guardar y cargar el estado
    P4 entregaP5 publicadoApuntesDiapositivasCódigo
  16. 16
    Sesión A
    Programación orientada a eventos · Interfaces gráficas
    Sesión B
    Cierre: diseño de una aplicación completa · Repaso
    Laboratorio
    Presentación de proyectos