Skip to content

1. Inicio

Fran Ibarra edited this page Aug 6, 2024 · 5 revisions

Información del curso

A lo largo del este curso, el estudiante desarrollará técnicas para diseñar, implementar, ejecutar y evaluar herramientas de software que resuelvan problemas algorítmicos a partir de especificaciones detalladas. El estudiante será capaz de desarrollar construcciones avanzadas de programación orientada a objetos y estructuras de datos fundamentales, construir código robusto, construir interfaces gráficas, y utilizar conceptos como threading, serialización y paso de mensajes.

Objetivos

  1. Comprender y aplicar técnicas básicas de mantención de código incluyendo uso de guía de estilo, modularización y sistemas de manejo de versiones (GIT).

  2. Inferir un modelo de objetos para resolver problemas realistas e implementar esta solución usando técnicas de programación orientada a objetos.

  3. Utilizar y diseñar objetos iterables para resolver problemas de programación.

  4. Conocer el Paradigma de Programación Funcional a través de las herramientas de Python.

  5. Comprender y aplicar el concepto de threading para la modelación de problemas de concurrencia.

  6. Construir interfaces gráficas funcionales utilizando módulos apropiados.

  7. Utilizar las formas de manejo de excepciones en un programa, para construir código robusto.

  8. Utilizar el concepto de serialización para construir codificadores y decodificadores.

  9. Utilizar el concepto de paso de mensajes para construir una aplicación distribuida básica.

  10. Conocer diferentes herramientas, prácticas y/o algoritmos actuales en el contexto de desarrollo de software.

Contenidos

Fundamentos de programación

  • Estructuras de datos básicas:
    • Tuplas
    • Named tuples
    • Stacks
    • Colas
    • Diccionarios
    • Sets
    • Empaquetado y desempaquetado de datos.
  • Programación Orientada a Objetos:
    • Objetos
    • Herencia
    • Herencia múltiple
    • Polimorfismo
    • Clases Abstractas
  • Iterables:
    • Objetos iterables
    • Listas ligadas
    • Generadores
    • Funciones de mapeo, filtro y reducción
  • Manejo de Excepciones:
    • Tipos de excepciones
    • Levantamiento y control de excepciones

Herramientas de programación

  • Técnicas básicas de mantención de código:
    • Concepto y uso de herramientas de sistemas de manejo de versiones.
    • Uso de guías de estilo
    • Modularización
  • Threading:
    • Concepto de pseudo-paralelismo
    • Creación y sincronización de threads
    • Concurrencia
  • Interfaces Gráficas:
    • Introducción a las interfaces gráficas usando PyQt5.
    • Uso de señales para la comunicación backend y frontend.
  • I/O:
    • Manejo de bytes
    • Serialización binaria
    • Serialización en formato JSON
  • Networking:
    • Sockets
    • Modelo cliente-servidor
    • Paso de mensajes
  • Aplicaciones en Python:
    • Web Services
    • Consumo y generación de una API REST.
    • Expresiones Regulares

Bibliografía

Este curso cuenta con un libro oficial titulado Advanced Programming in Python, que se puede comprar a través de Amazon.

Información adicional acerca del libro:

  • Autores: Karim Pichara & Christian Pieringer
  • Idioma: inglés
  • Formato: paperback de 392 páginas
  • ISBN-10: 1548000892
  • ISBN-13: 978-1548000899