Curso online
Este Curso de Python Avanzado te permitirá adquirir los
conocimientos y las competencias requeridas para desarrollar una carrera profesional exitosa en programación con este lenguaje.
La formación de SEAS está orientada a que des un paso más en tus conocimientos de Python y sus aplicaciones, estudiando funciones avanzadas de programación en este lenguaje como estructuras dinámicas de datos, programación del frontend
de aplicaciones web en Dash, bases de datos, programación del backend de aplicaciones web en Flask, etc.
Todos estos temas y contenidos suponen un avance importante en la programación moderna en lenguaje Python, y los aprenderás de la forma más sencilla realizando ejercicios prácticos aplicados a escenarios reales. La experiencia profesional de nuestro equipo docente, te dará una aproximación realista del uso de este lenguaje de programación.
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
1. Diseñar y desarrollar soluciones avanzadas de arquitectura orientada a objetos con estructuras dinámicas de datos. 2. Desarrollar tu pensamiento algorítmico y analítico. 3. Abarcar temas profundos del lenguaje y algoritmos incluyendo el uso de patrones de diseño. 4. Realizar Interfaces Gráficas de Usuario usando wxPython. 5. Trabajar con bases de datos. 6. Diseñar e implementar aplicaciones web fullstack.
Requisitos
Ser mayor de 18 años.
Temario completo de este curso
UNIDAD 1: TEMAS AVANZADOS DEL LENGUAJE PYTHON
1.1. Declaraciones de tipo en Python
1.1.1. Los tipos en Python
1.1.2. Ventajas de las declaraciones de tipo
1.2. Los parámetros args y kwargs
1.2.1. El parámetro args
1.2.2. El parámetro kwargs
1.2.3. Combinación de los parámetros *args y **kwargs
1.2.4. Uso de *args y **kwargs como parámetros reales en la
llamada a la función
1.3. Funciones lambda
1.3.1. Funciones lambda como parámetros
1.3.2. Ventajas e inconvenientes de las funciones lambda
1.4. Map, Filter y Reduce
1.4.1. Map
1.4.2. Filter
1.4.3. Reduce
1.5. Decoradores en Python
1.5.1. Creación de decoradores
1.5.2. Extensión de la funcionalidad con un decorador
1.5.3. Decoradores con parámetros
1.5.4. Metadecoradores
1.5.5. Argumentos por defecto en decoradores
1.6. Iteradores
1.6.1. Tipos de iteradores
1.6.2. Generadores
1.6.3. Ejemplos
1.7. Comprensiones en Python
1.8. Expresiones regulares
1.8.1. Patrones de expresiones regulares
1.8.2. Metacarácteres de patrones
1.8.3. Secuencias especiales
1.8.4. Conjuntos
1.8.5. El módulo re de Python
1.8.6. Funciones principales. Del módulo re
UNIDAD 2: ESTRUCTURAS DINÁMICAS DE DATOS
2.1. Las estructuras dinámicas de datos
2.2. La clase list de Python y las “listas enlazadas”
2.2.1. Inserción de nodos en una lista enlazada
2.2.2. Recorrido de una lista enlazada
2.2.3. Inserción en una lista enlazada
2.2.4. Eliminar un nodo de una lista
2.2.5. Listas FIFO
2.3. Listas doblemente enlazadas
2.4. Pilas y colas
2.4.1. Pilas
2.4.2. Colas
2.5. Árboles binarios
2.5.1. Crear el nodo raiz
2.5.2. Insertar en un árbol
2.5.3. Recorrido de un árbol
2.5.4. Búsqueda en árboles
2.6. Montículo (heap)
2.6.1. La librería HEAPQ
2.7. Grafos
2.7.1. Vértices de un grafo
2.7.2. Ramas de un grafo
2.7.3. Añadir un vértice
2.7.4. Añadir una rama
2.8. Gestión avanzada de contenedores en Python
2.9. Ejemplos con las librerías Collections, Queue y Heapq
2.9.1. Collections
2.9.2. Heapq
2.10. Cierres con estructuras dinámicas de datos
2.11. Patrones de diseño útiles con las estructuras dinámicas de datos
2.11.1. Patrón observador
2.11.2. Patrón iterador
2.11.3. Patrón decorador
UNIDAD 3: PRINCIPIOS BÁSICOS DE INTERNET Y LA WEB
3.1. Redes de ordenadores
3.2. Modelo de protocolos TCP/IP
3.2.1. Funcionamiento de una red
3.3. Internet y la Web
3.3.1. Direcciones de Internet
3.3.2. Localizador uniforme de recursos
3.4. Cliente-servidor en comunicaciones de red
3.4.1. Sistemas de comunicación cliente-servidor en red
3.4.2. Sockets
3.4.3. La librería socket
3.5. Lenguajes de marcado mediante etiquetas
3.5.1. XML
3.5.1.1. Tratamiento de archivos XML en Python
3.5.1.2. Árbol XML
3.5.2. HTML
3.6. Archivos json
3.6.1. El módulo JSON
3.7. Navegador Web, servidor Web, página Web, aplicación Web
3.7.1. Navegador Web
3.7.2. Servidor Web
3.7.3. Página Web
3.7.4. Aplicación Web
3.7.5. Diferencia entre página Web y aplicación Web
3.8. API Web (Servicio Web)
3.8.1. Diferencias del uso de sockets y API Web
3.8.2. Modelo cliente-servidor en las API Web
3.8.3. Derechos de uso de las API
3.9. Librería requests
3.9.1. Métodos del módulo requests
3.9.1.1. Método get()
3.9.1.2. El método post
3.9.1.3. Otros métodos del módulo requests
3.10. API REST
3.10.1. Uso de API REST
3.11. Servicios Web
3.11.1. Consulta con parámetros
3.11.2. Implementación de un servicio Web
3.12. FullStack
3.12.1. FrontEnd o lado del cliente
3.12.2. Marcos de javascript para FrontEnd
3.12.3. BackEnd o lado servidor
UNIDAD 4: PROGRAMACIÓN DE GUI PARA APLICACIONES DE
ESCRITORIO CON WXPYTHON
4.1. Introducción a la interfaz gráfica de usuario (GUI)
4.2. Librerías para programación de GUI bajo Python
4.3. Instalación de wxPython
4.4. Aplicación básica con wxPython
4.4.1. Extensión de la clase Frame
4.5. Jerarquía básica de clases en wxPython
4.5.1. La clase wx.App
4.5.2. La clase wx.Frame
4.5.3. Otras clases
4.5.4. Separación de las clases en módulos distintos
4.5.5. Los eventos
4.6. Controles (widgets)
4.6.1. Controles de texto
4.6.2. Añadir eventos
4.6.3. Otros controles de texto
4.6.4. Radiobox
4.6.5. Controles de listas
4.6.6. Combobox
4.6.7. Barras de desplazamiento
4.6.8. Gráficos con wxPython
4.6.9. Controles gráficos
4.7. Programación de barras de menús
4.7.1. La barra de menús en la librería wxPython
4.8. Diseño de una GUI para generación de etiquetas
UNIDAD 5: PROGRAMACIÓN DEL FRONTEND DE APLICACIONES
WEB EN DASH
5.1. Dash. Conceptos básicos
5.2. Paneles Web realizados con Dash
5.3. Creación de un panel
5.4. Instalación de Dash y configuración del entorno de trabajo
5.5. Composición de una aplicación Dash basada en el paradigma
Fullstack
5.6. Estructura de una aplicación Dash típica
5.6.1. Importación de módulos
5.6.2. Creación de un objeto aplicación Dash
5.7. Componentes de Dash
5.7.1. Componentes HTML
5.7.2. Componentes de entrada/salida de datos y estado (dcc)
5.7.3. El modulo Dash_bootstrap_components
5.7.4. El módulo plotly.Graph_objs
5.7.5. El módulo dependencies
5.7.6. Otros componentes de DCC
5.7.7. El componente input de DCC y de dependencies
5.8. Creación de dos páginas enlazadas
5.9. Creación de componentes Dash
5.9.1. La constante MATCH
5.9.2. Aplicaciones que hacen uso del componente
5.10. Despliegue de una aplicación Dash en un servidor
UNIDAD 6: BASES DE DATOS
6.1. Bases de datos
6.2. Arquitectura cliente-servidor en el contexto de bases de datos
6.3. Tipos de bases de datos
6.4. Bases de datos relacionales
6.4.1. Entidades y relaciones
6.4.2. Metadatos
6.4.3. Operaciones habituales con bases de datos
6.5. El lenguaje SQL
6.5.1. Tipos de datos en SQL
6.5.2. Creación de tablas
6.5.3. Programación en Python
6.5.4. El mapeo objeto-relacional
6.6. La base de datos SQLite
6.6.1. Programación de SQLite en Python
6.7. PYODBC
6.8. MySQL
6.8.1. Descarga de la base de datos MySQL
6.8.2. Instalación de MySQL
6.8.3. Creación de una base de datos vacía en SQL
6.8.4. Librerías de MYySQL en Python
6.8.5. Ejemplos de uso de PYMySQL
6.8.6. Creación de tablas
6.8.7. Programación de MySQL en Python con MySQL-
Connector-Python
6.8.8. Operaciones CRUD
6.9. PostgreSQL.
6.9.1. Descarga e instalación
6.9.2. Librerías de PostgreSQL en Python
6.9.3. Creación de tablas con psycopg2
6.9.4. Operaciones CRUD con psycopg2
6.10. Bases de datos NoSQL
6.10.1. MongoDB
6.10.2. Descarga e instalación de MongoDB
6.10.3. Estructura de datos de MongoDB
6.10.4. Instalación de la librería pymongo
6.10.5. Documentos BSON
6.10.6. Creación de documentos
6.10.7. Inserción de datos
6.10.8. Lectura de datos
6.10.9. Modificación de datos
6.10.10. Supresión de datos
6.10.11. Operadores
6.11. Seguridad
6.11.1. Protección contra inyección SQL
6.11.2. Autentificación
6.11.3. Encriptación de las contraseñas
6.12. Apéndice I
UNIDAD 7: PROGRAMACIÓN DEL BACKEND DE APLICACIONES
WEB EN FLASK
7.1. Introducción a Flask
7.2. Aplicaciones Web con Flask
7.3. Creación de una aplicación Web básica con Flask
7.3.1. Otros elementos de una aplicación Flask
7.4. Organización de una aplicación siguiendo el patrón modelo-vistacontrolador
7.4.1. Programación de la vista en Dash
7.5. Conexión de Flask con bases de datos
7.5.1. Conexión con la base de datos SQLite mediante módulos
de Flask
7.5.2. Conexión con la base de datos sqlite mediante módulos de
Flask
7.5.3. Conexión usando SQLAlchemy
7.6. Conexión de la base de datos SQLite con Dash
7.7. Desarrollo Fullstack
7.7.1. Desarrollo Fullstack con Dash y Flask
7.7.2. API REST con Flask en el backend y Dash en el frontend
7.8. Programación Fullstack: desarrollo frontend en Dash, backend API
REST en Flask con base de datos SQLite
7.9. El patrón modelo-vista-controlador en el desarrollo de
aplicaciones Fullstack
7.9.1. Model-View-Controller (MVC) en el Sistema de Gestión de
Contactos
7.9.2. Implementación
7.10. Implementación de mecanismos de seguridad