Exámenes
| Examen | Cuándo | Temas |
|---|---|---|
| Parcial | Semana 8, Sesión B | Partes 1 y 2 (semanas 1–7): ingeniería de software y IA, procesos, requisitos, especificaciones, diseño, APIs, patrones y arquitectura |
| Final | Período de exámenes | Todo el curso, con énfasis en las partes 3 y 4 (semanas 9–16): pruebas, revisión de código, análisis estático, integración y entrega continuas, dependencias, despliegue y operación, desarrollo con agentes y productos con LLM, seguridad, ética y mantenimiento |
Los exámenes se rinden sin herramientas de IA. Miden lo que el proyecto no puede medir individualmente: que cada estudiante entienda las ideas y sepa aplicarlas a un caso que no ha visto.
Formato sugerido
- Requisitos y especificaciones: a partir de la descripción de un cliente, escribir historias de usuario con criterios de aceptación verificables, detectar requisitos ambiguos o contradictorios, escribir la especificación (precondiciones, postcondiciones, invariantes) de una operación.
- Diseño: dado un fragmento de código en TypeScript, identificar módulos superficiales, fugas de información y acoplamiento, y proponer un diseño mejor; diseñar la API de una funcionalidad (rutas, códigos de estado, errores, idempotencia); escribir un ADR con sus alternativas.
- Pruebas: escribir casos de prueba para una función (casos límite, particiones), una propiedad para fast-check, o decidir qué mutantes sobrevivirían a un conjunto de pruebas dado y qué prueba los mataría.
- Revisión de código: comentar un diff como en un pull request: errores, casos no cubiertos, riesgos de seguridad, nombres, y qué se pediría antes de aprobar. Algunos diffs vienen de una herramienta de IA.
- Entrega y operación: leer un flujo de GitHub Actions y decir qué hace y qué falta, elegir una estrategia de despliegue, definir SLIs y SLOs para un servicio, escribir la línea de tiempo y las acciones de un postmortem.
- Preguntas cortas: “¿por qué la ley de Hyrum hace difícil cambiar una API?”, “¿qué no garantiza una cobertura de 100 %?”, “¿qué es una inyección de prompts y cómo se mitiga?”, “¿cuándo conviene un monolito?”.
Cómo estudiar
- Las Preguntas de repaso al final de cada guía semanal y los ejercicios de los apuntes.
- Los capítulos de Software Engineering at Google que cita cada semana; sus secciones TL;DRs al final de cada capítulo sirven de resumen.
- Su propio proyecto: para cada tema, cómo lo aplicó su equipo y qué harían distinto.
- Los exámenes de práctica: parcial y final. Las soluciones las da el docente en clase.