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
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
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 evolutivoHerramientas y Recursos
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
Eric Matthes
2ª edición, No Starch Press, 2019
Luciano Ramalho
O'Reilly, 2015
Harry Percival
O'Reilly, 2014
Vaughn Vernon
Addison-Wesley, 2013
Documentación Oficial
- Documentación Oficial de Python 3
- Documentación de FastAPI
- Documentación de pytest
- Documentación de behave (BDD)
Recursos Online
- Real Python - Tutoriales en profundidad
- W3Schools Python - Referencia rápida
- Exercism Python - Ejercicios prácticos
- PEPs de Python - Mejores prácticas
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