# Introducción a PSP

- Trabajos posibles para proyecto fin de ciclo
- ¿De qué va la asignatura?
- ¿Cómo voy a evaluar la asignatura?
- Se puede utilizar cualquier lenguaje
- Introduccion a OWASP Top Ten 2017
https://www.jesusninoc.com/2017/12/29/introduccion-a-owasp-top-ten-2017/
- Empezamos: programa, proceso, sistema operativo
- Compilar un programa en C mediante GCC (GNU Compiler Collection) desde PowerShell
https://www.jesusninoc.com/2018/06/23/compilar-un-programa-en-c-mediante-gcc-gnu-compiler-collection-desde-powershell/
- Compiling a C Program on the Bash in PowerShell
https://www.jesusninoc.com/2018/07/03/compiling-a-c-program-on-the-bash-in-powershell/
- Crear un proceso hijo mediante la función fork de Linux (en Bash y en PowerShell mediante WSL)
https://www.jesusninoc.com/2018/07/04/crear-un-proceso-hijo-mediante-la-funcion-fork-de-linux-en-bash-y-en-powershell-mediante-wsl/
- Crear un proceso en Java mirando el API
https://www.jesusninoc.com/2012/08/25/crear-un-proceso-utilizando-processbuilder/
- Java con ejemplos
https://www.jesusninoc.com/2017/12/01/curso-de-java-con-ejemplos/

# 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 asigantura

- 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
- 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/
- Convertir el fichero XML con la lista de radares de España en un fichero JSON utilizando PHP desde PowerShell
https://www.jesusninoc.com/2018/03/07/convertir-el-fichero-xml-con-la-lista-de-radares-de-espana-utilizando-php-desde-powershell/
