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

  1. Las Preguntas de repaso al final de cada guía semanal y los ejercicios de los apuntes.
  2. 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.
  3. Su propio proyecto: para cada tema, cómo lo aplicó su equipo y qué harían distinto.
  4. Los exámenes de práctica: parcial y final. Las soluciones las da el docente en clase.