Está en la página 1de 10

Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

Nombre de la Asignatura Programación Orientada a Objetos


Código de la asignatura 4208
Fecha de Actualización Julio de 2020
Intensidad horaria semanal Horas Contacto Clase : 4 Horas Trabajo Independiente : 2
Créditos Académicos
2
(Unidades)
Condiciones de Inscripción Pensamiento Algorítmico // ó // Fundamentos de Programación // ó //
(Pre-requisitos) Programación Algorítmica
Período Académico de
2020-30
Vigencia

Objetivos
• Se pretende que el estudiante asimile los conceptos fundamentales de programación orientada a
objetos, tales como clases, objetos, herencia y polimorfismo.
• Despertar la habilidad para implementar software basado en el paradigma de Orientación a
Objetos, usando lenguajes de programación, en este caso Java.
• Al finalizar el curso el alumno deberá estar en capacidad de analizar, diseñar e implementar
soluciones a problemas usando el paradigma de la orientación a objetos.

Contenidos temáticos
1. Paradigmas de Programación (Imperativos, POO, Lógico, funcional)
2. Elementos estructurales de la orientación a objetos: Clases, Objetos
3. Proceso de Desarrollo usando el Paradigma Orientado a Objetos
◦ Principios de análisis y diseño (Diagrama de clases)

◦ Codificación basada en objetos

◦ Pruebas unitarias
4. Excepciones
5. Colecciones basadas en objetos
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

6. Persistencia
7. Interfaz gráfica

Resultados de Aprendizaje Esperados


Al finalizar el curso el estudiante estará en capacidad de:
1. Definir clases y objetos, junto con sus características particulares en un entorno de
programación.
2. Comprender los conceptos de herencia y polimorfismo en el contexto del paradigma orientado a
objetos.
3. Utilizar el lenguaje de programación Java para la implementación de algoritmos diseñados con
el paradigma de orientación a objetos.

Estrategias Pedagógicas
Presencial:
1. Aprendizaje Directivo Mediado (Clases magistrales)

2. Desarrollo de Proyectos

3. Talleres basados en problemas.

NO – Presencial:
1. Tareas y ejercicios extra clase

2. Preparación de clase

3. Preparación de evaluación

4. Desarrollo de Proyectos

5. Preparación de Talleres

Evaluación
 20% Primer Parcial
 15% Segundo Parcial
 15% Tercer Parcial
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

 15 % Laboratorios
 9% Proyecto I
 8% Proyecto II
 8% Proyecto III
 10 % Quices y Tareas

Referencias Bibliográficas
Texto Guia:
1. Java how to program early objects 11th edition. Deitel, Paul J. 2018. (Biblioteca 3 copias.)
2. Programación en Java introducción a la programación orientada a objetos Autor Wu, C.
Thomas. McGrawHill. 2008. [BIBLIOTECA] (# clasif.001.6424 W82E 2008. Existencias 2
copias en Biblioteca General.)
Referencias adicionales:
1. An introduction to object-oriented programming with Java Wu, C. Thomas. 2006.
[BIBLIOTECA]
2. Eckel, Bruce. Piensa en JAVA, cuarta edición, Prentice Hall, 2007 [BIBLIOTECA]
3. Java for programmers Autor Deitel, Paul J. # clasif. 001.6424 D34R Editor Edición Fecha de
pub 2009 [BIBLIOTECA]
4. Introduction to JAVA programming comprehensive version. Liang, Y. Daniel. 2007.
[BIBLIOTECA]
5. Object oriented programming through Java Autor Radha Krishna, P. # clasif. 001.6424 R13
Fecha de pub 2007 Existencias 1 copia Biblioteca General en Colección general Piso 4.
6. Java programacion orientada a objetos 1a ed. Autor Juárez, Andrés # clasif. 001.6424 J18V
Fecha de pub 2013 Existencias 1 copia en Biblioteca General en Colección general - Piso 4.
7. Orientacion A Objetos Con Java y UML 2a ed. Autor Fontela, Carlos Moisés # clasif. 001.6424
J18FO Fecha de pub 2011. Existencias 2 copias en Biblioteca General.
8. Programación en java 6 algoritmos, programación orientada a objetos e interfaz gráfica de
usuario Autor: Joyanes Aguilar, Luis # clasif. 001.6424 J69G Fecha de pub 2011 Existencias 1
copia Biblioteca General en Colección general – Piso 4.
9. Java in two semesters. Charatan, Quentin. 2006. [BIBLIOTECA].
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

10. Java generics and collections. Naftalin, Maurice. 2007. [BIBLIOTECA].


11. Java the complete reference, J2SE 5 edition. Schildt, Herbert.2005. [BIBLIOTECA]
12. Java an introduction to problem solving & programming.2005. [BIBLIOTECA]
13. Savitch, Walter. Resolución de Problemas con C++, Segunda Edición. Prentice Hall, 2000
[BIBLIOTECA]
14. H.M. Deitel / P.J. Deitel, âĂIJJava How to ProgramâĂİ, Quinta Edición. Prentice Hall, 2004
[BIBLIOTECA]
15. Larman, Craig, UML y Patrones, Segunda Edición, Pearson Educación, 2002. [BIBLIOTECA]
Booch, G., Rumbaugh, J. y Jacobson, I. El Lenguaje Unificado de Modelado UML, Pearson
Educación, Segunda Edición 2006. [BIBLIOTECA]
16. Joyanes Luis, Programación Orientada a Objetos, McGraw Hill, 1998 [BIBLIOTECA]
17. Barker Jacquie, Beginning Java Objects: From concepts to Code, Wrox, 2000. ISBN
1861004176. [BIBLIOTECA]
18. Terrence W. Pratt, Marvin V. Zelkowitz, "Lenguajes de Programación. Diseño e
Implementación". Prentice Hall. 3ra. Ed.1996 [BIBLIOTECA]
Libros electrónicos:
1. Java Programming Fundamentals Problem Solving Through Object Oriented Analysis and
Design. Disponible desde el campus
2. Java programming fundamentals [Recurso electrónico]

3. Problem solving through object oriented analysis and design Autor Nair, Premchand S.,
1956- # clasif. 005.117 N158 Editor Edición Fecha de pub 2009 Existencias. 1 copia
disponible en Biblioteca General en Recurso en línea. Libro también existe de manera física.
4. ECOOP 2005 - Object-Oriented Programming [Recurso electrónico] / 19th European
Conference, Glasgow, UK, July 25-29, 2005. Proceedings Autor Black, Andrew. # clasif. E
LIBRO Editor Edición Fecha de pub 2005 Existencias 1 copia Biblioteca General en Recurso
en línea
5. Java for Artists : The Art, Philosophy, and Science of Object-oriented Programming.Miller,
Rick; Kasparian, Raffi. Falls Church, Va : Pulp Free Press. 2006. eBook., Base de datos:
eBook Collection (EBSCOhost)
6. Wicked Cool Java : Code Bits, Open-source Libraries, and Project Ideas.

Sitios web - Internet:


1. https://courses.edx.org/courses: edX Home Page UBCx: SoftConst2x Software Construction:
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

Object Oriented Design.


2. https://courses.edx.org/courses: HKUSTx: COMP102.1x Introduction to Java Programming

3. http://highered.mheducation.com/sites/0073523305/student_view0/index.html

4. https://www.guru99.com/java-oops-concept.html

5. Animaciones en línea de programas en java libro Daniel Lang


http://www.cs.armstrong.edu/liang/animation/web/java10e/AnimationForInteractiveEbook.ht
ml

Contenido Detallado
Programa por semana y por clase
Semana Clase Tema
1 1 Introducción del curso y Reglas de Juego
¿Por qué se debería aprender POO?
Repaso de algorítmica y de programación:
 Estructuras de secuencia (operadores de asignación y casting)
 Estructuras de selección
o if
o if-else
o switch
o operador ternario “?”
o if-else anidadas
o operadores lógicos
 Estructuras de repetición
o while
o do while
o for
o sentencias de repetición anidadas
o break
o continue
o ciclos sobre arreglos de tipos primitivos
2 Laboratorio de Conceptos Básicos de Programación en Java
 Compilar y Ejecutar un programa en Java
 Ejercicios con ciclos y condicionales sobre arreglos de tipos primitivos
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

 Entrada y salida por consola (utilizando Scanner y println y printf)


2 3 Conceptos de Objetos
 Clases
 Paquetes de clases: creación y visibilidad
 Visibilidad de Clases: pública
 Objetos , Atributos
 Visibilidad Atributos: pública, privada
 Métodos modificadores y analizadores
 Visibilidad de Métodos: pública, privada
 Encapsulamiento de Atributos
Definición canónica de una clase
4 Proceso de Instanciación de objetos
 Constructores por defecto
 Constructores con parámetros
Usando los objetos
 La propiedad this, La notación punto (.)
Arreglos de objetos de negocio
3 5 Atributos
 de clase (estáticos), Final
Métodos
• Métodos de instancia
• Parámetros
• Encapsulamiento de métodos
• Sobrecarga de métodos
• Métodos static
• Métodos final
6 Laboratorio de definición de una clase canónica, atributos y métodos
 Compilar y Ejecutar un programa en Java con varias clases: una clase de
negocio y un test que trabaja con arreglos de objetos de negocio.
 Práctica de atributos y métodos de instancia y de clase: manejo de
cadenas, fechas y calendarios (String y GregorianCalendar)
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

4 7 Diagrama de Clases Java


• Concepto
• Características
• Elementos de un diagrama de clases Java
• Relaciones entre clases
Relación de asociación
• Concepto
• Representación
• Navegabilidad
• Cardinalidad
• Roles y /o calificadores
• Relaciones como atributos y referencias
Relación de dependencia
8 Laboratorio de relaciones simples entre clases (relaciones 1-1 y alguna relación 1-
muchos modelada con arreglos).
5 9 Persistencia básica: lectura y escritura de archivos de texto
Persistencia avanzada
• Archivos binarios, de datos primitivos
• Serialización (objetos)
10 Laboratorio de persistencia con archivos de texto y binarios:
• un programa en Java con varias clases: una clase de negocio y un test que
trabaja con arreglos de objetos de la clase de negocio, leyendo datos de
archivos y generando reportes
• manejo de menú (con opciones de salvar y cargar)
Documentación de clases (javadoc)
Generar el jar de un programa
6 11 Relación de Agregación/Composición
 relaciones de Cardinalidad 1 a muchos: colecciones/contenedores: List
(ArrayList, Vector)
Diseño de la interacción de objetos
 Mensajes de creación
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

 Descubriendo métodos
 Visibilidad entre objetos
Relaciones bidireccionales muchos a muchos
Asignación de responsabilidades a clases
12 Laboratorio interacción de objetos (práctica de visibilidad), interacción muchos a
muchos entre objetos, con listas.
7 13 Ampliación de Colecciones
• Generics/Templates
• Colecciones (ordenamiento)
• Iteradores: sentencia for mejorada
Refactoring, depuración paso a paso, navegar desde el IDE
14 Laboratorio de ordenamiento de listas
8 15 Map: Hashtable, HashMap
Práctica de Maps
16 PRIMER PARCIAL
Entrega de Proyecto 1
9 17 Solución del parcial 1
Relación de Generalización
• Concepto de Herencia
• Beneficios de la Herencia
• Reconociendo la herencia
• Superclases y Subclases
• Visibilidad protegida
• Reglas de Herencia
• Herencia con clases concretas
• Constructores en la herencia
• Uso de this y super
18 Sustentación del proyecto 1
10 19 Polimorfismo
• Concepto
• Beneficios
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

• Declarando e instanciando clases polimórficas


• Conversión entre clases en una relación de herencia
Herencia avanzada
• Clases abstractas
• Métodos abstractos
• Sobre-escritura de métodos
Clase final
20 Laboratorio de Herencia, polimorfismo y clases abstractas
11 21 Problemas de la herencia y alternativas (composición de objetos e interfaces)
Relación de Realización
• Concepto de Interfaces
• JDK 8 en adelante: las interfaces contemplan defaults y métodos estáticos
• Clases abstractas vs interfaces
• Herencia múltiple con interfaces
Combinación de interfaces y clases abstractas
Práctica de Interfaces combinadas con clases abstractas
22 SEGUNDO PARCIAL
Fecha Límite segundo proyecto
12 23 Solución del parcial 2
Enumerados
24 Sustentación proyecto 2
13 25 Manejo de Excepciones
 Chequeo de errores
 Manejo de excepciones: try/catch, try/catch/finally, throws
 Sentencia exit
Excepciones personalizadas
26 Práctica con Enumerados y Excepciones (labo)
14 27 Interfaz gráfica de usuario simple
 Componentes GUI en java (Swing, AWT)
Facultad de Ingeniería

Departamento de Ingenieria de Sistemas

 Contenedores: Jframe, JApplet , JPanel


 Layouts: null, border, etc.
Componentes: Etiquetas, campos de entrada de texto, botones de comando
Mostrar proyectos de semestres anteriores
28 Práctica GUI simple con elementos básicos
Manejo de eventos
15 29 Interfaz Gráfica de Usuario avanzada (1)
• JOptionPane
• Botones de radio
• Eventos de mouse y teclado
• Contenedores combinados: JFrame con JPanel
• JTable dentro de Scroll
• Tarjetero (JTabbedPane)
Modelo de eventos Swing
30 Laboratorio GUI avanzado con JTable y JTabbedPane
16 31 Interfaz Gráfica de Usuario avanzada (2)
• Cajas de chequeo
• Listas (combos)
• Seleccionador de archivo
• menus
Otros
32 Laboratorio de GUI avanzado con elementos adicionales
Soporte al proyecto
17 TERCER PARCIAL (semana de exámenes)
17 Fecha Límite Tercera Entrega del proyecto
17 Sustentación de Proyecto 3: (semana de exámenes)

También podría gustarte