4.14.2.2 Programación orientada a objetos (7 horas) [Habilidades a,b]

Referencias Bibliográficas: [Stroustrup, 2013b] 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. Definición de las categorías, campos, métodos y constructores.
  3. Las subclases, herencia y método de alteración temporal.
  4. Asignación dinámica: definición de método de llamada.
  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. 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
  7. Uso de coleccion de clases, iteradores, y otros componentes de la libreria estandar.

Objetivos de Aprendizaje

  1. Diseñar e implementar una clase [Usage]
  2. Usar subclase para diseñar una jerarquía simple de clases que permita al código ser reusable por diferentes subclases [Usage]
  3. Razonar correctamente sobre el flujo de control en un programa mediante el envío dinámico [Usage]
  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 [Usage]
  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) [Usage]
  6. Usar mecanismos de encapsulación orientada a objetos, tal como interfaces y miembros privados [Usage]
  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 [Usage]

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