4.7.2.4 Programación orientada a objetos (10 horas) [Habilidades a,b,i]

Referencias Bibliográficas: [Stroustrup, 2013a,Deitel, 2017] Temas
  1. Diseño orientado a objetos:
    1. Descomposicion en objetos que almacenan estados y poseen comportamiento
    2. Diseño basado en jerarquia de clases para modelamiento
  2. Lenguajes orientados a objetos para la encapsulación:
    1. privacidad y la visibilidad de miembros de la clase
    2. Interfaces revelan único método de firmas
    3. clases base abstractas
  3. Definición de las categorías, campos, métodos y constructores.
  4. Las subclases, herencia y método de alteración temporal.
  5. Subtipificación:
    1. Polimorfismo artículo Subtipo; upcasts implícitos en lenguajes con tipos.
    2. Noción de reemplazo de comportamiento: los subtipos de actuar como supertipos.
    3. Relación entre subtipos y la herencia.
  6. Uso de coleccion de clases, iteradores, y otros componentes de la libreria estandar.
  7. Asignación dinámica: definición de método de llamada.

Objetivos de Aprendizaje
  1. Diseñar e implementar una clase [Usar]
  2. Usar subclase para diseñar una jerarquía simple de clases que permita al código ser reusable por diferentes subclases [Usar]
  3. Razonar correctamente sobre el flujo de control en un programa mediante el envío dinámico [Usar]
  4. Comparar y contrastar (1) el enfoque procedurar/funcional- definiendo una función por cada operación con el cuerdo de la función proporcionando un caso por cada variación de dato - y (2) el enfoque orientado a objetos - definiendo una clase por cada variación de dato con la definición de la clase proporcionando un método por cada operación. Entender ambos enfoques como una definición de variaciones y operaciones de una matriz [Evaluar]
  5. Explicar la relación entre la herencia orientada a objetos (codigo compartido y overriding) y subtipificación (la idea de un subtipo es ser utilizable en un contexto en el que espera al supertipo) [Familiarizarse]
  6. Usar mecanismos de encapsulación orientada a objetos, tal como interfaces y miembros privados [Usar]
  7. Definir y usar iteradores y otras operaciones sobre agregaciones, incluyendo operaciones que tienen funciones como argumentos, en múltiples lenguajes de programación, selecionar la forma mas natural por cada lenguaje [Usar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM