Ir al contenido
Tecnología · 3o de Preparatoria · Desarrollo de Aplicaciones y Arquitectura de Software · II Bimestre

Principios de Programación Orientada a Objetos

Los estudiantes identifican los conceptos de clases, objetos, atributos y métodos, modelando entidades del mundo real en código.

Aprendizajes Esperados SEPSEP EMS: Programación Orientada a ObjetosSEP EMS: Arquitectura de Software

Acerca de este tema

La Programación Orientada a Objetos (POO) representa un cambio fundamental en cómo los estudiantes perciben el desarrollo de software, pasando de una lista de instrucciones a un ecosistema de entidades que interactúan. Este enfoque es el estándar en la industria tecnológica actual y es un componente clave de los programas de Tecnología en la EMS. Al modelar objetos con atributos y comportamientos, los alumnos desarrollan habilidades de abstracción y organización de la información.

Conceptos como herencia, polimorfismo y encapsulamiento permiten crear sistemas escalables y fáciles de mantener. Este tema es ideal para el aprendizaje basado en problemas, ya que permite a los estudiantes mapear el mundo real (como un sistema escolar o un videojuego) en estructuras digitales lógicas. La comprensión profunda ocurre cuando los alumnos debaten cómo clasificar y jerarquizar objetos de su entorno cotidiano.

Preguntas Clave

  1. ¿Cómo la abstracción en POO simplifica la representación de sistemas complejos?
  2. ¿De qué manera la creación de objetos permite la reutilización de código?
  3. ¿Por qué es importante diferenciar entre una clase y un objeto en la programación?

Objetivos de Aprendizaje

  • Identificar los componentes clave de una clase (atributos y métodos) para modelar una entidad del mundo real.
  • Explicar la diferencia entre una clase y un objeto, utilizando analogías concretas.
  • Comparar el uso de diferentes tipos de datos para representar atributos en una clase.
  • Diseñar la estructura básica de una clase para resolver un problema simple de modelado.

Antes de Empezar

Conceptos Básicos de Algoritmos y Pseudocódigo

Por qué: Los estudiantes necesitan comprender la lógica de pasos y la representación de instrucciones antes de modelar entidades con atributos y comportamientos.

Tipos de Datos Fundamentales (enteros, cadenas, booleanos)

Por qué: Es necesario conocer los tipos de datos básicos para poder definir y asignar valores a los atributos de las clases.

Vocabulario Clave

ClaseEs el plano o plantilla para crear objetos. Define las propiedades (atributos) y comportamientos (métodos) que tendrán los objetos de ese tipo.
ObjetoEs una instancia específica de una clase. Tiene sus propios valores para los atributos definidos en la clase y puede ejecutar sus métodos.
AtributoSon las características o propiedades de un objeto, representadas generalmente por variables. Definen el estado del objeto.
MétodoSon las acciones o comportamientos que un objeto puede realizar. Se definen dentro de la clase y operan sobre los atributos del objeto.

Cuidado con estas ideas erróneas

Idea errónea comúnConfundir una Clase con un Objeto.

Qué enseñar en su lugar

Muchos creen que son lo mismo. La analogía del 'plano de una casa' (clase) versus la 'casa construida' (objeto) es muy efectiva. El uso de ejercicios de instanciación manual ayuda a aclarar esta distinción.

Idea errónea comúnPensar que la herencia es necesaria para todo.

Qué enseñar en su lugar

Los alumnos tienden a crear jerarquías demasiado profundas y complejas. Es importante enseñar el principio de 'composición sobre herencia' mediante la revisión de ejemplos donde la herencia complica el código innecesariamente.

Ideas de aprendizaje activo

Ver todas las actividades

Conexiones con el Mundo Real

  • Los desarrolladores de videojuegos utilizan la POO para modelar personajes, ítems y escenarios. Por ejemplo, una clase 'Personaje' podría tener atributos como 'vida', 'velocidad' y métodos como 'atacar()' o 'moverse()'.
  • Los ingenieros de software en empresas como Google o Microsoft emplean la POO para construir sistemas complejos como sistemas operativos o aplicaciones web. La estructura de clases y objetos permite organizar grandes bases de código y facilitar el mantenimiento.

Ideas de Evaluación

Boleto de Salida

Entregue a cada estudiante una tarjeta con el nombre de un objeto cotidiano (ej. 'coche', 'perro', 'teléfono'). Pida que escriban: 1) El nombre de la clase a la que pertenecería. 2) Tres atributos que podría tener. 3) Un método que podría ejecutar.

Pregunta para Discusión

Plantee la siguiente pregunta al grupo: 'Si creamos una clase 'CuentaBancaria', ¿cuáles serían sus atributos esenciales y qué métodos necesitaría para ser funcional?'. Guíe la discusión para que identifiquen conceptos como saldo, titular, depositar, retirar.

Verificación Rápida

Muestre el siguiente fragmento de código (pseudocódigo o lenguaje simple): 'Clase: Libro, Atributos: título, autor, páginas. Método: leerPagina().' Pregunte: '¿Qué representa 'Libro' en este contexto? ¿Qué representa 'título'? ¿Qué acción realiza 'leerPagina()?'.

Preguntas frecuentes

¿Por qué la POO es tan popular en el trabajo?
Porque permite que muchos programadores trabajen en el mismo proyecto sin estorbarse. Al dividir el código en objetos independientes, es más fácil encontrar errores y reutilizar piezas en otros proyectos.
¿Qué es el polimorfismo de forma sencilla?
Es la capacidad de que diferentes objetos respondan al mismo mensaje de formas distintas. Por ejemplo, si le das la orden 'moverse' a un perro, corre; si se la das a un pez, nada.
¿Cómo ayuda el aprendizaje centrado en el estudiante a enseñar POO?
Permite que los alumnos apliquen la abstracción a sus propios intereses. Al pedirles que modelen un sistema de videojuegos o una red social en grupos, ellos mismos descubren la necesidad de organizar datos en clases, haciendo que conceptos como el encapsulamiento no sean solo reglas teóricas, sino soluciones prácticas a problemas de desorden en su código.
¿Es necesario aprender POO para ser programador?
Sí, casi todos los lenguajes modernos (Java, C#, Python, JavaScript) utilizan estos principios. Es una habilidad básica para cualquier estudiante que aspire a trabajar en tecnología.