# 1º Trimestre ## Unidad 1. Refuerzo de [Java](https://www.youtube.com/watch?v=Mmmrp8PRLOo&t=60s) (Java reinforcement). 6 - Asociación de clases - [Herencia](https://www.youtube.com/watch?v=MG0hOuk6fqU) y [polimorfismo](https://www.youtube.com/watch?v=8HDLKH3KF2U) - Interfaces - Excepciones - Anotaciones - Uso de colecciones - Acceso a ficheros - Algunas novedades de Java 8 (funciones lambda, uso de streams, etc.) - Introducción a JavaFX para desarrollo de interfaces gráficas - [Algunos conceptos avanzados de JavaFX: diálogos, CSS, animaciones, múltiples vistas...](https://www.youtube.com/watch?v=FLkOX4Eez6o&list=PL6gx4Cwl9DGBzfXLWLSYVy8EbTdpGbUIG) ## Unidad 2. Programación concurrente (Concurrent programming). 4 - Elementos de la programación concurrente. - Hilos y procesos. Estados, características y diferencias - Gestión de procesos en Java. Operaciones con procesos - Gestión básica de hilos. Formas de crearlos y lanzarlos - Parada de hilos - Prioridades - Mecanismos de sincronización básicos - Otros aspectos avanzados: hilos demonio, mecanismos avanzados de sincronización, frameworks... - Uso de hilos en aplicaciones gráficas # 2º Trimestre ## Unidad 3. Desarrollo de servicios REST con Node.js (REST service development with Node.js). 4 - Introducción e instalación de Node.js - Instalación de módulos. El gestor de paquetes npm - Instalación de MongoDB y acceso al servidor desde Node.js - Desarrollo de servicios REST con Node y MongoDB ## Unidad 4. Acceso a servicios desde Java (Service access from Java). 4 - Llamada y uso de servicios web desde Java - Estructura de los comandos REST básicos - Autenticación y cifrado ## Unidad 5. Otras comunicaciones cliente-servidor (Other client-server communications). 2 - Sockets en Java. Uso básico - Sockets TCP vs Sockets UDP - Otros tipos de comunicación por sockets. Envíos multicast y de objetos complejos (serialización) - Java y FTP [planifica](https://github.com/manviny/PSP/blob/master/Planificaci%C3%B3n%20de%20procesos.md)