Seguimiento del Curriculo¶
Proposito¶
Este archivo registra el estado del curriculo y las decisiones de planificacion para Python Book. Es la fuente unica de verdad sobre lo que existe hoy, lo que falta y lo que sigue.
Situacion actual¶
Fecha de estado: 2026-03-15
La navegacion fue reestructurada a un diseno basado en modulos. Todos los capitulos estan bajo docs/modules/ con prefijos numerados que corresponden a los modulos del curriculo.
Estado del contenido por modulo¶
| Modulo | Pagina del capitulo | Estado |
|---|---|---|
| M1: Fundamentos de Computacion | m01-computer-fundamentals.md |
Placeholder |
| M2: Primeros Programas | m02-first-programs.md |
Stub (interactivo) |
| M3: Variables y Tipos | m03-variables-and-types.md |
Stub (interactivo) |
| M4: Flujo de Control | m04-control-flow.md |
Stub |
| M5: Funciones y Bucles | m05-functions-and-loops.md |
Stub (interactivo) |
| M6: Archivos y Excepciones | m06-files-and-exceptions.md |
Stub |
| M7: Modulos y Entornos | m07-modules-and-environments.md |
Stub |
| M8: POO | m08-oop.md |
Placeholder |
| M8: Pruebas | m08-testing.md |
Stub (interactivo) |
| M9: Proyecto Final | m09-capstone.md |
Placeholder |
| M10: Collections e Itertools | m10-collections-and-itertools.md |
Stub |
| M11: Datetime y JSON | m11-datetime-and-json.md |
Stub |
| M12: Fundamentos de asyncio | m12-asyncio-basics.md |
Stub |
| M12: Tipado y Calidad | m12-typing-and-quality.md |
Stub |
Perfil objetivo¶
- Persona principiante sin experiencia en programacion
- Estudiante a ritmo propio (medio tiempo, con progreso flexible)
- Meta: base solida de Python en un estimado de 3-4 meses (Modulos 1-9), sin fechas fijas por tema
- Mas Alla de lo Basico (Modulos 10-12) extiende a territorio intermedio para quienes completen los fundamentos
Plan modular¶
Este curriculo es incremental y basado en dominio. Se avanza modulo por modulo cuando se cumplen los criterios de salida.
Fundamentos (Modulos 1-9)¶
Modulo 1: Fundamentos de computacion y modelo de ejecucion¶
- Foco: CPU, RAM, disco, SO, scripts, interprete, ciclo de proceso
- Criterio de salida: explicar como pasa el codigo Python de archivo a ejecucion
Modulo 2: Contexto de Python y primeros programas¶
- Foco: que es Python, donde se usa, REPL vs script, terminal basica
- Criterio de salida: ejecutar y modificar scripts pequenos con confianza
Modulo 3: Variables, objetos, memoria y tipos de datos base¶
- Foco: enlace de nombres, asignacion,
int/float/str/bool/None, conversiones - Criterio de salida: predecir salidas y explicar comportamiento basico de memoria
Modulo 4: Expresiones, operadores y flujo de control¶
- Foco: expresiones aritmeticas/logicas, comparaciones,
if/elif/else - Criterio de salida: resolver ejercicios de ramificacion con logica limpia
Modulo 5: Bucles, funciones y descomposicion¶
- Foco:
for/while, patrones de iteracion, diseno de funciones, scope basico - Criterio de salida: refactorizar codigo repetitivo en funciones reutilizables
Modulo 6: Archivos, excepciones y debugging¶
- Foco: I/O de archivos,
pathlib,try/except, tracebacks, flujo de depuracion - Criterio de salida: crear scripts que lean/escriban archivos y manejen fallos comunes
Modulo 7: Modulos, imports, entornos y Git ligero¶
- Foco: estructura multiarchivo, imports, entornos virtuales, dependencias, flujo Git esencial
- Criterio de salida: organizar un proyecto pequeno entre archivos con setup limpio
Modulo 8: POO y testing basico¶
- Foco: clases, objetos, metodos, encapsulacion basica, introduccion a
pytest - Criterio de salida: construir y probar una funcionalidad pequena orientada a objetos
Modulo 9: Capstone y consolidacion¶
- Foco: proyecto integral, revision de debilidades, cierre de fundamentos
- Criterio de salida: completar y presentar un proyecto pequeno con tests y README
Mas Alla de lo Basico (Modulos 10-12)¶
Modulo 10: Collections e itertools¶
- Foco:
Counter,defaultdict,deque, composicion de iteradores, patrones eficientes en memoria - Criterio de salida: resolver tareas de procesamiento de datos con tipos de coleccion apropiados
Modulo 11: Datetime, JSON y formatos de datos¶
- Foco: objetos date/time, formato ISO, serializacion/deserializacion JSON
- Criterio de salida: construir scripts que parsean, transforman y producen datos estructurados
Modulo 12: Programacion asincrona y tipado¶
- Foco: event loop,
async/await, patrones de I/O concurrente, type hints, chequeo estatico, PEP 8 - Criterio de salida: escribir una funcion async y anotar un modulo con type hints
Politica de ritmo¶
- Sin calendario fijo por modulo
- El progreso depende del dominio, no de semanas
- Duracion estimada para la mayoria en medio tiempo: 3-4 meses (fundamentos), 1-2 meses (mas alla de lo basico)
Silabo detallado por modulo¶
Modulo 1: Fundamentos de computacion y modelo de ejecucion¶
Objetivos:
- Explicar CPU, RAM, disco y sistema operativo en lenguaje simple
- Describir que ocurre al ejecutar
python script.py - Distinguir memoria temporal de almacenamiento persistente
- Usar terminal basica para navegar y ejecutar scripts
Practica:
- Dibujar un flujo simple: archivo -> interprete -> proceso -> salida
- Ejecutar y modificar un primer script desde terminal
- Explicar cada linea de un script pequeno
Ejercicios:
- Actividad de etiquetar y explicar: responsabilidades de CPU vs RAM vs disco
- Laboratorio de linea de comandos: navegar carpetas y ejecutar 3 scripts
- Trazado de script: describir cada paso de
python hello.py
Checks de finalizacion:
- Puede explicar por que al cerrar un programa se limpia la RAM
- Ejecuta scripts sin depender solo del IDE
- Describe entrada -> procesamiento -> salida en un script simple
Modulo 2: Contexto de Python y primeros programas¶
Objetivos:
- Entender para que sirve Python y casos de uso comunes
- Diferenciar REPL y scripts
- Usar
print(),input(), comentarios y estructura basica - Leer salida de scripts y modificar comportamiento de forma segura
Practica:
- Usar REPL para pruebas rapidas y pasar codigo a
.py - Construir scripts pequenos interactivos
- Leer codigo antes de ejecutarlo
Ejercicios:
- Script de saludo con salida formateada
- Script de conversion de unidades (por ejemplo: Celsius/Fahrenheit)
- Script de entrada y resumen de perfil de usuario
Checks de finalizacion:
- Elige REPL o script segun la tarea
- Escribe y ejecuta programas pequenos de forma independiente
- Explica linea por linea su propio script
Modulo 3: Variables, objetos, memoria y tipos base¶
Objetivos:
- Entender enlace de nombres y asignacion en Python
- Usar bien
int,float,str,boolyNone - Hacer conversiones de tipo seguras y evitar errores comunes
- Inspeccionar valores con
type()e identidad basica conid()
Practica:
- Predecir salida antes de ejecutar
- Depurar errores de tipo derivados de
input() - Renombrar variables poco claras por nombres legibles
Ejercicios:
- Laboratorio de errores: corregir scripts con fallos de asignacion/comparacion
- Reto de conversion: parsear entrada de usuario a valores numericos
- Set de prediccion: anticipar valores finales de snippets
Checks de finalizacion:
- Explica por que
input()devuelve texto y cuando convertir - Evita confundir
=y== - Describe comportamiento basico de memoria en reasignaciones
Proyecto checkpoint A (despues del Modulo 3):
- Construir un CLI de "calculadora de perfil personal": capturar datos, convertir campos numericos e imprimir resumenes
Modulo 4: Expresiones, operadores y flujo de control¶
Objetivos:
- Usar operadores aritmeticos, de comparacion y booleanos con confianza
- Construir arboles de decision claros con
if/elif/else - Aplicar
and/or/notcorrectamente en condiciones combinadas - Evitar duplicacion de logica con ramas mas simples
Practica:
- Convertir reglas en lenguaje natural a condicionales
- Refactorizar condiciones anidadas en estructuras claras
- Probar casos borde y entradas invalidas
Ejercicios:
- Clasificador de notas con limites explicitos
- Verificador de elegibilidad (descuento, prestamo o acceso)
- Tabla de decisiones: pasar requerimientos a ramas de codigo
Checks de finalizacion:
- Explica por que existe cada rama
- Maneja al menos 3 casos borde
- Escribe condiciones legibles sin anidacion innecesaria
Modulo 5: Bucles, funciones y descomposicion¶
Objetivos:
- Usar
forywhilepara tareas repetitivas - Aplicar
breakycontinuede forma intencional - Disenar funciones con parametros y retornos claros
- Dividir scripts grandes en funciones pequenas reutilizables
Practica:
- Implementar patrones de acumulacion (conteo, suma, max/min)
- Construir bucles de validacion de entrada
- Refactorizar un script largo en funciones enfocadas
Ejercicios:
- Analizador numerico: count, sum, average, min, max con entrada de usuario
- Bucle de reintento: validar entrada con intentos limitados
- Reto de refactorizacion: dividir un script en 4-6 funciones
Checks de finalizacion:
- Explica claramente la condicion de parada de bucles
- Escribe funciones que retornan valores en vez de solo imprimir
- Traza flujo de datos entre llamadas de funciones
Modulo 6: Archivos, excepciones y debugging¶
Objetivos:
- Leer y escribir texto de forma segura con
with open(...) - Usar
pathlibpara operaciones de rutas - Manejar errores esperados con
try/except - Leer tracebacks y aplicar un flujo basico de depuracion
Practica:
- Parsear archivos de texto por lineas y generar resumenes
- Manejar archivos faltantes y datos invalidos con gracia
- Usar
printdebugging y breakpoints simples
Ejercicios:
- Herramienta de resumen de archivo: lineas, palabras y unicos
- Importador seguro: leer datos y omitir/reportar lineas invalidas
- Clinica de debugging: reparar scripts rotos de procesamiento de archivos
Checks de finalizacion:
- Usa excepciones para fallos esperados, no capturas generales indiscriminadas
- Explica ubicacion del traceback y tipo de error
- Entrega un script de archivo con manejo de errores robusto
Proyecto checkpoint B (despues del Modulo 6):
- Construir una app de seguimiento basada en archivos (gastos o habitos) con validacion, persistencia y manejo de errores
Modulo 7: Modulos, imports, entornos y Git ligero¶
Objetivos:
- Dividir codigo en modulos con responsabilidades claras
- Usar imports correctamente y evitar dependencias circulares
- Crear y usar un entorno virtual para aislar proyectos
- Aplicar flujo Git basico para iterar con seguridad
Practica:
- Organizar una app pequena en 3-5 archivos
- Instalar y fijar una dependencia en entorno virtual
- Registrar iteraciones con commits pequenos y claros
Ejercicios:
- Reto de reestructura: pasar de un script unico a layout modular
- Laboratorio de entorno: crear
.venv, instalar dependencia y congelar requirements - Practica Git: commit de feature, comparar con
git diff, restaurar una version
Checks de finalizacion:
- Explica la responsabilidad de cada modulo
- Reproduce setup del proyecto en entorno limpio
- Muestra historial Git basico con mensajes de commit claros
Modulo 8: POO y testing basico¶
Objetivos:
- Entender clases, objetos, atributos y metodos
- Decidir cuando POO aporta mas que funciones simples
- Implementar comportamiento de clase con
__init__ - Escribir tests basicos con
pytest
Practica:
- Modelar un dominio pequeno con instancias de clases
- Mantener metodos enfocados y predecibles
- Escribir tests de casos normales y al menos un caso borde por metodo
Ejercicios:
- Clase
BankAccountoWalletcon reglas de deposito/retiro - Clases
Task/TodoListcon transiciones de estado simples - Suite
pytestpara metodos de clase y errores de validacion
Checks de finalizacion:
- Explica estado del objeto y efecto de metodos
- Escribe y ejecuta una suite
pytesten verde - Refactoriza un diseno funcional a uno orientado a objetos
Proyecto checkpoint C (despues del Modulo 8):
- Construir una mini app orientada a objetos con tests (por ejemplo: inventario, quiz o agenda de contactos)
Modulo 9: Capstone y consolidacion¶
Objetivos:
- Integrar todos los fundamentos en un proyecto completo
- Planificar, implementar, probar y documentar una app pequena de Python
- Identificar y corregir debilidades personales de modulos previos
- Demostrar preparacion para material intermedio
Practica:
- Escribir un plan corto de implementacion antes de codificar
- Construir en incrementos pequenos con ciclos de prueba/revision
- Revisar legibilidad y calidad del manejo de errores al final
Ejercicios y entregables:
- Propuesta de capstone (problema, alcance, funcionalidades, restricciones)
- Implementacion del proyecto con estructura modular
- Suite de pruebas para rutas logicas clave
- README con setup, uso y limitaciones conocidas
- Nota de reflexion: que fue dificil y que mejoro
Checks de finalizacion:
- Puede demostrar el proyecto de punta a punta
- El proyecto incluye archivos, funciones/modulos y pruebas
- Puede explicar tradeoffs y siguientes mejoras
Modulo 10: Collections e itertools¶
Objetivos:
- Usar
Counter,defaultdictydequepara tareas comunes de datos - Componer iteradores con
itertoolspara procesamiento eficiente en memoria - Elegir el tipo de coleccion adecuado segun patrones de acceso
Practica:
- Resolver tareas de frecuencia y agrupacion con
Counterydefaultdict - Encadenar y segmentar iterables grandes sin cargar todo en memoria
- Comparar rendimiento de list vs deque para operaciones tipo cola
Ejercicios:
- Analizador de frecuencia de palabras usando
Counter - Ejercicio de agrupacion: categorizar registros con
defaultdict - Reto de pipeline: procesar un archivo grande linea por linea con
itertools
Checks de finalizacion:
- Explica cuando usar
Countervs undictsimple - Construye al menos un pipeline lazy con
itertools - Elige tipos de coleccion apropiados con justificacion
Modulo 11: Datetime, JSON y formatos de datos¶
Objetivos:
- Crear, formatear y comparar objetos
datetime - Trabajar con zonas horarias y formato ISO 8601
- Serializar y deserializar datos con
json - Manejar errores comunes (datetimes naive vs aware, codificacion JSON de tipos no estandar)
Practica:
- Parsear cadenas de fecha de fuentes externas y calcular diferencias
- Construir una capa de almacenamiento o configuracion basada en JSON
- Manejar conversiones de zona horaria entre al menos dos zonas
Ejercicios:
- Calculadora de fechas: dias entre eventos, encontrar siguiente dia de la semana
- Cargador de config JSON: leer, validar y actualizar un archivo de configuracion
- Exportacion de datos: serializar objetos Python mixtos a JSON con encoder personalizado
Checks de finalizacion:
- Convierte entre formatos de datetime sin errores
- Maneja viajes de ida y vuelta JSON con casos borde (None, fechas, estructuras anidadas)
- Explica comportamiento de datetime naive vs aware
Modulo 12: Programacion asincrona y tipado¶
Objetivos:
- Entender el event loop y el modelo de multitarea cooperativa
- Escribir funciones async con
async/awaityasyncio.run() - Aplicar type hints a firmas de funciones y variables
- Usar un verificador de tipos estatico (mypy o pyright) en un modulo pequeno
Practica:
- Convertir un script de I/O secuencial a async
- Anotar un modulo existente con type hints y ejecutar un verificador de tipos
- Usar
asyncio.gather()para ejecutar tareas concurrentes
Ejercicios:
- Fetcher async: obtener multiples URLs concurrentemente con
aiohttpo I/O simulado - Laboratorio de anotacion de tipos: agregar hints a un modulo sin tipar y corregir errores del checker
- Ejercicio combinado: pipeline de datos async con firmas completamente tipadas
Checks de finalizacion:
- Explica por que
awaites necesario y que pasa sin el - Pasa un verificador de tipos en al menos un modulo anotado
- Compara rendimiento sync vs async en una tarea de I/O
Modelo de progresion de ejercicios¶
- Nivel 1 (guiado): plantillas base y pasos detallados
- Nivel 2 (semi-guiado): enunciado + comportamiento esperado
- Nivel 3 (independiente): tarea abierta con criterios de aceptacion
Regla de progresion:
- Completar al menos un ejercicio de cada nivel por modulo antes de avanzar
- Repetir tareas de Nivel 2 o 3 si no se cumplen los checks
Seguimiento de ejecucion¶
- [x] Crear capitulo de ruta para principiantes
- [x] Definir linea base y brechas en este tracker
- [x] Aprobar alcance y orden por capitulos
- [x] Escribir silabo detallado por modulo (objetivos + ejercicios)
- [x] Reestructurar navegacion a diseno basado en modulos
- [x] Agregar Modulos 10-12 (Mas Alla de lo Basico) al curriculo
- [x] Crear capitulos placeholder para M1, M8-POO, M9
- [ ] Expandir capitulos stub a contenido completo (M2-M8)
- [ ] Construir progresion incremental de ejercicios y milestones
- [ ] Crear paginas de proyectos checkpoint (despues de M3, M6, M8)
- [ ] Revision final de consistencia (contenido, nav, ejercicios)
Decisiones aprobadas¶
Fecha de aprobacion: 2026-02-26
- Momento de POO: Introducir POO despues del dominio procedural (Modulos 1-7) y continuar con testing basico.
- Alcance de Git: Incluir solo fundamentos ligeros de Git (init, add, commit, status, log, diff, restore) como soporte, no como bloque principal.
- Cadencia de proyectos: Usar mini-proyectos checkpoint tras bloques principales (Modulos 3, 6 y 8), mas un capstone en Modulo 9.
- Integracion de contenido intermedio (aprobado 2026-03-15): Contenido intermedio existente (collections, datetime/JSON, asyncio, tipado) integrado como Modulos 10-12 bajo seccion "Mas Alla de lo Basico".
Regla de siguiente actualizacion¶
Cuando cambie una decision curricular:
- Actualizar este archivo primero.
- Despues actualizar paginas relacionadas.
- Mantener alineado este tracker con la navegacion de
mkdocs.yml.