Modelar una biblioteca digital con tipos de datos abstractos
Visión general
De qué trata este proyecto.
Diseña 4 TDA: Libro (con ISBN, título, autoría, género, copias disponibles), Lector (con ID, nombre, contacto, préstamos activos), Préstamo (con libro, lector, fecha inicio, fecha límite, fecha devolución) y Catálogo (operaciones agregadas: buscar, prestar, devolver, listar atrasados). Define la interfaz de cada TDA antes de implementarla — la interfaz no debe revelar si por dentro usas listas, diccionarios o ficheros. Implementa la persistencia simple en JSON. Escribe un módulo CLI minimalista. Provee tests unitarios para cada TDA. Entrega el código, una guía de uso de 4 páginas, los tests con cobertura y un breve análisis (1 página) de cómo cambiar la persistencia a SQLite sin tocar el código de los TDA — eso prueba que la abstracción es buena.
El Briefing
Lo que harás y lo que demostrarás.
Modelar una pequeña aplicación de biblioteca usando TDA bien diseñados que separe interfaz de implementación y permita cambiar la persistencia sin reescribir lógica de dominio.
Earning criteria — what you'll demonstrate
- Diseñar TDA separando interfaz e implementación
- Aplicar modularidad para que el código sea extensible
- Escribir tests unitarios significativos sobre TDA
- Razonar sobre cómo una buena abstracción permite cambiar implementación
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Diseñar TDA limpios y demostrar extensibilidad con análisis explícito es exactamente el rigor que distingue a una persona junior bien formada en cualquier entrevista técnica.
Este proyecto afina
- abstraction
- data-abstraction
- software-design
Ingeniero de Backend
Quien diseña dominios con TDA construye APIs y servicios que el resto del equipo entiende sin necesitar 2 semanas de onboarding.
Este proyecto afina
- abstraction
- modular-programs
- python