Exámenes

Examen Cuándo Temas
Parcial Semana 8, Sesión B Partes 1 y 2 (semanas 1–8): clases, referencias, encapsulamiento, herencia, polimorfismo, interfaces
Final Período de exámenes Todo el curso, con énfasis en las partes 3 y 4 (semanas 9–16)

Formato sugerido

  • Leer código: qué imprime un programa con referencias compartidas, overloading y override, equals frente a ==, o excepciones que se propagan. Justificar la respuesta, no solo darla.
  • Escribir código: una clase con sus invariantes y constructores, una jerarquía pequeña, una interfaz con dos implementaciones, una consulta con streams, o las pruebas JUnit de un método dado.
  • Diseño: a partir de un enunciado corto, proponer las clases y sus relaciones con un diagrama UML de clases; o encontrar en un fragmento de código qué principio se viola (por ejemplo, sustitución de Liskov) y corregirlo.
  • Preguntas cortas: “¿por qué un record es inmutable?”, “¿cuándo conviene composición en lugar de herencia?”, “¿qué pierde el programa con el type erasure?”.
  • En el código cuenta la idea, no los errores menores de sintaxis.

Cómo estudiar

  1. Las Preguntas de repaso al final de cada guía semanal y los ejercicios al final de cada capítulo de los apuntes.
  2. Predecir la salida de los ejemplos de code/week-NN/ antes de correrlos, y después verificar con make test o con jshell.
  3. Los ejercicios y quizzes al final de cada capítulo del libro de Eck.
  4. Releer su propio código del proyecto Bodega: muchas preguntas de diseño se parecen a decisiones que ya tomaron.

Exámenes de práctica

Dos exámenes con el formato de los reales, para resolver en papel y con el reloj corriendo:

  • Parcial de práctica: semanas 1–8, 2 horas.
  • Final de práctica: todo el curso con énfasis en las semanas 9–16, 3 horas. Al final trae una lista de verificación de los resultados de aprendizaje del curso, con la semana y las preguntas que ejercitan cada uno.

Las soluciones las da el docente después de que los hayan intentado.

Banco de preguntas

Guardar los enunciados aquí (parcial-AAAA-S.md, final-AAAA-S.md). Las soluciones no deberían subirse a un repositorio público; usar exams/solutions/ (está en .gitignore), una rama privada o un repositorio aparte.