Programa
Máster Blockchain y Big Data
Universidad Complutense de Madrid
Bloque Big Data
Módulo I: Programación con Python
Introducción a la programación con Python y conceptos básicos: variables, instrucciones básicas, tipos de datos básicos y operaciones. Entrada y salida.
Módulo II: Fundamentos de Estadística
Diferenciación de Estadística Descriptiva e Inferencias estadísticas. Se describirán variables univariantes y bidimensionales, así como Variables aleatorias y modelos de distribución.
Módulo III: Programación con R
Fundamentos, estructuras de control y manejo de datos del lenguaje de programación R, muy útil en entornos como la minería de datos, estadística o matemáticas financieras.
Módulo IV: Minería de Datos y Modelización Predictiva
En este módulo de tratarán temas como la Integridad y depuración de datos, Regresión lineal, Regresión logística, Técnicas de reducción de la dimensionalidad, Análisis y predicción, etc.
Módulo V: Machine Learning e IA con Python y R
Se estudia la Introducción al Machine Learning y modelización predictiva avanzada, Redes neuronales y Deep Learning , Árboles de decisión , Random forest…
Módulo VI: Bases de Datos NoSQL
Cómo utilizar y modelar bases de datos NoSQL de almacenamiento estructurado. Diferentes modelos NoSQL, para qué sirven y cuándo utilizarlos. Instalación de modelos Mongo DB; el Find y sus funciones; proyección de campos en resultados; y operaciones CRUD.
Módulo VII: Bases de Datos SQL
Introducción a las bases de datos, el modelo entidad/relación en el diseño de las bases de datos, conceptos fundamentales del modelo Relacional, arquitectura de bases de datos…
Módulo VIII: Text Mining y Redes Sociales
Utilización de las principales Apis de acceso a datos en RRSS, análisis de textos y su tratamiento adecuado para un uso efectivo de estos factores. Realización de análisis de sentimiento en redes sociales y las distintas formas de representación de la información obtenida de este.
Módulo IX: Tecnologías de Big Data
Internet of Things as a Service, conectividad con fuentes de datos heterogéneas a través de borkers de mensajes y hubs con dispositivos, Spark, Hadoop y la visualización y análisis de información con Tableau
Módulo X: Deep Learning
Se lleva a cabo el proceso de Machine Learning usando una red neuronal artificial que se compone de un número de niveles jerárquicos. Este módulo del máster se separa en 4 bloques: Redes Neuronales, Redes Convolucionales, Redes Recurrentes y Autoencoders. Permite profundizar en la materia.
Módulo XI: Hadoop / Spark
El alumno podrá adquirir una visión panorámica de HDFS, su arquitectura y su utilización a través de línea de comandos. Es el sistema de almacenamiento fundamental en el mundo Big Data en la actualidad, por lo que es imprescindible que el alumno conozca y experimente su funcionamiento.
Bloque Blockchain
Módulo I: Introducción y aspectos técnicos de Blockchain Y DLTs
Qué es Blockchain
- Definición objetiva y formal
- Propósito general
- Origen y desarrollo, hasta hoy
Arquitectura de red
- Descentralizada Vs. centralizada
- Seguridad
- Escalabilidad
Principales métodos criptográficos y de seguridad aplicados (fundamentos)
- Función elíptica Weierstrass
- Esquema de cifra Base58
- Función hash RIPEMD-180
- Función hash SHA-256
Registro y tratamiento de la información
- Veracidad Vs. integridad de la información
- Sellado de tiempo
- Otros usos
Lenguajes en Bitcoin, Ethereum y otros derivados
- Bitcoin script
- Solidity
- Bytecode
Smart Contracts
- Propósito general
- Funcionamiento a grandes rasgos
- Casos de uso reales
Módulo II: Sistema GNU/Linux
Breve introducción al sistema operativo GNU/Linux
Acceso al sistema
- Protocolo SSH
- Protocolo SFTP
Manejo del sistema a través de la Shell o consola
- Comandos básicos
- Estructura inicial de directorios
- Gestión de usuarios y permisos
- Creación y edición de ficheros con “vi”
- Gestión de procesos
- Gestión de recursos
- Ejecución de programas ShellScript
- Entrada y salida standard de datos (StdIn/StdOut)
- Instalación de paquetes
Módulo III: Docker
- Qué es Docker
- Concepto de virtualización
- Creación de imágenes
- Creación de contenedores
- Recursos compartidos
- Puertos, directorios, sockets, etc
- Variables de entorno
- Acceso a un contenedor
- Conexión y visibilidad entre contenedores
- Gestión de servicios con Docker-Compose
- Crear un sistema WordPress completo con Docker-Compose
Módulo IV: Programación Blockchain y conectividad Big Data
- Introducción a la programación Blockchain
- Creación de APIs
- Implementación de algoritmo Proof of Work
- Inclusión de transacciones cifradas
- Repaso técnico al funcionamiento de los diferentes algoritmos de consenso de redes públicas y permisionadas
- Programación de blockchain con Python usando BigchainDB (MongoDB + Tendermint)
- Obtención DataSets de datos directamente de la Blockchain a través de una API de alto rendimiento con Tornado y Pandas
Módulo V: Desarrollo de Aplicaciones en Ethereum
- Introducción a Ethereum
- Aspectos técnicos
- Ecosistema y clientes
- Despliegue de redes
- Transacciones y contratos
- Aplicaciones fundamentales
- Desarrollo de contratos con Solidity
- Elementos básicos de un contrato
- Interacciones entre contratos
- Tipos complejos de datos
- Utilización de librerías
- Patrones de diseño
- Mecanismos de seguridad
- Introducción a Quorum
- Aspectos técnicos
- Mecanismos de Consenso
- Privacidad
- Transacciones y contratos privados
- Alastria y casos de uso
- Desarrollo de aplicación web3
Módulo VI: Desarrollo de Aplicaciones en Hyperledger
- Introducción a Hyperledger
- Background e introducción
- Blockchains Privadas (Permissioned Blockchain)
- Casos de uso
- Frameworks
- Módulos
- Arquitectura Hyperledger Fabric
- Transacciones
- Chaincodes
- Canales
- Consenso
- Hands-on con Hyperledger
- Hyperledger Composer
- IBM Blockchain as a service
- Despliegue de un entorno privado
- Apificiación de servicios
- Creación de esqueleto web en Angular