Skip to content
Hernan Valdivieso edited this page Dec 15, 2022 · 5 revisions

Información del curso

A lo largo del este curso, el alumno desarrollará técnicas para diseñar, implementar, ejecutar y evaluar herramientas de software que resuelvan problemas algorítmicos a partir de especificaciones detalladas. El alumno 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. Implementar estructuras de datos basadas en nodos, como listas ligadas, árboles, y grafos.
  9. Utilizar el concepto de serialización para construir codificadores y decodificadores.
  10. 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
  • Generadores
  • Funciones de mapeo, filtro y reducción
  • Manejo de Excepciones:
  • Tipos de excepciones
  • Control de excepciones
  • Estructuras de datos basadas en nodos:
  • Listas ligadas
  • Árboles
  • Grafos

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 PyQt5
  • I/O:
  • Manejo de bytes
  • Serialización binaria
  • Serialización en formato JSON
  • Networking:
  • Sockets
  • Modelo cliente-servidor
  • Paso de mensajes

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
Clone this wiki locally