Temario
Objetivo:
El curso le permitirá al participante conocer los conceptos básicos de la programación en Python3, aprendiendo de forma gradual y sistemática los conceptos fundamentales, la POO (Programación Orientada a Objetos), el desarrollo de aplicaciones gráficas, de consola y Web entre otros temas de mayor complejidad.
A quién va dirigido:
Dirigido a aquellos profesionales de la informática, ingenieros, estudiantes, profesores o personas que deseen conocer y dominar este lenguaje. Cubre un perímetro relativamente amplio, detalla todo el núcleo del lenguaje y del procesamiento de los datos y abre perspectivas importantes sobre todo lo que permite realizar Python (desde la creación de sitios web hasta el desarrollo de juegos, pasando por el diseño de una interfaz gráfica con Gtk).
Perfil del participante:
No se requieren conceptos previos de programación, ya que el curso esta diseñado para que el alumno pueda iniciarse en la programación desde cero.
TEMARIO
Introducción a Python
Filosofía
Gobierno
¿,Qué contiene Python?
Fases de ejecución de un programa Python
Instalar el entorno de desarrollo
Instalar Python
Instalar librerías externas
Instalar un IDE
Uso de la consola
Distribuir sus propias aplicaciones
Algoritmos básicos
Delimitadores
Instrucción
Una línea de código = una instrucción
Comentario
Una instrucción en varias líneas
Palabras clave
Palabras reservadas
Indentación
Símbolos
Operadores
Instrucciones
Definiciones
Instrucciones condicionales
Definición
Condición
Instrucción if
Instrucción elif
Instrucción else
Instrucción switch
Interrupciones
Profundizando en las condiciones
Rendimiento
Iteraciones
Instrucción for
Instrucción while
Diferencias entre for y while
Instrucción break
Instrucción return
Instrucción continue
Instrucción else
Generadores
Construcciones funcionales
Generadores
Recorrido de listas
Recorrido de conjuntos
Recorrido de diccionarios
Gestión de excepciones
Breve presentación de las excepciones
Elevar una excepción
¿,Por qué elevar una excepción?
Aserciones
Capturar una excepción
Manejar una excepción
Gestionar la salida del bloque de captura
Gestionar que no se produzcan excepciones
Uso y liberación de recursos
Otros
Gestionar imports
Compartir espacios de nombres
Funciones print, help, eval y exec
Declaraciones
Variables
Funciones
Clase
Módulo
Modelo de objetos
Todo es un objeto
Principios
Clases
Métodos
Herencia
Otras herramientas de la programación orientada a objetos
Tipos de datos y algoritmos aplicados
Números
Secuencias
Conjuntos
Cadenas de caracteres
Diccionarios
Booleanos
Datos temporales
Patrones de diseño
Definición
Creación
Estructuración
Comportamiento
ZCA
Manipulación de datos
Bases de datos
Presentación
Acceso a una base de datos relacional
Punto de entrada
MySQL
PostgreSQL
SQLite
Oracle
Uso de un ORM
¿,Qué es un ORM?
ORM propuestos por Python
SQLAlchemy
Otras bases de datos
CSV
NoSQL
Base de datos orientada a objetos: ZODB
Base de datos de tipo clave-valor: REDIS
Bases de datos orientadas a documentos: CouchDB y MongoDB
LDAP
Introducción
Instalación
Abrir una conexión a un servidor
Realizar una búsqueda
Síncrono vs asíncrono
Conexiones seguras
XML
XML y las tecnologías relacionadas
Validar un documento XML
Documento XML
Esquema DTD
Esquema XSD
Esquema RNG (RelaxNG)
Schematron
DOM
Lectura
Escritura
SAX
Soporte de SAX en lxml
API SAX ligera
XPath
XSLT
Herramientas de manipulación de datos
Encriptar datos
Generar números aleatorios
Expresiones regulares
Trabajar con medios gráficos
Imágenes
Representación informática de una imagen
Presentación de Pillow
Formatos de imágenes matriciales
Recuperar la información de una imagen
Operaciones de conjunto sobre una imagen
Trabajar con capas o con píxeles
Generación de contenido
PDF
Presentación
Bajo nivel
Librería de datos
Canvas
Alto nivel
Estilos
Flujo de datos
Creación de un elemento visual
Plantilla de página
Página que contiene varias zonas
OpenDocument
Instalación
OpenDocument Texto
OpenDocument Hoja de cálculo
Programación paralela
Terminología
Uso de una tarea
Gestión de una tarea
Gestión de varias tareas
Resolución de problemáticas asociadas
Sincronización
Sincronización condicional
Semáforo
Uso de procesos
Gestión de un proceso
Gestión de varios procesos
Resolución de problemáticas asociadas
Comunicación interproceso
Compartir datos entre procesos
Oportunidad de utilizar los procesos
Demonio
Ejecución asíncrona
Programación de sistema y de red
Introducción
Escribir scripts de sistema
Gestión de archivos
Abrir un archivo
Leer un archivo
Escribir un archivo
Cambiar los permisos de un archivo
Cambiar de propietario o de grupo
Recuperar información relativa al archivo
Eliminar un archivo
Alternativas sencillas a los comandos bash habituales
Carpetas
Archivos
Módulo de alto nivel
Buscar un archivo
Ejecutar comandos externos
Ejecutar y mostrar el resultado
Ejecutar y recuperar el resultado
Herramientas
Diferencias entre archivos
Herramienta de salvaguarda
Leer un archivo de configuración
Pickle
Comprimir y descomprimir un archivo
Tarfile
Gzip
Bz2
Zipfile
Interfaz de alto nivel
Trabajar con argumentos
Presentación
Implementación
Programación de red
Escribir un servidor y un cliente
Utilizar un protocolo estándar
Servicios web
REST
SOAP
Pyro
Uso de hardware
Wake-on-LAN
Uso del puerto serie
Buenas prácticas
Desarrollo guiado por pruebas
Pruebas unitarias
Pruebas de no regresión
Pruebas funcionales
Pruebas de rendimiento
Integración continua
Programación dirigida por la documentación
Documentación interna
Documentación externa
Optimización
Medir la calidad
Herramientas de depuración
Herramientas de perfilado
Reglas de optimización
Introducción al desarrollo Web con Python
Descripción de la aplicación que se va a construir
Implementación
Aislar el entorno
Creación del proyecto
Configuración
Primeros ensayos
Realizar la aplicación
Modelos
Vistas
Controladores
Introducción al desarrollo de aplicaciones de consola con Python
Objetivo
Registrar el script
Creación de los datos
Parser de argumentos
Introducción al desarrollo de aplicaciones de escritorio con Pthon
Introducción a Gtk
Iniciar el programa
Interfaz gráfica con Glade
Crear el componente gráfico
Controlador
Otras librerías gráficas
Introducción al desarrollo de juegos con PyGame
Presentación de PyGame
Construcción de un juego Tetris
Presentación del juego
Presentación de la problemática
Creación de constantes