Certificación
Este curso incluye:
-
Idioma - Español
-
PC, tablet o móvil
-
Modo: Presencial/Online
-
Descripción curso
La certificación PCPP1 muestra que el individuo demuestra competencia en el uso avanzado de clases y características de POO presentes en el oído de la programación en Python; conoce, comprende e implementa las convenciones de codificación, las prácticas de diseño y los estándares para la escritura de código; sabe cómo crear una aplicación GUI utilizando las herramientas y conjuntos de herramientas más esenciales, las convenciones y los elementos de la programación basada en eventos; comprende los conceptos básicos de la programación de redes y qué formatos de datos se utilizan en la comunicación cliente-servidor, sabe cómo usar sockets y métodos HTTP, y es capaz de crear un cliente REST simple; sabe cómo usar algunos de los módulos más importantes de la biblioteca estándar de Python para el procesamiento de archivos y la interacción con el entorno de un programa.
PCPP1 - Certificación de programador profesional certificado de Python nivel 1 (Examen PCPP-32-10x) es una credencial profesional que mide la capacidad del candidato para realizar tareas de codificación relacionadas con la programación avanzada en el lenguaje Python y tecnologías relacionadas, nociones y técnicas avanzadas utilizadas en la programación orientada a objetos, el uso de módulos y paquetes seleccionados de la biblioteca estándar de Python, el diseño, la creación y la mejora de programas y aplicaciones utilizando los conceptos de GUI y programación de red, así como la adopción de las convenciones de codificación y las mejores prácticas para la escritura de código.
La certificación PCPP1 muestra que el individuo está familiarizado con los siguientes conceptos: uso avanzado de clases y modelado de problemas de la vida real en las categorías de POO (clases, instancias, atributos, métodos; datos de clase e instancia; operaciones superficiales y profundas; herencia y polimorfismo; sintaxis y decoradores de argumentos de función extendida; métodos estáticos y de clase; encapsulación de atributos; composición y herencia; excepciones avanzadas; copia de datos de objetos; serialización; metaclases), mejores prácticas y estandarización (PEP8, PEP 257, diseño de código, comentarios y docstrings, convenciones de nomenclatura, comillas de cadena y espacios en blanco, recomendaciones de programación), programación de GUI (eventos, widgets, geometría, herramientas y kits de herramientas, convenciones), los elementos de programación de red (sockets de red, comunicación cliente-servidor, archivos JSON y XML en comunicación de red, métodos HTTP, CRUD, construcción de un cliente REST simple) y procesamiento de archivos y comunicación con el entorno de un programa (Procesamiento de archivos: SQLite3, XML, CSV, logging y configparser; comunicación: OS, datetime, IO y time).
-
Temario curso
Sección 1: Programación Avanzada Orientada a Objetos
1.1 Comprender y explicar los términos básicos y los conceptos de programación utilizados en el paradigma OOP- terminología esencial: clase, instancia, objeto, atributo, método, tipo, instancia y variables de clase, superclases y subclases
- reflexión: isinstance(), issubclass()
- el método __init__()
- crear clases, métodos y variables de clase e instancia; métodos de llamada; Acceso a variables de clase e instancia
1.2 Realizar operaciones de sintaxis central de Python- expresiones de sintaxis del núcleo de Python - métodos mágicos: métodos de comparación (por ejemplo, __eq__ (self, other)), métodos numéricos (por ejemplo, __abs__ (self)), métodos de conversión de tipos (por ejemplo, __init__ (self)), introducción y retrospección de objetos (por ejemplo, __str__ (self), __instancecheck__ (self, object)), acceso a atributos de objetos (por ejemplo, __getattr__ (self, attribute)), acceso a contenedores (por ejemplo, __getitem__ (self, key))
- operar con métodos especiales
- extensión de implementaciones de clase para admitir operaciones de sintaxis principales adicionales
1.3 Comprender y utilizar los conceptos de herencia, polimorfismo y composición- jerarquías de clases
- herencia única frente a herencia múltiple
- orden de resolución de métodos (MRO)
- escritura de pato
- herencia vs. composición
- modelar problemas de la vida real utilizando las relaciones "es un" y "tiene un"
1.4 Comprender el concepto de sintaxis de argumentos de función extendida y demostrar competencia en el uso de decoradores- identificadores especiales: *args, **kwargs
- reenvío de argumentos a otras funciones
- manejo de parámetros de función
- closures
- decoradores de funciones y clases
- decorar funciones con clases
- crear decoradores y operar con ellos: implementar patrones de decoradores, argumentos de decoradores, envoltorios
- apilamiento de decoradores
- azúcar sintáctico
- métodos especiales: __call__, __init__
1.5 Diseñar, construir y usar métodos estáticos y de clase de Python- implementación de métodos estáticos y de clase
- métodos de clase frente a métodos estáticos
- el parámetro cls
- los decoradores @classmethod y @staticmethod
- métodos de clase: acceder y modificar el estado/métodos de una clase, crear objetos
1.6 Comprender y usar clases y métodos abstractos de Python- clases abstractas y métodos abstractos: definición, creación e implementación de clases abstractas y métodos abstractos
- anulación de métodos abstractos
- implementación de una herencia múltiple de clases abstractas
- impartir varias clases para niños
1.7 Comprender y utilizar el concepto de encapsulación de atributos- definición, significado, uso
- operar con los métodos getter, setter y deleter
1.8 Comprender y aplicar el concepto de subclases de clases integradas- heredar propiedades de clases integradas
- usar el concepto de subclase de los elementos integrados para ampliar las características de clase y modificar los métodos y atributos de clase
1.9 Demostrar competencia en las técnicas avanzadas para crear y servir excepciones- excepciones como objetos, atributos con nombre de objetos de excepción, términos y conceptos básicos
- excepciones encadenadas, los atributos __context__ y __cause__, excepciones encadenadas implícita y explícitamente
- análisis de objetos de rastreo de excepciones, el atributo __traceback__
- operar con diferentes tipos de excepciones
1.10 Demostrar competencia en la realización de operaciones de copia superficial y profunda- copias superficiales y profundas de objetos
- objeto: etiqueta vs. identidad vs. valor
- la función id() y el operando is
- operar con los métodos copy() y deepcopy()
1.11 Comprender y realizar la (des)serialización de objetos de Python- persistencia de objetos, serialización y deserialización: significado, propósito, uso
- serialización de objetos como un flujo de un solo byte: el módulo pickle, decapado de varios tipos de datos
- las funciones dumps() y loads()
- serialización de objetos mediante la implementación de un diccionario de serialización: el módulo shelve, modos de archivo, creación de objetos chelve
1.12 Comprender y explicar el concepto de metaprogramación- metaclases: significado, propósito, uso
- la metaclase type y la función type()
- atributos especiales: __name__, __class__, __bases__, __dict__
- operar con metaclases, variables de clase y métodos de clase
Sección 2: Convenciones de codificación, mejores prácticas y estandarización
2.1. Comprender y explicar el concepto de Propuestas de mejora de Python y la filosofía de Python- el concepto de PEP y las PEP seleccionadas: PEP 1, PEP 8, PEP 20, PEP 257
- PEP 1: diferentes tipos de PEP, formatos, propósito, pautas
- PEP 20: Filosofía de Python, sus principios rectores y diseño; la importación de esta instrucción y los aforismos PEP 20
2.2 Emplear las directrices, convenciones de codificación y mejores prácticas de PEP 8- comprobadores compatibles con PEP 8
- recomendaciones para el diseño del código: sangría, líneas de continuación, longitud máxima de línea, saltos de línea, líneas en blanco (espacios en blanco verticales)
- codificaciones predeterminadas
- importaciones de módulos
- recomendaciones para comillas de cadena, espacios en blanco y comas finales: cadenas entre comillas simples frente a cadenas entre comillas dobles, espacios en blanco en expresiones e instrucciones, espacios en blanco y comas finales
- recomendaciones para usar comentarios: Bloquear comentarios, comentarios en línea
- cadenas de documentación
- convenciones de nomenclatura: estilos de nomenclatura, recomendaciones
- recomendaciones de programación
2.3 Emplear las directrices, convenciones y mejores prácticas de PEP 257- docstrings: justificación, uso
- comentarios vs. docstrings
- PEP 484 y sugerencias de tipo
- creación, uso y acceso a docstrings
- cadenas de documentos de una línea frente a cadenas de documentos de varias líneas
- estándares de documentación, linters, fixers
Sección 3: Programación GUI
3.1 Comprender y explicar los conceptos básicos y la terminología relacionada con la programación GUI- GUI: significado, fundamento, términos básicos y definiciones
- programación visual: ejemplos, características básicas
- widgets/controles: términos básicos: ventanas, barras de título y título, botones, iconos, etiquetas, etc.
- programación clásica vs. programación basada en eventos
- eventos - términos básicos
- kits de herramientas de widgets/kits de herramientas de GUI
3.2 Operar con cadenas- importación de componentes de Tkinter
- creando la ventana principal de una aplicación: los métodos Tk(), mainloop() y title
- agregar widgets a la ventana: botones, etiquetas, marcos, el método place(), constructores de widgets, ubicación, coordenadas de pantalla, tamaño, etc.
- lanzamiento del controlador de eventos: controladores de eventos, definición y uso de devoluciones de llamada, el método destroy(), cuadros de diálogo
- dar forma a la ventana principal e interactuar con el usuario
- comprobación de la validez de la entrada del usuario y de los errores de gestión
- trabajar con Canvas y sus métodos
- mediante los widgets Entry, Radiobutton y Button
- gestión de widgets con los administradores de cuadrícula y lugares
- eventos de enlace mediante el método bind()
3.3 Demostrar competencia en el uso de widgets y el manejo de eventos- asentar widgets en el interior de la ventana, administradores de geometría
- widgets de coloración, modos de color: RGB, HEX
- manejo de eventos: escribir controladores de eventos y asignarlos a widgets
- programación basada en eventos: implementación de interfaces mediante eventos y devoluciones de llamada
- propiedades y métodos del widget
- variables: variables observables y adición de observadores a las variables
- uso de widgets seleccionados en los que se puede hacer clic y en los que no se puede hacer clic
- identificación y mantenimiento de eventos de GUI
Sección 4: Programación de Red
4.1 Comprender y explicar los conceptos básicos de la programación de redes- REST
- sockets de red
- dominios, direcciones, puertos, protocolos y servicios
- comunicación de red: comunicación orientada a la conexión frente a comunicación sin conexión, clientes y servidores
4.2 Demostrar competencia en el trabajo con sockets en Python- el módulo socket: Importación y creación de sockets
- conexión de sockets a servidores HTTP, cierre de conexiones con servidores
- enviando solicitudes a los servidores, el método send()
- al recibir respuestas de los servidores, el método recv()
- mecanismos de control de excepciones y tipos de excepciones
4.3 Emplear mecanismos de transferencia de datos para la comunicación en red- JSON: sintaxis, estructura, tipos de datos (números, cadenas, valores booleanos, nulos), datos compuestos (matrices y objetos), documentos JSON de muestra y sus anatomías
- el módulo json: serialización y deserialización, serialización de datos de Python / deserialización de JSON (los métodos dumps() y loads()), serialización y deserialización de objetos de Python
- XML: sintaxis, estructura, documentos xml de muestra y sus anatomías, DTD, XML como árbol
- procesamiento de archivos XML
4.4 Diseñar, desarrollar y mejorar un cliente REST simple- el módulo de solicitud
- diseñar, construir y usar entornos de prueba
- métodos HTTP: GET, POST, PUT, DELETE
- CRUD
- agregar y actualizar datos
- obtención y eliminación de datos de los servidores
- analizar la respuesta del servidor
- códigos de estado de respuesta
Sección 5: Procesamiento de archivos y comunicación con el entorno de un programa
5.1 Demostrar competencia en programación de bases de datos en Python- el módulo sqlite
- creación y cierre de la conexión a la base de datos mediante los métodos connect y close
- reación de tablas
- insertar, leer, actualizar y eliminar datos
- demarcación de transacciones
- métodos del cursor: execute, executemany, fetchone, fetchall
- creación de sentencias SQL básicas (SELECT, INSERT INTO, UPDATE, DELETE, etc.)
5.2 Demostrar competencia en el procesamiento de diferentes formatos de archivo en Python- análisis de documentos XML
- búsqueda de datos en documentos XML mediante los métodos find y findall
- compilación de documentos XML mediante la clase Element y la función SubElement
- leer y escribir datos CSV usando funciones y clases: reader, writer, DictReader, DictWriter
- registro de eventos en aplicaciones
- trabajar con diferentes niveles de registro
- uso de atributos LogRecord para crear formatos de registro
- creación de controladores y formateadores personalizados
- analizar y crear archivos de configuración mediante el objeto ConfigParser
- interpolación de valores en archivos .ini