Curso de Certificación: Certified Professional Python Programmer Level 1

crd-image

Certificación

Este curso incluye:

  • Idioma - EspañolIdioma - Español
  • PC, tablet o móvilPC, tablet o móvil
  • Modo: Presencial/OnlineModo: 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