2.5.2 FPL/Programación Orientada a Objetos II: Encapsulación, Subtipado y Reflexión
Temas:
Core
- Idiomas orientados a objetos para encapsulación:
- Privacidad, ocultación de datos y visibilidad de miembros de clase.
- Interfaces que revelan solo firmas de métodos.
- Clases base abstractas, rasgos (traits) y mixins.
- Propiedades dinámicas vs estáticas.
- Composición vs herencia.
- Subtipado:
- Polimorfismo de subtipos; conversiones ascendentes (upcasts) implícitas en lenguajes tipados.
- Noción de reemplazo conductual: los subtipos actúan como el supertipo.
- Relación entre subtipado y herencia.
- Clases de colecciones, iteradores y otros componentes comunes de biblioteca.
- Metaprogramación y reflexión.
Aprendizaje esperado (Learning Outcomes):
Core:
- Comparar y contrastar los beneficios y costos/impacto de usar herencia (subclases) y composición (específicamente, cómo basar la composición en funciones de orden superior) [Comparar]
- Explicar la relación entre la herencia orientada a objetos (compartición de código y sobrescritura) y el subtipado (la idea de que un subtipo sea usable en un contexto que espera el supertipo) [Explicar]
- Usar mecanismos de encapsulación orientados a objetos como interfaces y miembros privados [Usar]
- Definir y usar iteradores y otras operaciones en agregados, incluyendo operaciones que toman funciones como argumentos, en múltiples lenguajes de programación, seleccionando los idiomas más naturales para cada lenguaje [Definir]
- Usar clases de colecciones e iteradores efectivamente para resolver un problema [Usar]
- Comparar y contrastar cómo difieren las soluciones computacionales a un problema en los enfoques procedural, funcional y orientado a objetos [Comparar]
- Comparar y contrastar los mecanismos para definir y proteger elementos de datos dentro de los enfoques procedural, funcional y orientado a objetos [Comparar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM