Este curso es el PISO 1 de un edificio de dos pisos:
PISO 2: IA y Nanotecnología - Agentes reales (CrewAI, smolagents), simulación molecular, RAG - Se asume dominio completo de Python CONSTRUIDO SOBRE... PISO 1: Lógica de Programación (ESTE CURSO) - Fundamentos Python desde cero - Hábitos de ingeniería (CLI, Git, pytest) - Preview agéntico: qué son agentes, qué es MCP
Contrato de egreso: "Sé programar en Python. Entiendo cómo funciona una IA. He construido y probado un mini-agente. Estoy listo para IA y Nanotecnología."
| Parámetro | Valor |
|---|---|
| Nivel de entrada | Cero conocimiento de programación |
| OS | Windows (primario) — comandos en PowerShell |
| Modalidad | Presencial (opción híbrida/online con Colab) |
| Herramientas | IDLE → VS Code → Antigravity IDE + Google Colab |
| GitHub | GitHub Education (Copilot gratuito desde U4) |
| Pseudocódigo | Escrito a mano, sintaxis UCEMICH (NO PseInt software) |
| Diagramas | Mermaid (manual + FlowchartAgent automático) |
| Referencia principal | https://ellibrodepython.com/ (por unidad) |
| TDD | Obligatorio: test fallido primero |
| Política IA | Sin IA U1-U3 → Copiloto U4-U6 → Arquitecto U7-U8 |
| Unidad 0 | Incluida como unidad oficial numerada |
| Unidad | OK cero-conocimiento | Problema principal |
|---|---|---|
| U1 | Sí (conceptual) | Falta aviso política sin IA |
| U2 | NO | pytest antes de ver una función; pseudocódigo = 0 menciones |
| U3 | PARCIAL | Primer código = lista anidada compleja |
| U4 | Sí | Falta protocolo explícito del primer uso de IA |
| U5 | NO | RK4 antes de un for simple; banderas = 0 menciones |
| U6 | PARCIAL | Lambda, *args, **kwargs completamente ausentes |
| U7 | Sí | La más completa. Solo necesita rúbrica |
| U8 | Sí (como meta) | Sin plantilla README ni rúbrica de defensa |
-
NO EXISTE "Hello World": El primer código Python (U3) son coordenadas moleculares con List[List[float]], type hints y química. Un alumno de primer semestre no tiene ninguno de estos conocimientos previos.
-
U2 TIENE 0 LLAMADAS A print(): Va directo a pytest, OWASP y formulación formal. Un alumno no puede entender "prueba unitaria" sin haber visto una función primero.
-
PSEUDOCÓDIGO = 0 MENCIONES en los 8 MDs: El programa v2 sección 2.2 lo exige explícitamente. No está en ninguna unidad.
-
U5 USA RK4 PARA ENSEÑAR UN for: Runge-Kutta de 4to orden requiere cálculo diferencial (3er-4to semestre). No hay ni un solo ejemplo de for o while de 3-5 líneas antes de RK4.
-
BANDERAS (flags) = 0 MENCIONES en U5: El programa v2 sección 5.1 dice "contadores, acumuladores y BANDERAS". Contadores y acumuladores sí están, pero banderas no existen.
-
LAMBDA, *ARGS, **KWARGS = 0 EN U6: El programa v2 sección 6.2 los exige explícitamente. Completamente ausentes del MD.
-
RÚBRICAS = 0 EN TODOS LOS ARCHIVOS: Con banco de 113 preguntas, el alumno sabe qué se preguntará pero no cómo se evaluará.
-
POLÍTICA DE IA INVISIBLE EN MATERIALES: La regla "sin IA en U1-U3" existe en el programa v2 pero no hay ningún aviso en los MDs de U1, U2, U3.
| Unidad | Palabras | Bloques Python | Analogías | Preguntas examen |
|---|---|---|---|---|
| U1 | 7,655 | 3 | 4 | 4 |
| U2 | 9,593 | 9 | 6 | 18 |
| U3 | 10,861 | 18 | 0 | 18 |
| U4 | 8,351 | 16 | 3 | 17 |
| U5 | 9,197 | 4 | 4 | 17 |
| U6 | 9,366 | 4 | 6 | 19 |
| U7 | 9,742 | 5 | 5 | 17 |
| U8 | 9,988 | 5 | 1 | 3 |
| TOTAL | 74,753 | 64 | 29 | 113 |
Observaciones clave:
- U3 tiene 0 analogías (la unidad más densa en código y más difícil de entrada)
- U8 solo tiene 3 preguntas de examen (insuficiente para el proyecto integrador)
- U5 tiene solo 4 bloques Python para 4 semanas (necesita escalera básica urgente)
BRECHA B1 — U2.2 PSEUDOCÓDIGO (AUSENTE TOTAL): Programa v2 dice: "pseudocódigo estructurado" Estado: 0 menciones. Falta sintaxis del curso, tabla de convenciones, prueba de escritorio y flujo Pseudocódigo → Mermaid → Python → pytest.
BRECHA B2 — U5.1 BANDERAS (AUSENTE TOTAL): Programa v2 dice: "contadores, acumuladores y BANDERAS" Estado: 0 menciones de banderas/flags. También falta escalera básica.
BRECHA B3 — U6.2 LAMBDA/*ARGS/**KWARGS (AUSENTE TOTAL): Programa v2 dice: "funciones lambda, argumentos opcionales, empaquetamiento" Estado: completamente ausente del MD de U6.
BRECHA B4 — U8.3 README Y GITHUB (INCOMPLETO): Programa v2 dice: "documentación técnica y README del repositorio en GitHub" Estado: no hay plantilla ni guía de GitHub para el proyecto final.
BRECHA B5 — U8.4 RÚBRICA DEFENSA ORAL (INCOMPLETO): Programa v2 dice: "defensa oral, 20% de la calificación" Estado: no hay criterios, rúbrica ni preguntas modelo.
BRECHA B6 — POLÍTICA DE IA INVISIBLE: Sección 6.1 del programa define la política por entregable. En los MDs de U1, U2 y U3 no hay ningún aviso visible.
BRECHA B7 — SISTEMA DE EVALUACIÓN NO INTEGRADO EN MDs: 35% labs, 25% exámenes, 20% defensa, 10%+10% no aparecen en ningún MD ni README.
FlowchartAgent (AST → Mermaid): ÚNICO EN EL MERCADO. No existe en ningún otro curso introductorio de primer semestre en México/Latinoamérica. Es el diferenciador tecnológico más potente del proyecto.
MCP en primer semestre: VANGUARDIA ABSOLUTA. La mayoría de universidades no tienen MCP ni en últimos semestres. Prepara al alumno para el mercado 2026-2030.
Política progresiva de IA: Manual → Copiloto → Arquitecto es la progresión pedagógica correcta.
Contexto nanotecnológico: Motivación real e identidad del programa de la carrera.
CodeAuditorAgent + OWASP: Seguridad desde el primer semestre. Práctica inusual y valiosa.
Analogías didácticas (conservar todas):
- Mansión/habitaciones → filesystem (U1)
- Piloto automático → Vibe Coding (U1)
- Bloques LEGO → tokens (U1)
- Álbum fotográfico → Git (U1)
- Río con compuertas → if/elif/else (U4)
- Pista atletismo vs lluvia → for vs while (U5)
Notebooks existentes (77-93 KB cada uno): Base sólida generada. U1: 77.1 KB | U2: 93.2 KB | U3: 92.6 KB U4: 81.3 KB | U5: 79.2 KB | U6: 84.6 KB | U7: 85.2 KB | U8: 87.7 KB
TutorAgent (4.3 KB) — USA KEYWORD MATCHING (limitado) Problema: no entiende preguntas con sinónimos o formulaciones alternativas. Pendiente: reemplazar con ChromaDB embeddings.
CodeAuditorAgent (6.9 KB) — BIEN IMPLEMENTADO Audita PEP8, OWASP y estructura con AST. Conservar.
FlowchartAgent (6.1 KB) — ÚNICO Y EXCELENTE Genera Mermaid desde AST de funciones Python. Conservar.
NotebookCompilerAgent (6.1 KB) — BIEN IMPLEMENTADO Convierte MD a .ipynb. Conservar.
AGENTES NUEVOS A IMPLEMENTAR: OrchestratorAgent: coordina los 4 existentes + EvaluatorAgent. Input: código del alumno + N° de unidad Output: reporte pedagógico unificado en Markdown
EvaluatorAgent: califica contra rúbrica de la unidad. Retroalimentación inmediata y específica por criterio.
PseudocodeAgent: convierte entre pseudocódigo y Python. Pseudocódigo UCEMICH → Mermaid Python AST → Pseudocódigo estilo UCEMICH Pseudocódigo → Esqueleto Python (type hints + docstring)
PENSAR → Pseudocódigo escrito + Diagrama Mermaid CODIFICAR → Python manual (U1-U3) → Python + Copiloto (U4-U6) ORQUESTAR → Conexión con LLMs y agentes (preview del siguiente curso)
| T | Teoría | Concepto + contexto nano + analogía | | A | Algoritmo | Pseudocódigo + Mermaid | | P | Python | Código graduado 3 niveles | | E | Evaluación | Rúbrica + banco de preguntas | | C | Copiloto | Política IA + ejemplo de prompt de calidad | | A | Agente | Conexión con LLMs y sistemas agénticos |
Pseudocódigo → Mermaid → Python → pytest (aplicar en cada concepto nuevo del curso)
INICIO / FIN LEER variable ESCRIBIR "texto", variable variable <- expresión SI condición ENTONCES ... SINO ... FIN_SI PARA i DESDE inicio HASTA fin HACER ... FIN_PARA MIENTRAS condición HACER ... FIN_MIENTRAS FUNCIÓN nombre(parámetros) ... RETORNAR valor ... FIN_FUNCIÓN
| Unidades | Nivel permitido |
|---|---|
| U1, U2, U3 | SIN IA para código. Solo consultas conceptuales |
| U4, U5, U6 | GitHub Copilot habilitado. Documentar prompt en README |
| U7, U8 | IA como herramienta principal. Alumno audita y defiende |
| Examen | CERO IA. Solo lectura, corrección y trazabilidad manual |
| Defensa oral | CERO IA |
[ ] 1.1 Actualizar environment.yml: name: ia_logprog, python=3.11, jupyterlab, numpy, networkx, matplotlib, pytest, ipytest, mcp, fastmcp, chromadb, google-generativeai, rich, pydantic
[ ] 1.2 Crear UNIDAD_0_ENTORNO_Y_PRIMER_PROGRAMA.md: - Herramientas y cuándo usar cada una (IDLE/VSCode/Colab/Antigravity) - Instalación Windows paso a paso (Python 3.11 + Add to PATH) - Primer programa en IDLE: print("Bienvenido a UCEMICH") - conda env create -f environment.yml + conda activate ia_logprog - GitHub Education: education.github.com/students - Guía de PowerShell básico (dir, cd, mkdir, python) - Política de IA del semestre (tabla completa) - Checklist de verificación del entorno (10 ítems) - Link: /introduccion-python · /hola-mundo-python
[ ] 1.3 Crear CHEATSHEET_PYTHON_LOGPROG.md: Tipos, control flujo, funciones, errores comunes, comandos PowerShell, links ellibrodepython.com por tema
[ ] 1.4 Crear RUBRICA_GENERAL.md: Porcentajes del semestre, rúbrica genérica 4×4, rúbrica defensa oral 5×4, 5 preguntas modelo defensa
[ ] 1.5 Crear data/ con: nanoparticulas_ejemplo.csv (20 filas: radio_nm, material, temp_K, morfologia) molecula_agua.json (coordenadas H2O con metadata) red_cristalina_Au.json (grafo nodos/aristas para U7) data/README.md (descripción y cómo cargar cada dataset)
[ ] U1: Aviso [!IMPORTANT] política sin IA + sección PowerShell Windows + links ellibrodepython al final de cada sección teórica
[ ] U2: Sección 2.2 COMPLETA — pseudocódigo: Tabla de convenciones UCEMICH, ejemplo volumen nanopartícula en pseudocódigo, diagrama Mermaid, traducción a Python, pytest, tabla de prueba de escritorio + link /python-built-in
[ ] U3: Sección 3.0 — entrada gradual ANTES del primer código avanzado: print simple → variable → variable con cálculo Metodología 4 pasos: ecuación → código + links /entero-en-python · /float-python · /booleano-python · /cadenas-python
[ ] U4: Aviso [!TIP] hito primer uso copiloto Protocolo 4 pasos para usar IA con rigor Plantilla documentación IA en README del entregable + links /if-python · /match-python
[ ] U5: Sección 5.1 COMPLETA con BANDERAS: Contador + acumulador + bandera (ejemplo con radios de nanopartículas) Escalera básica ANTES del RK4: Peldaño 1: for simple con print (5 líneas) Peldaño 2: while simple de enfriamiento Peldaño 3: contador + acumulador + bandera combinados Peldaño 4 (ya existe): Euler → RK4 → AgenticLoop + links /for-python · /while-python · /range-python · /break-python
[ ] U6: Sección 6.2 COMPLETA: Lambda con ordenamiento de nanomateriales Argumentos opcionales con valor por defecto *args para número variable de posicionales **kwargs con conexión explícita a JSON de MCP + links /funciones-en-python · /lambda-python · /alcance-variables-python
[ ] U8: Plantilla README.md obligatoria del proyecto MAEC Rúbrica defensa oral (5 criterios × 4 niveles) 5 preguntas modelo que el alumno debe preparar Checklist de entrega pre-defensa
[ ] Crear tests PRIMERO (TDD — test fallido antes del código): tests/test_orchestrator_agent.py tests/test_evaluator_agent.py tests/test_pseudocode_agent.py
[ ] Implementar OrchestratorAgent: src/multiagent_core/orchestrator_agent.py Coordina: CodeAuditorAgent + FlowchartAgent + TutorAgent + EvaluatorAgent Output: reporte pedagógico unificado Markdown
[ ] Implementar EvaluatorAgent: src/multiagent_core/evaluator_agent.py Califica código contra rúbrica de la unidad correspondiente
[ ] Implementar PseudocodeAgent: src/multiagent_core/pseudocode_agent.py Pseudocódigo UCEMICH → Mermaid Python AST → Pseudocódigo UCEMICH Pseudocódigo → Esqueleto Python
[ ] Actualizar TutorAgent v2: src/multiagent_core/tutor_agent.py ChromaDB embeddings para búsqueda semántica real Cita la sección exacta del MD donde está la respuesta
[ ] Actualizar todos los notebooks (badge Colab + celda instalación): import sys if 'google.colab' in sys.modules: pip install -q mcp fastmcp chromadb rich
[ ] Añadir links ellibrodepython.com al final de cada sección teórica en todos los MDs y notebooks (tabla de mapeo en Parte 7.2)
[ ] Actualizar README.md: Guía de herramientas (cuándo usar IDLE vs VSCode vs Colab vs Antigravity) Cómo activar GitHub Education y Copilot Cómo usar los 7 agentes desde terminal Mapa del semestre (semana × unidad × lab)
[ ] Añadir rúbrica al final de cada MD (4 criterios × 4 niveles)
[ ] Ejecutar y verificar: conda activate ia_logprog pytest tests\ -v --tb=short Meta: 100% de tests pasando
| Recurso | URL | Uso |
|---|---|---|
| El Libro de Python | https://ellibrodepython.com/ | Referencia principal en español, por unidad |
| Aprende Python | https://aprendepython.es/ | Referencia secundaria en español |
| OWASP LLM Top 10 | https://owasp.org/www-project-top-10-for-large-language-model-applications/ | U2 — Seguridad |
| MCP Specification | https://modelcontextprotocol.io/ | U6 — MCP y Function Calling |
| Google ADK Docs | https://google.github.io/adk-docs/ | U8 — Proyecto agéntico |
- TDD: Test fallido primero. Cero código de producción sin test previo.
- Escalera de acceso: Cada unidad empieza con el ejemplo más simple.
- Hilo de oro: Pseudocódigo → Mermaid → Python → pytest en cada concepto.
- Política de IA visible: Aviso al inicio de U1, U2 y U3.
- Windows first: PowerShell primero (nota con equivalente bash).
- Colab ready: Badge y celda condicional en cada notebook.
- ellibrodepython: Link al final de cada sección teórica.
- Contexto nano: Cada ejemplo usa datos de nanotecnología.
- Semillas curriculares: Cada unidad planta lo que IA Nanotecnología profundiza.
- Fortalezas preservadas: FlowchartAgent, MCP, política progresiva de IA, CodeAuditorAgent+OWASP y analogías didácticas NO se modifican sin razón.
Documento Maestro v3.0 — Análisis completo + Plan de implementación Antigravity AI — Agosto 2026 — UCEMICH Sesiones: 5e66527f (anterior) + b709eb3f (actual)