IF0100 - Lenguaje de Programación OO II

Programación Orientada a Objetos con Python y FastAPI

Periodo 2026-1 | Universidad Autónoma Latinoamericana

Nota: Este curso ha sido actualizado al stack Python 3.11+ / FastAPI / SQLAlchemy (Semestre 2026-1).

Objetivos del Curso

Objetivo General

Desarrollar habilidades avanzadas en programación orientada a objetos utilizando Python como lenguaje principal, incorporando técnicas modernas de desarrollo de software como TDD, BDD y principios de Domain-Driven Design.

Objetivos Específicos

  • Comprender y aplicar los pilares de la POO: encapsulamiento, herencia, polimorfismo y abstracción
  • Dominar la sintaxis y características avanzadas de Python
  • Implementar pruebas automatizadas con TDD y BDD
  • Desarrollar APIs RESTful con FastAPI
  • Aplicar principios de arquitectura de software y Domain-Driven Design
  • Desarrollar un proyecto integrador aplicando todas las competencias

Metodología

Teoría

Sesiones presenciales con exposición de conceptos, ejemplos prácticos y discusión de casos de estudio.

Práctica

Laboratorios guiados con ejercicios progresivos para aplicar los conceptos aprendidos.

Colaboración

Trabajo en equipo con Pair Programming y Code Reviews.

Sistema de Evaluación

Estructura de Seguimientos

Primer Seguimiento (50%) - Límite: 27/03/2026 (antes de Semana Santa)

Segundo Seguimiento (80%) - Límite: 15/05/2026

Tercer Seguimiento (100%) - Límite: 28/05/2026

Seguimiento Evaluación Resultado de Aprendizaje Tipo Porcentaje Fecha
Primero (50%)
Límite: 27/03/2026
E1 Conoce los conceptos fundamentales de objetos clases Taller 15% 26/02/2026
E2 Técnicas de Desarrollo de software Laboratorio 15% 12/03/2026
E3 Desarrollo Web Prototipo 20% 26/03/2026
Segundo (80%)
Límite: 15/05/2026
E4 Construye sistemas con persistencia de datos en archivos planos Software 15% 23/04/2026
E5 Desarrolla sistemas con persistencia en bases de datos Software 15% 07/05/2026
Tercero (100%)
Límite: 28/05/2026
E6 Conoce e implementa las arquitectura de datos desconectados Proyecto 20% 28/05/2026
Total 100%

Evaluaciones Detalladas

Nota aprobatoria: 3.0 sobre 5.0. Se requiere aprobar por separado el proyecto integrador (mínimo 3.0) para aprobar el curso.

Contenido del Curso

Proyecto Integrador: TaskFlow

El proyecto integrador del curso es TaskFlow, un sistema de gestión de tareas desarrollado progresivamente a lo largo del semestre.

Características del Proyecto

  • API RESTful con FastAPI para gestión de tareas
  • Arquitectura DDD con dominio, aplicación e infraestructura
  • Pruebas automatizadas con pytest y BDD (Behave)
  • Validación robusta con Pydantic
  • Documentación automática con Swagger UI
Repositorio del Proyecto: github.com/heldigard/unaula-IF0100-POO-II

Fases del Proyecto TaskFlow

Fase Fecha Evaluación Descripción
Fase 1: Diseño de Dominio Semana 4-6 (Feb 24 - Mar 12) - Definición de entidades y lógica de negocio con Pydantic
Fase 2: Infraestructura Web Semana 7-8 (Mar 17 - Mar 26) 20% (E3) MVP: API REST con FastAPI y validación de datos
Fase 3: Persistencia Planos Semana 9-11 (Abr 07 - Abr 23) 15% (E4) Implementación de almacenamiento en JSON/CSV con pathlib
Fase 4: Persistencia Relacional Semana 12-13 (Abr 28 - May 07) 15% (E5) Migración a SQLAlchemy ORM y base de datos PostgreSQL
Fase 5: Arquitectura Limpia Semana 14-16 (May 12 - May 28) 20% (E6) Entrega Final: Repository Pattern + Clean Architecture

TaskFlow 2026

Sistema de Gestión de Tareas


55% del curso enfocado en el proyecto

E3 (20%) + E5 (15%) + E6 (20%)

Desarrollo iterativo y evolutivo

Herramientas y Recursos

Python 3.12+

Lenguaje de programación

Descargar
VSCode

Editor de código

Descargar
Git

Control de versiones

Descargar
GitHub

Alojamiento de código

Visitar

Bibliotecas Python Requeridas

# Instalación de dependencias
pip install fastapi uvicorn pytest pytest-asyncio behave pydantic

# Para desarrollo
pip install black flake8 mypy pre-commit

Referencias Bibliográficas

Libros Principales

Python Crash Course

Eric Matthes

2ª edición, No Starch Press, 2019

Fluent Python

Luciano Ramalho

O'Reilly, 2015

Test-Driven Development with Python

Harry Percival

O'Reilly, 2014

Implementing Domain-Driven Design

Vaughn Vernon

Addison-Wesley, 2013

Documentación Oficial

Recursos Online

Información del Curso

Docente

Nombre: Eldigardo Camacho

Correo: eldigardo.camacho3380@unaula.edu.co

Horario de atención: A través del grupo de Telegram

Políticas del Curso

  • Se permite trabajo en parejas (Pair Programming)
  • El plagio tiene nota 0 en la actividad
  • Las entregas tardías tienen penalización del 10% por día
  • Se requiere 80% de asistencia para aprobar