Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS PROGRAMACIaN MODULO 3
FUNDAMENTOS PROGRAMACIaN MODULO 3
FICHA DE IDENTIFICACIÓN
Nombre del (los) autor(es) Luis Carlos Díaz – Andrés Felipe Rodríguez
Idioma Español
Versión 0.1
Tiempo de estudio
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Contextualización (LMS)
principio de encapsulamiento, paso de mensajes y En el botón ‘RAE’ se debe poner la información que
herencia simple. está en el título “RAE”
SubRAE- X
FPIA-2.1
SubRAE- X
FPIA-3.3
SubRAE- X
FPIA-3.4
SubRAE- X
FPIA-
3.5
Estrategias pedagógicas
En este módulo se tendrán tres actividades centrales
de aprendizaje, diseñadas para fortalecer y aplicar los
conceptos aprendidos durante el desarrollo de las
temáticas que tiene en cuenta dos estrategias
pedagógicas propias del curso:
• Aprendizaje basado en problemas mediante
ejercicios individuales o grupales
correspondientes al avance temático del curso
• Aprendizaje colaborativo, en el cual, a través
de equipos de trabajo, se busca un intercambio
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Evaluación sumativa:
• Durante esta semana se otorgará 50 puntos del
trabajo de clase. Se evalúa el uso de
precondiciones y poscondiciones, el uso de la
plantilla de programas y finalmente el correcto
funcionamiento de los programas.
Los estudiantes deberán entregar como equipo el
ejercicio propuesto en la actividad sobre el uso de la
programación orientada a objetos para resolver un
problema de complejidad baja sobre el cálculo del
área de algunas figuras geométricas básicas.
Actividades
1 Introducción Bienvenidos a este módulo, en el que vamos a Video de sala ágil en el que se explican los
(video) presentar los conceptos fundamentales del conceptos generales del paradigma orientado a
paradigma de programación orientado a objetos. objetos.
Etiqueta 1: Mundo mental: Solamente por motivos de Parametrizar el texto 1 por medio de bloque de
nuestras explicaciones llamaremos mundo mental gráfico con etiquetas en la que la imagen base sea:
aquellos aspectos asociados con nuestra mente, las
ideas y abstracciones.
Etiqueta 2: Mundo real: Solamente por motivos de
nuestras explicaciones llamaremos mundo real a la
realidad que percibimos cotidianamente en nuestro
alrededor ya sean entidades físicas o conceptuales
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Texto 3: Los objetos que se deben identificar están Y en la que a cada etiqueta le corresponda las
limitados por el contexto sobre el cual queremos etiquetas enunciadas en el texto 1.
construir la solución a un problema. El contexto y la
identificación del problema concreto que queremos
resolver juegan un papel primordial en esta tarea de
identificación de los objetos que necesitamos para
diseñar e implementar nuestros programas.
Por ejemplo, si queremos organizar los datos de una
persona para mantenerla en un pequeño sistema de
información, debemos entonces estar seguros de cuál Parametrizar con bloque de texto el texto 2.
es el contexto y que queremos solucionar o lograr,
antes de empezar a identificar objetos para iniciar
nuestra labor.
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Etiqueta 1: Modelo UML de la clase perro: Este Tema 4: Proceso General: Implementar Clases
diagrama rectangular de tres secciones corresponde al
modelo UML del diseño de la clase perro para nuestro
ejemplo. Parametrizar con bloque de texto el texto 1.
Etiqueta 2: Metáfora de representación de objetos:
Cada circunferencia de color rojo, azul y verde,
Parametrizar con bloque de texto el texto 2.
representan simplemente la idea de poder crear uno o
muchos objetos a partir de una misma única clase.
Parametrizar el texto 2 por medio de bloque de
Etiqueta 3: Modelo UML de un objeto: Este diagrama
gráfico con etiquetas en la que la imagen base sea:
rectangular de dos secciones corresponde al modelo
UML de un objeto de la clase. Observe que las
características definidas en la clase, tiene un valor
propio en objeto.
3 Clases y
Lección 2: Conceptos y Definiciones Clave Lección 2: Conceptos y Definiciones Clave
Objetos
Tema 1: Clases vs objetos
Texto 1: Una primera visión para entender la relación Tema 1: Clases vs Objetos
(diferencias y semejanzas) entre clase y objeto se Parametrizar con bloque de texto el texto 1.
puede obtener de tres formas diferentes:
Parametrizar el texto 1 por medio de bloque de
gráfico estático en el que la imagen base sea:
corresponde al nombre del método del objeto y que Tema 4: Paso de Mensajes
es invocado.
Ejemplo: en la imagen siguiente tenemos dos objetos:
objUno y objDos. Cuando el objeto objUno quiere
Parametrizar con bloque de texto el texto 1.
comunicarse con el objeto objDos para que el objeto
objDos ejecute el método denominado metodo3() se
dice entonces que:
El objeto objUno le envía el mensaje Metodo3() al
objeto objDos.
En términos prácticos, en la escritura de código, esto
quiere decir que en la implementación de alguno de
los métodos de la clase a la que pertenece objUno, se
debe enviar el mensaje señalado con anterioridad al
otro objeto.
El mensaje se escribe nombrando el objeto al que le
quiero enviar el mensaje, seguido del signo punto (.),
y luego el nombre del método que se quiere invocar
del objeto que recibe el mensaje. Para nuestro
ejemplo, esa línea de código se escribe así:
objDos.Metodo3()
Los mensajes a objetos también pueden ser enviados Parametrizar con bloque de texto el texto 2.
(escritos) en la implementación de una función o en
un programa principal. El único requisito, además de
que el método sea público, es que el objeto al que le
debe enviar el mensaje haya sido creado con
anterioridad (esto lo vemos más adelante).
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
miLista = [10,45,18,35,27]
miLista.append(96)
[10,45,18,35,27,96]
De igual manera, con base en el siguiente par de
instrucciones:
cadena = "Hola”
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
cadena.upper()
4 Definición de
Lección 3 Implementación de clases en Python
Clases y Tipos Lección 3 Implementación de Clase en Python
de Métodos Tema 1: Definición de Clases
Texto 1: La definición e implementación de una clase Tema 1: Definición de Clases
en Python se realiza con la palabra reservada class y
la sintaxis es la siguiente: Parametrizar con bloque de texto el texto 1.
def __init__(self):
self.nombre = "NN”
self.edad = 0
De manera alternativa, en este ejemplo de la clase
Perro, podríamos haber escrito el método usando
más parámetros, de la siguiente manera:
self.nombre = nom
self.edad = n
En muchos lenguajes de programación orientados a
objetos, como en Python, se acostumbra a utilizar el
mismo nombre de los atributos para los parámetros,
de la siguiente manera:
p = Perro()
Para crear un objeto de la clase Perro con el método
alternativo creador usando los parámetros de nombre
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
p = Perro(“Pluto”, 5)
p = Perro(“Pluto”, 5)
q = Perro(“Sanson”, 3)
r = Perro(“Peluca”, 10)
x = Perro(“Max”, 5)
def get_nombre(self):
return self.nombre
temp = p.get_nombre()
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
p = Perro(“Pluto” 5)
temp = p.get_nombre()
p.set_nombre(“Lassie”)
p = Perro(“Pluto” 5)
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
p.set_nombre(“Lassie”)
def ladrar(self):
return “guau-guau!”
Para usar este método o para ser más formales para
enviarle el mensaje ladrar a un objeto de la clase
perro, se debe escribir una instrucción como la
siguiente (en el sitio de nuestro programa en el cual
se requiera enviar el mensaje respectivo al objeto
indicado que lógicamente, ya debe estar creado):
p.ladrar()
En este caso p es el nombre de un objeto de la clase
perro, al cual se le está enviando el mensaje ladrar.
Dado que este método retorna un string, podríamos
usar el resultado para imprimir tal string de la
siguiente manera:
print(p.ladrar())
Entonces, aparecerá por pantalla de usuario el texto:
“guau-guau!”.
Pestaña 5: Método __str__(self): Existe un tipo
especial de método en Python denominado __str__
que se utiliza para hacer imprimible en una sola
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
def __str__(self):
return “Soy el perro” + self.nombre
El uso de la palabra reservada return se usa al igual
que en las funciones. En este caso, el signo + usado
entre strings permite concatenarlos. En este sentido,
con las siguientes instrucciones:
p = Perro(“Peluca”, 10)
print(p)
Se crea una instancia denominada p de la clase Perro
usando un constructor de dos parámetros (ver
explicación de métodos constructores).
Adicionalmente, con solo usar el nombre del objeto,
en este caso p, la función print mostrará en la
ventana de usuario el texto:
“Soy el perro Peluca”
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
5 Herencia
Lección 4: Jerarquías de Herencia
Simple Lección 4: Jerarquías de Herencia
Tema 1. Herencia simple
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Con esta relación de herencia entonces la clase hija Parametrizar con bloque de texto el texto 1.
“hereda” o puede usar los atributos y métodos de la
superclase sin necesidad de volver a definirlos. Parametrizar el texto 1 por medio de bloque de
Texto 2: Este hecho tiene una cierta analogía con los gráfico estático en la que la imagen base sea:
objetos del mundo real, su clasificación y la aparición
de Jerarquías de herencia.
La siguiente imagen muestra un ejemplo más general
y amplio de una jerarquía de clase de tipos de
estudiantes dentro de un sistema de software que
tiene como contexto llevar las notas de los estudiantes
de la universidad.
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Imagen A
class Gato(Mascota):
# Esta es la forma de decir que gato hereda de masco
ta Parametrizar con bloque de texto el texto 1.
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Revise también la forma en la que son creados los Parametrizar el texto 2 por medio de bloque de
objetos de estas clases e invocados (usados) los gráfico estático en la que la imagen base sean la
métodos de cada una de estas. Compárelo con la siguiente:
versión inicial sin uso de la herencia.
Texto 2: Existe una palabra reservada y una forma del
lenguaje Python denominada super() que se utiliza
para hacer uso explícito de atributos o métodos de la
superclase cuando estamos implementando la
subclase.
Se usa comúnmente en el constructor de una subclase
para invocar el constructor de la superclase y así no
repetir código y asegurarse que no estamos
adicionando nuevos atributos que conflictúen con lo
heredados de la clase padre.
Se ha modificado un poco la clase Gato de nuestro
ejemplo para agregar un nuevo atributo denominado
color.
class Gato(Mascota):
def __init__(self, nombre, edad, color):
super().__init__(nombre, edad)
self.color = color
En la siguiente imagen se puede ver el código
completo. De igual forma, puede practicar con el
notebook de esta sección.
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020
Texto en plataforma
Actividad 1 Actividad 1
Ingrese al notebook preparado en esta unidad,
verifique los ejemplos del uso de envío de mensajes a
objetos de tipo lista (como en el caso de miLista) o
string (como en el caso de cadena) e introduzca
nuevas instrucciones que le permitan terminar de
entender y practicar el paso de mensajes sobre
objetos de algunas de las clases que provee Python.
Enlace del notebook:
https://colab.research.google.com/drive/1--
OjCzRa4F9YOVrgFDLxkzD1Aom8YaIa?usp=sharing
Versión 2 FOR-CAEV-IDENTIFICACIÓN EVA_OA 19 de noviembre 2020