Emagister S.L. (responsable) tratará tus datos personales con la finalidad de gestionar el envío de solicitudes de información y comunicaciones promocionales de formación con tu consentimiento. Ejerce tus derechos de acceso, supresión, rectificación, limitación, portabilidad y otros, según se indica en nuestra política de privacidad.
Objetivos
Conocer la programación general y las bases de programación orientada a objetos. Utilizar la sintaxis del lenguaje Python para diseñar programas sencillos. Utilizar la gramática, estructura de datos, algoritmos, para una correcta organización del código. Trabajar con librerías estándar, externas y frameworks. Realizar conexiones con bases de datos. Manipular estructuras de datos y archivos. Trabajar en programación de sistema, en red. Implementar proyectos como programación web, desarrollo de juegos.
A quién va dirigido
A todos los interesados en desarrollarse en el mundo de la programación y el mundo digital
Requisitos
No es necesario cumplir con requisitos previos para realizar esta formación
Temario completo de este curso
Módulo I. Fundamentos de programación en Python
Tema 1. Introducción a Python
Tipos de datos básicos de Python
Variables en Python
Constantes en Python
Tema 2. Operadores en Python
Asignación
Aritméticos
Lógicos
Tema 3. Tipos de datos avanzados
Listas de Python
Tuplas en Python
Diccionarios en Python
Sets en Python
Tema 4. Entrada y salida
Entrada de datos por teclado
Salida de datos por pantalla
Tema 5. Control de flujo: estructuras de decisión y repetición
Condicionales en Python (if / else)
Bucles en Python (while / for)
Tema 6. Funciones
Concepto de las funciones en Python
Implementación de las funciones
Argumentos y parámetros
Funciones integradas de Python
Buenas prácticas con las funciones
Módulo II. Programación orientada a objetos (POO)
Tema 1. Metodología basada en objetos
Programación estructurada frente a POO
Tema 2. Clases, objetos, atributos y métodos
Definición de clases, objetos, métodos y atributos
Definición de constructores
Los cuatro principios de la POO
Tema 3. Practicando con clases y objetos
Tema 4. Herencia
Definición de herencia
Usos e implementación
Módulo III. POO y métodos aplicados
Tema 1. Otras herramientas de POO
Herencia múltiple
Polimorfismo
Tema 2. Métodos aplicados
Métodos aplicados a las cadenas (strings)
Métodos aplicados a las listas
Métodos aplicados a los conjuntos
Métodos aplicados a los diccionarios
Tema 3. Errores y excepciones
Errores
Excepciones
Tema 4. Datos temporales
Fechas y horas
Zonas horarias y sus problemáticas
Módulo IV. Manipulación de datos
Tema 1. Archivos
Manejo de archivos en Python
Tema 2. Excel y CSV
Procesamiento de XLS y CSV
Tema 3. JSON
Conceptos de JSON
JSON frente a XML
JSON minificado y JSON View
JSON en Python
Tema 4. Bases de datos (BBDD)
Conceptos de bases de datos
Almacenamiento y lenguaje SQL
Ejemplos y uso de SQLite3
Tema 5. Librerías especializadas en el manejo de datos
NumPy
Pandas
Otras librerías especializadas
Módulo V. Practicando se aprende
Tema 1. Práctica 1: creación de una aplicación web con Flask y base de datos SQLite3
Tema 2. Práctica 2: creación de una aplicación de escritorio con Tkinter y base de datos SQLite3
Especialización en Machine Learning
Módulo I. Introducción al machine learning
Tema 1. Introducción al big data y machine learning
Método científico
Introducción al big data y machine learning
Repaso de álgebra lineal
Tema 2. Entorno de trabajo: máquinas virtuales
Creación de una máquina virtual local
Tema 3. Jupyter
Tema 4. Librerías numéricas de Python
NumPy
Pandas
Matplotlib
Tema 5. Introducción a Scikit-learn
Módulo II. Aprendizaje supervisado
Tema 1. Regresión lineal
Regresión simple y multivariable
Entrenamiento
Tema 2. Optimización por descenso de gradiente
Convergencia y ratio de aprendizaje
Tema 3. Normalización
Técnicas y problemas asociados
Tema 4. Regularización
Desviación, varianza y función de coste regularizada
Tema 5. Validación cruzada
Subdivisión del conjunto de datos
Bootstrapping y K-fold
Tema 6. Teorema de Bayes
Tema 7. Clasificación por árboles de decisión
Variables objetivo categóricas y continuas
Splitting, pruning y limitaciones del tamaño del árbol
Tema 8. Regresión logística y clasificación
Clasificación binaria y multiclase
Función sigmoidea y de coste
Transformación de la hipótesis
Tema 9. Clasificación por SVM (Support Vector Machines)
Modelado de datos, kernels y landmarks
Sensibilidad, especificidad y parámetro de regularización
Tema 10. Introducción a las redes neuronales
Neuronas naturales y artificiales
Redes neuronales profundas
Módulo III. Aprendizaje no supervisado
Tema 1. Detección de anomalías
Anomalías y selección de características
Distribución normal o gaussiana
Tema 2. Agrupación (clustering)
Diferencias entre agrupación y clasificación
Algoritmo K-means y otros enfoques
Módulo IV. Aprendizaje reforzado
Tema 1. Optimización por aleatoriedad
Entrenamiento múltiple e implementación
Tema 2. Sistemas de recomendación
Regresión lineal aplicada a recomendaciones
Funciones de coste, algoritmos de entrenamiento y predicciones
Tema 3. Algoritmos genéticos
Evolución natural y del comportamiento
Algoritmos aplicados a la optimización
Módulo V. Desarrollo de sistemas de aprendizaje automático
Tema 1. Ingeniería de características (feature engineering)
Creación y representación de variables
Tema 2. Análisis de componentes principales (PCA)
Modelos y reducción de dimensionalidad
Tema 3. Ensamblajes
Composición de modelos, bagging y técnicas de ensamblaje
Tema 4. Planteamiento de sistemas de machine learning
Diseño e implementación a gran escala
Tema 5. Evaluación y mejora de modelos
Sobreajuste frente a desviación
Métricas de evaluación y clasificación
Tema 6. Operaciones en machine learning (MLOps)
MLOps, plataforma Kaggle y paralelización
Especialización en Deep Learning
Módulo I. Introducción al aprendizaje automático
Tema 1. Fundamentos básicos
Proceso de aprendizaje, tipos de modelos y algoritmos
Información de entrada, salida y aprendizaje
Tema 2. Preparación de datos y herramientas
Google Colaboratory: creación y uso de notebooks
Introducción a Scikit-learn
TensorFlow: instalación, operaciones básicas, matrices y gradientes
Módulo II. Introducción al aprendizaje profundo
Tema 1. Redes de neuronas profundas
Conceptos básicos, estructura y funciones de activación
Optimización de hiperparámetros
Tema 2. Clasificación
Clasificación binaria, multiclase y multietiqueta
Transferencia de aprendizaje (transfer learning)
Tema 3. Regresión
Construcción de redes para regresión
Regresión lineal simple y múltiple
Módulo III. Aprendizaje profundo mediante imágenes y sonidos
Tema 1. Redes de neuronas convolucionales (CNN)
Visión artificial, filtros y preparación de datos
Tema 2. Redes de neuronas residuales (ResNet)
Bloques residuales y transfer learning con ResNet
Tema 3. Redes de neuronas recurrentes (RNN)
Procesamiento del lenguaje natural (NLP)
Redes RNN y LSTM (Long Short-Term Memory)
Módulo IV. Aplicaciones del aprendizaje profundo
Tema 1. Redes generativas antagónicas (GAN)
Generador, discriminador y funciones de pérdida
Tema 2. Redes de neuronas basadas en refuerzo
Deep reinforcement learning y redes de refuerzo profundo
Aplicaciones en videojuegos (AlphaGo, AlphaStar)
Tema 3. Otras aplicaciones
Despliegue de modelos en dispositivos (TFLite, TensorFlow.js)
TensorFlow Extended
Especialización en Inteligencia Artificial
Módulo I. Adentrándose en la IA
Tema 1. Introducción a la Inteligencia Artificial
Conceptos, historia, sectores y tecnologías de la IA
Comparativa: IA frente a ML y DL
El Test de Turing y la noción de máquina inteligente
Tema 2. La IA, las búsquedas y los juegos
Búsqueda informada y no informada
Aplicación de la IA en juegos
Tema 3. Ciencia y minería de datos
El proceso de la ciencia de datos y data mining
Módulo II. El aprendizaje y sus librerías
Tema 1. El proceso de la ciencia de datos
Conjuntos de entrenamiento, prueba y validación
Overfitting, underfitting y matrices de confusión
Tema 2. Librerías de análisis de datos y machine learning
Pandas y Scikit-learn
Tema 3. Librerías avanzadas de Inteligencia Artificial
TensorFlow, Keras (ejemplo con CIFAR-10)
SHAP e interpretación de modelos
spaCy y procesamiento del lenguaje natural (NLP)
Módulo III. La plataforma Kaggle
Tema 1. Qué es Kaggle y sus proyectos
Tema 2. Proyecto práctico
Especialización en Internet de las Cosas (IoT): Gestión de Dispositivos
Módulo I. Introducción a IoT
Tema 1. Conceptos generales de IoT
Tema 2. Arquitectura típica de una solución IoT
Tema 3. Conceptos básicos de redes de sensores y actuadores
Tema 4. Sensores y actuadores comunes
Tema 5. Ejemplos de aplicaciones
Módulo II. Redes de comunicaciones para IoT
Tema 1. Comunicación alámbrica e inalámbrica
Tema 2. Redes inalámbricas de bajo consumo
Tema 3. Criterios de selección de tecnologías de comunicación
Tema 4. Protocolos de comunicaciones IoT (M2M, MQTT)
Módulo III. Conceptos generales de computación en la nube
Tema 1. Servicios principales disponibles en una plataforma cloud
Tema 2. Relación entre servicios
Tema 3. Modelo de precios y soporte
Tema 4. Almacenamiento de datos en la nube (tipos de BBDD)
Tema 5. Integración entre IoT Hub y BBDD Cloud
Módulo IV. Seguridad y privacidad en IoT
Tema 1. Conceptos generales de seguridad
Tema 2. Modelos de seguridad
Tema 3. Privacidad en sistemas distribuidos
Tema 4. Aplicación práctica de cifrado simétrico y asimétrico
Casos prácticos
Caso 1. Introducción al uso del microcontrolador ESP8266
Caso 2. Uso de sensores y actuadores con el ESP8266
Caso 3. Uso de la conexión WiFi del ESP8266
Caso 4. Uso del protocolo MQTT con el ESP8266
Caso 5. Securización de comunicaciones MQTT