[BDN-040] Scala

[BDN-040] Scala

Este curso ofrece una formación integral, desde los fundamentos hasta técnicas avanzadas. Incluye clases, objetos, estructuras de control, y funciones; además, abarca temas como herencia, patrones, colecciones, manejo de XML, diseño modular, DSLs, y patrones de diseño en Scala. Ideal para desarrollar aplicaciones robustas y eficientes.

Duración:                     25 horas

Perfil:                            Avanzado/Experto

Dirigido a

Este curso está diseñado para desarrolladores de software, programadores interesados en aprender Scala, y profesionales que buscan mejorar sus habilidades en programación funcional y orientada a objetos.

Requisitos previos 

Los alumnos necesitarán tener conocimientos de programación orientada a objetos y Java.

Objetivos

  • Dominar los fundamentos del lenguaje Scala: clases, objetos, funciones y cierres.

  • Aplicar técnicas avanzadas como herencia, programación modular, patrones de diseño y DSLs.

  • Trabajar con colecciones, listas, XML y herramientas de construcción.

  • Integrar Scala con Java y desarrollar aplicaciones modernas.

  • Comprender conceptos avanzados como recursión de cola, continuaciones y parámetros implícitos.

 

Contenido

  1. Introducción a Scala

    1. Configuración del entorno y primeros pasos en Scala

    2. Conceptos básicos del lenguaje

  2. Clases, Objetos y Tipos

    1. Declaración de clases y objetos

    2. Uso y creación de tipos en Scala

  3. Estructuras de Control

    1. Condicionales, bucles y manejo de flujos de ejecución

  4. Funciones y Cierres

    1. Creación y uso de funciones

    2. Concepto y aplicación de cierres

  5. Composición y Herencia

    1. Diseño de jerarquías de clases

    2. Principios de herencia y polimorfismo

  6. Jerarquía de Scala y Métodos Universales

    1. Profundización en la jerarquía del lenguaje

    2. Uso de métodos comunes en Scala

  7. Traits (Tratos)

    1. Implementación y uso de traits para el diseño modular

  8. Paquetes e Importaciones

    1. Organización del código en paquetes

    2. Uso eficiente de importaciones

  9. Pruebas y Asertos

    1. Creación de pruebas unitarias

    2. Validación del código con asertos

  10. Clases de Caso y Patrones

    1. Uso de clases de caso y patrones de coincidencia

  11. Funciones Parciales y Actores

    1. Creación de funciones parciales

    2. Introducción al modelo de actores para concurrencia

  12. Colecciones y Listas

    1. Trabajo avanzado con listas y colecciones en Scala

  13. Integración con Java y Aplicaciones Web

    1. Interacción con código Java

    2. Construcción de aplicaciones web

  14. Desarrollo de Proyectos en Scala

    1. Aplicación práctica del lenguaje en un proyecto

  15. Estado de los Objetos y Parametrización de Tipos

    1. Gestión del estado mutable e inmutable

    2. Uso de tipos genéricos

  16. Miembros Abstractos y Conversión Implícita

    1. Declaración de miembros abstractos

    2. Uso de conversiones y parámetros implícitos

  17. Trabajo con XML

    1. Manipulación de datos XML en Scala

  18. Programación Modular y Autotipos

    1. Diseño modular y uso avanzado de tipos

  19. Extractores y Estilo Idiomático de Scala

    1. Uso de extractores para patrones

    2. Mejores prácticas de codificación en Scala

  20. Creación de DSLs

    1. Diseño y desarrollo de lenguajes específicos de dominio

  21. Patrones de Diseño en Scala

    1. Implementación de patrones clásicos adaptados a Scala

  22. Recursión de Cola y Continuaciones

    1. Optimización con recursión de cola

    2. Uso de continuaciones delimitadas y distribuidas

 

 

Documentación Recomendada

Data Engineering with Scala and Spark
Eric Tome, David Radford & Rupam Bhattacharjee
January 2024 | 300 pages

https://www.packtpub.com/en-us/product/data-engineering-with-scala-and-spark-9781804614327