Title: Programa de la Materia.
Course: 2025 - LISI - Programacion Orientada a Objetos 1-1

PROGRAMA DE LA MATERIA
UNIDAD DE APRENDIZAJE O MÓDULO: | PROGRAMACIÓN ORIENTADA A OBJETOS
Clave: | 19206
Ubicación: | 2do Semestre | Área: Básico Disciplinar
Horas y créditos: | Teóricas: 60 | Prácticas: 50 | Estudio Independiente: 50
Total de horas: 160 | Créditos:  10
Competencia(s) del perfil de egreso al que aporta: | CG7. Cultiva el compañerismo, el trabajo en equipo y la coordinación de esfuerzos bajo la aspiración de mejorar las tareas académicas, los entornos laborales y la convivencia social en beneficio para la consecución de metas que impactan en las formas de entablar y mantener relaciones humanas positivas. CE2.  Utiliza técnicas, habilidades y herramientas computacionales modernas que faciliten alcanzar las soluciones a problemáticas planteadas.
2. PROPÓSITO
Que el estudiante tenga una comprensión sólida de los conceptos y fundamentos de la  POO, que propicien el desarrollo de las habilidades necesarias para plantear y resolver problemas mediante la aplicación de estos conceptos en el desarrollo de sistemas de software con apoyo de la implementación del paradigma orientado a objetos en un lenguaje particular con actitud innovadora y creativa.
3. SABERES
Teóricos:
Identifica y reconoce los principales lenguajes de programación, así como los conceptos de la metodología orientada a objetos en el análisis y diseño de programas.

Identifica y relaciona los conceptos que se aplicaran en la construcción de programas, los tipos de datos existentes, así como su aplicación en las diferentes sentencias y expresiones usadas en un lenguaje de programación.

Identificar las estructuras de control para construir e implementar programas, aplicando los conceptos y elementos de la programación orientada a objetos.

Construir programas en un lenguaje de programación, desarrollando el concepto de programación orientada a objetos.
Prácticos:
Construye programas aplicando las estructuras de control adecuadas.

Construye programas modulares aplicando programación modular.

Construye programas aplicando los conceptos de la programación orientada a objetos.

Responde cuestionarios y ejercicios sobre situaciones problemáticas concretas que le permitan afianzar, relacionar, integrar y aplicar los conocimientos adquiridos.
Actitudinales: | Responsabilidad, Puntualidad, Orden y Limpieza, Disciplina y Respeto, Honestidad, Tolerancia. Elabora programas individuales o en equipo, compartiendo sus conocimientos y respetando los diversos puntos de vista de sus compañeros, cumpliendo con los tiempos establecidos por el profesor. El alumno valora la importancia que tiene el uso correcto de los diversos constructores de un lenguaje y acepta el desafío de incursionar en nuevos lenguajes y paradigmas, aspectos que le permiten estar mejor posicionado para elegir el lenguaje más adecuado y usarlo correctamente de acuerdo al dominio y características del problema a resolver.
4. CONTENIDOS
I. Metodología de la Programación Orientada a Objetos y UML

1.1   Fundamentos de la Programación Orientada a Objetos

1.1.1.  Programación Orientada a Objetos

1.1.1.1. Conceptos Básicos:

1.1.1.1.1. Abstracción

1.1.1.1.2. Encapsulamiento

1.1.1.1.3. Modularidad

1.1.1.1.4. Jerarquía y Herencia

1.1.1.1.5. Polimorfismo

1.1.2.  Elementos del modelado OO; Objeto, Clase, Interfaz.

1.1.3.  Análisis Orientado a Objetos

1.1.4.  Diseño Orientado a Objetos

1.1.5.  Características básicas de "buen estilo" en programación.

1.1.6.  Convenciones de código para los lenguajes de programación

1.2.   Lenguaje de Modelamiento Unificado (UML)

1.2.1.  Introducción al UML

1.2.2.  Técnicas Básicas de Modelado de Objetos

1.2.3.  Diseño Avanzado de Clases

II. Introducción al lenguaje Java

2.1.   Arquitectura computadora + sistema operativo

2.2.   Software Java

2.3.   Programa Java

2.4.   Portabilidad: la máquina virtual de Java

2.5.   Tipos de datos

2.6.   Estructuras de control

III. Fundamentos de la Programación Orientada a Objetos con Java

3.1.   Clases y objetos

3.2.   Métodos

3.3.   Miembros de instancia y de clase

3.4.   Encapsulación de código

3.5.   Clases anidadas y clases internas

3.6.   La clase String

3.7.   Paquetes

3.8.   Paso de argumentos al programa

3.9.   Estructuras de almacenamiento

3.9.1.  Arreglos

3.9.2.  Arreglos multidimensionales

3.9.3.  Uso de arreglos

3.9.4.  Búsqueda en arreglos

3.9.5.  Ordenación de arreglos

3.9.6.  Arreglos redimensionables

3.9.7.  Uso de arreglos redimensionables

IV. Herencia y Polimorfismo

4.1.   Herencia

4.1.1.  Conceptos básicos

4.1.2.  Uso de la palabra reservada super y this

4.1.3.  Constructores y herencia

4.1.4.  Modificadores de acceso

4.1.5.  La clase Object

4.2.   Polimorfismo

4.2.1.  Sobre escritura de métodos

4.2.2.  Tipo estático y tipo dinámico

4.2.3.  La conversión hacia arriba

4.2.4.  Enlace dinámico y polimorfismo

4.2.5.  Clases abstractas

4.2.6.  La conversión hacia abajo: instanceof

4.2.7.  Sobrescribiendo la clase Object

4.3.   Interfaces

4.3.1.  El problema de la herencia múltiple

4.3.2.  Declaración e implementación de interfaces

4.3.3.  Implementación de polimorfismo mediante interfaces

4.3.4.  Definición de constantes

4.3.5.  Herencia en las interfaces

V. Manejo de Excepciones

5.1.   Introducción a las excepciones

5.2.   Captura de excepciones

5.3.   La clase Throwable

5.4.   Captura vs. propagación de excepciones: la sentencia throws

5.5.   Lanzando nuevas excepciones
5. ACTIVIDADES PARA DESARROLLAR LAS COMPETENCIAS
Actividades del docente:

●        Exposición del profesor

●        Presentación de diapositivas y vídeos en plataforma Moodle de la Facultad

●        Resolución de ejercicios en clase
Actividades del estudiante:

❖         Lectura previa de los temas de la unidad.

❖         Ejercicios individuales con tiempo límite de entrega.

❖         Ejercicios grupales con tiempo límite de entrega.

❖         Prácticas en laboratorio de cómputo con tiempo límite de entrega.

❖         Examen Parcial.
6. EVALUACIÓN DE LAS COMPETENCIAS
6.1. Criterios de desempeño | 6.2 Portafolio de evidencias
Evaluaciones mediante la elaboración de diversos programas en un lenguaje de programación orientado a objetos.

Casos prácticos y Tareas

Búsqueda de información

Redacción o realización de informes

Acción tutorial: colectiva e individual

Evaluación: Autoevaluación y coevaluación
Ejercicios elaborados por escrito

Ejercicios elaborados con los programas de aplicación y guardados en la plataforma Moodle de la Facultad.

Cuestionarios aplicados en la plataforma Moodle de la Facultad.
6.3. Calificación y acreditación:
Parcial:

Participaciones en clase

Trabajos individuales y en equipo

Evaluaciones parciales
Final:

Trabajo final

Promedio de exámenes parciales

Examen ordinario final
7. RECURSOS DIDÁCTICOS
Equipo multimedia, pintarrón, plumones, computadoras, vídeo proyector, Internet.

Diapositivas y vídeos en la plataforma Moodle de la Facultad.

Laboratorio de cómputo.

Editor jGRASP 2.0.6_17     http://www.jgrasp.org/

Entorno Java J2SE (Java 2 Standard Edition)

Entorno Java J2EE (Java 2 Enterprise Edition)

Entorno Java J2ME (Java 2 Micro Edition)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

1. DATOS DE IDENTIFICACIÓN
UNIDAD DE APRENDIZAJE O MÓDULO: | PROGRAMACIÓN ORIENTADA A OBJETOS
Clave: | 19206
Ubicación: | 2do Semestre | Área: Básico Disciplinar
Horas y créditos: | Teóricas: 60 | Prácticas: 50 | Estudio Independiente: 50
Total de horas: 160 | Créditos:  10
Competencia(s) del perfil de egreso al que aporta: | CG7. Cultiva el compañerismo, el trabajo en equipo y la coordinación de esfuerzos bajo la aspiración de mejorar las tareas académicas, los entornos laborales y la convivencia social en beneficio para la consecución de metas que impactan en las formas de entablar y mantener relaciones humanas positivas. CE2.  Utiliza técnicas, habilidades y herramientas computacionales modernas que faciliten alcanzar las soluciones a problemáticas planteadas.
2. PROPÓSITO
Que el estudiante tenga una comprensión sólida de los conceptos y fundamentos de la  POO, que propicien el desarrollo de las habilidades necesarias para plantear y resolver problemas mediante la aplicación de estos conceptos en el desarrollo de sistemas de software con apoyo de la implementación del paradigma orientado a objetos en un lenguaje particular con actitud innovadora y creativa.
3. SABERES
Teóricos:
Identifica y reconoce los principales lenguajes de programación, así como los conceptos de la metodología orientada a objetos en el análisis y diseño de programas.

Identifica y relaciona los conceptos que se aplicaran en la construcción de programas, los tipos de datos existentes, así como su aplicación en las diferentes sentencias y expresiones usadas en un lenguaje de programación.

Identificar las estructuras de control para construir e implementar programas, aplicando los conceptos y elementos de la programación orientada a objetos.

Construir programas en un lenguaje de programación, desarrollando el concepto de programación orientada a objetos.
Prácticos:
Construye programas aplicando las estructuras de control adecuadas.

Construye programas modulares aplicando programación modular.

Construye programas aplicando los conceptos de la programación orientada a objetos.

Responde cuestionarios y ejercicios sobre situaciones problemáticas concretas que le permitan afianzar, relacionar, integrar y aplicar los conocimientos adquiridos.
Actitudinales: | Responsabilidad, Puntualidad, Orden y Limpieza, Disciplina y Respeto, Honestidad, Tolerancia. Elabora programas individuales o en equipo, compartiendo sus conocimientos y respetando los diversos puntos de vista de sus compañeros, cumpliendo con los tiempos establecidos por el profesor. El alumno valora la importancia que tiene el uso correcto de los diversos constructores de un lenguaje y acepta el desafío de incursionar en nuevos lenguajes y paradigmas, aspectos que le permiten estar mejor posicionado para elegir el lenguaje más adecuado y usarlo correctamente de acuerdo al dominio y características del problema a resolver.
4. CONTENIDOS
I. Metodología de la Programación Orientada a Objetos y UML

1.1   Fundamentos de la Programación Orientada a Objetos

1.1.1.  Programación Orientada a Objetos

1.1.1.1. Conceptos Básicos:

1.1.1.1.1. Abstracción

1.1.1.1.2. Encapsulamiento

1.1.1.1.3. Modularidad

1.1.1.1.4. Jerarquía y Herencia

1.1.1.1.5. Polimorfismo

1.1.2.  Elementos del modelado OO; Objeto, Clase, Interfaz.

1.1.3.  Análisis Orientado a Objetos

1.1.4.  Diseño Orientado a Objetos

1.1.5.  Características básicas de "buen estilo" en programación.

1.1.6.  Convenciones de código para los lenguajes de programación

1.2.   Lenguaje de Modelamiento Unificado (UML)

1.2.1.  Introducción al UML

1.2.2.  Técnicas Básicas de Modelado de Objetos

1.2.3.  Diseño Avanzado de Clases

II. Introducción al lenguaje Java

2.1.   Arquitectura computadora + sistema operativo

2.2.   Software Java

2.3.   Programa Java

2.4.   Portabilidad: la máquina virtual de Java

2.5.   Tipos de datos

2.6.   Estructuras de control

III. Fundamentos de la Programación Orientada a Objetos con Java

3.1.   Clases y objetos

3.2.   Métodos

3.3.   Miembros de instancia y de clase

3.4.   Encapsulación de código

3.5.   Clases anidadas y clases internas

3.6.   La clase String

3.7.   Paquetes

3.8.   Paso de argumentos al programa

3.9.   Estructuras de almacenamiento

3.9.1.  Arreglos

3.9.2.  Arreglos multidimensionales

3.9.3.  Uso de arreglos

3.9.4.  Búsqueda en arreglos

3.9.5.  Ordenación de arreglos

3.9.6.  Arreglos redimensionables

3.9.7.  Uso de arreglos redimensionables

IV. Herencia y Polimorfismo

4.1.   Herencia

4.1.1.  Conceptos básicos

4.1.2.  Uso de la palabra reservada super y this

4.1.3.  Constructores y herencia

4.1.4.  Modificadores de acceso

4.1.5.  La clase Object

4.2.   Polimorfismo

4.2.1.  Sobre escritura de métodos

4.2.2.  Tipo estático y tipo dinámico

4.2.3.  La conversión hacia arriba

4.2.4.  Enlace dinámico y polimorfismo

4.2.5.  Clases abstractas

4.2.6.  La conversión hacia abajo: instanceof

4.2.7.  Sobrescribiendo la clase Object

4.3.   Interfaces

4.3.1.  El problema de la herencia múltiple

4.3.2.  Declaración e implementación de interfaces

4.3.3.  Implementación de polimorfismo mediante interfaces

4.3.4.  Definición de constantes

4.3.5.  Herencia en las interfaces

V. Manejo de Excepciones

5.1.   Introducción a las excepciones

5.2.   Captura de excepciones

5.3.   La clase Throwable

5.4.   Captura vs. propagación de excepciones: la sentencia throws

5.5.   Lanzando nuevas excepciones
5. ACTIVIDADES PARA DESARROLLAR LAS COMPETENCIAS
Actividades del docente:

●        Exposición del profesor

●        Presentación de diapositivas y vídeos en plataforma Moodle de la Facultad

●        Resolución de ejercicios en clase
Actividades del estudiante:

❖         Lectura previa de los temas de la unidad.

❖         Ejercicios individuales con tiempo límite de entrega.

❖         Ejercicios grupales con tiempo límite de entrega.

❖         Prácticas en laboratorio de cómputo con tiempo límite de entrega.

❖         Examen Parcial.
6. EVALUACIÓN DE LAS COMPETENCIAS
6.1. Criterios de desempeño | 6.2 Portafolio de evidencias
Evaluaciones mediante la elaboración de diversos programas en un lenguaje de programación orientado a objetos.

Casos prácticos y Tareas

Búsqueda de información

Redacción o realización de informes

Acción tutorial: colectiva e individual

Evaluación: Autoevaluación y coevaluación
Ejercicios elaborados por escrito

Ejercicios elaborados con los programas de aplicación y guardados en la plataforma Moodle de la Facultad.

Cuestionarios aplicados en la plataforma Moodle de la Facultad.
6.3. Calificación y acreditación:
Parcial:

Participaciones en clase

Trabajos individuales y en equipo

Evaluaciones parciales
Final:

Trabajo final

Promedio de exámenes parciales

Examen ordinario final
7. RECURSOS DIDÁCTICOS
Equipo multimedia, pintarrón, plumones, computadoras, vídeo proyector, Internet.

Diapositivas y vídeos en la plataforma Moodle de la Facultad.

Laboratorio de cómputo.

Editor jGRASP 2.0.6_17     http://www.jgrasp.org/

Entorno Java J2SE (Java 2 Standard Edition)

Entorno Java J2EE (Java 2 Enterprise Edition)

Entorno Java J2ME (Java 2 Micro Edition)

http://www.oracle.com/technetwork/java/javase/downloads/index.html