# Temario

## Programación multiproceso:
 -	Ejecutables. Procesos. Servicios.
 -	Estados de un proceso.
 -	Hilos.
 -	Programación concurrente.
 -	Programación paralela y distribuida.
 -	Comunicación entre procesos.
 -	Gestión de procesos.
 -	Sincronización entre procesos.
 -	Programación de aplicaciones multiproceso.

## Programación multihilo:
 -	Recursos compartidos por los hilos.
 -	Estados de un hilo. Cambios de estado.
 -	Elementos relacionados con la programación de hilos. Librerías y clases.
 -	Gestión de hilos.
 -	Sincronización de hilos.
 -	Compartición de información entre hilos.
 -	Programación de aplicaciones multihilo.

## Programación de comunicaciones en red:
 -	Comunicación entre aplicaciones.
 -	Roles cliente y servidor.
 -	Elementos de programación de aplicaciones en red. Librerías.
 -	Sockets.
 -	Creación de sockets.
 -	Enlazado y establecimiento de conexiones.
 -	Utilización de sockets para la transmisión y recepción de información.
 -	Programación de aplicaciones cliente y servidor.
 -	Utilización de hilos en la programación de aplicaciones en red.

## Generación de servicios en red:
 -	Protocolos estándar de comunicación en red a nivel de aplicación (telnet, ftp, http, pop3, smtp, entre otros).
 -	Librerías de clases y componentes.
 -	Utilización de objetos predefinidos.
 -	Establecimiento y finalización de conexiones.
 -	Transmisión de información.
 -	Programación de aplicaciones cliente.
 - Programación de servidores.
 -	Implementación de comunicaciones simultáneas.

## Utilización de técnicas de programación segura:
 -	Prácticas de programación segura.
 -	Criptografía de clave pública y clave privada.
 -	Principales aplicaciones de la criptografía.
 -	Protocolos criptográficos.
 -	Política de seguridad.
 -	Programación de mecanismos de control de acceso.
 -	Encriptación de información.
 -	Protocolos seguros de comunicaciones.
 -	Programación de aplicaciones con comunicaciones seguras.

# Posibles proyectos final de ciclo

- Automatizar la Cadena de valor de una empresa
- Reconocimiento de matrículas

# Enunciado del proyecto de la asignatura

- Realizar un proyecto sobre la temática que más interese al alumno teniendo en cuenta:
  - Procesos
  - Programación concurrente, multihilo en conexiones simultaneas
  - Login (hash)
  - Sockets seguros (certificado)
  - Seguridad

# Situaciones
- Projects https://www.jesusninoc.com/projects/
- Send information between server and clients (read web, encrypt and create HTML)
https://www.jesusninoc.com/2014/04/16/send-information-between-server-and-clients-read-web-encrypt-and-create-html/
- Crear una web sencilla en Chrome mediante datos URIs desde PowerShell
https://www.jesusninoc.com/2018/08/17/crear-una-web-sencilla-en-chrome-mediante-datos-uris-desde-powershell/
- Crear una web sencilla en Chrome mediante datos URIs codificados en Base64 desde PowerShell
https://www.jesusninoc.com/2018/07/18/crear-una-web-sencilla-en-chrome-mediante-datos-uris-codificados-en-base64-desde-powershell/
- Convertir el fichero XML con la lista de series y películas de Netflix en un fichero JSON utilizando PHP desde PowerShell
https://www.jesusninoc.com/2018/07/19/convertir-el-fichero-xml-con-la-lista-de-series-y-peliculas-de-netflix-en-un-fichero-json-utilizando-php-desde-powershell/
- Mostrar y generar en tiempo real una tabla HTML con el valor nutricional (azúcares) de todos los fabricantes de un producto encontrado en la tienda online de un supermercado en PowerShell
https://www.jesusninoc.com/2018/07/18/mostrar-y-generar-en-tiempo-real-una-tabla-html-con-el-valor-nutricional-azucares-de-todos-los-fabricantes-de-un-producto-encontrado-en-la-tienda-online-de-un-supermercado-en-powershell/
