Skip to content

1. Inicio

Fran Ibarra edited this page Jan 11, 2024 · 4 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 técnicas básicas de mantención de código incluyendo guía de estilo, modularización y sistemas de manejo de versiones.
  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. Usar estructuras de datos básicas para resolver problemas de programación.
  4. Utilizar objetos iterables para resolver problemas de programación.
  5. Aplicar el concepto de threading para la modelación de problemas de colas.
  6. Construir interfaces gráficas funcionales utilizando bibliotecas apropiadas.
  7. Aplicar 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.

Contenidos

Fundamentos de programación

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

Herramientas de programación

  • Técnicas básicas de mantención de código
  • Concepto y uso 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 PyQt6
  • 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
    • 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