Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Programación Orientada a Objetos Syllabus

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Programación Orientada a Objetos Syllabus Nombre de la Asignatura Programación Orientada a Objetos Id de la Asignatura Fecha de Actualización Julio de 2016

Horas semanales Horas Contacto Clase  :  4 Horas Trabajo Independiente :  2

Créditos Académicos 2 Pre­Requisitos Pensamiento Algorítmico // ó // Fundamentos de Programación // ó //  Programación Algorítmica Vigencia 2016 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. Habilidades que contribuye a Desarrollar  Estimular la destreza para solucionar problemas prácticos mediante una metodología de diseño OO.  Desarrollar la habilidad para implementar los algoritmos diseñados en el lenguaje de programación  orientado a objetos JAVA.  Promover la reutilización de código.  Generar código con altos estándares de calidad. Estrategias Pedagógicas 1. Aprendizaje directivo mediado (Clases magistrales) 2. Aprendizaje colaborativo (Trabajo en   grupo) 3. Talleres basados en problemas 4. Las categorías de trabajo independiente son:     Tareas y ejercicios     Preparación de clases     Preparación de Talleres     Proyectos

(2)

Evaluación  Parcial  I       20%   Parcial  II      15%  Parcial  III       15%  Laboratorios       15%   Proyecto I       9%  Proyecto II      8%  Proyecto III       8%  Quices y Tareas     10%   Referencias  Bibliográficas Textos Guia: 1. Eckel, Bruce. Piensa en JAVA, cuarta edición, Prentice Hall, 2007 [BIBLIOTECA] 2. H.M. Deitel / P.J. Deitel, “Java How to Program”,  Quinta Edición. Prentice Hall, 2003 [BIBLIOTECA] Referencias Bibliográficas Libros­Internet: 3. An introduction to object­oriented programming with Java Wu, C. Thomas. 2006. [BIBLIOTECA] 4. Introduction to JAVA programming comprehensive version. Liang, Y. Daniel. 2007. [BIBLIOTECA] 5. Java in two semesters.Charatan, Quentin. 2006. [BIBLIOTECA]. 6. Java generics and collections. Naftalin, Maurice. 2007. [BIBLIOTECA]. 7. Java the complete reference, J2SE 5 edition. Schildt, Herbert.2005. [BIBLIOTECA] 8. Java an introduction to problem solving & programming.2005. [BIBLIOTECA] 9. Savitch, Walter. Resolución de Problemas con C++, Segunda Edición. Prentice Hall, 2000 [BIBLIOTECA] 10. Larman, Craig, UML y Patrones, Segunda Edición, Pearson Educación, 2002. [BIBLIOTECA] 11. Thomas Wu, Introduccion a la Programacion Orientada a Objetos con Java, McGraw Hill, 2001.  [BIBLIOTECA] 12. Booch, G., Rumbaugh, J. y Jacobson, I. El Lenguaje Unificado de Modelado UML,  Pearson Educación,  Segunda Edición 2006. [BIBLIOTECA] 13. Joyanes Luis, Programación Orientada a Objetos, McGraw Hill, 1998 [BIBLIOTECA] 14. Barker Jacquie, Beginning Java Objects: From concepts to Code, Wrox, 2000. ISBN 1861004176.  [BIBLIOTECA] 15. Terrence W. Pratt, Marvin V. Zelkowitz, "Lenguajes de Programación. Diseño e Implementación". Prentice  Hall. 3ra. Ed.1996 [BIBLIOTECA] 16. Bjarne Stroustrup's Home Pages, http://www.research.att.com/~bs/homepage.html  17. http://www.webdeveloper.com/java/java_programming_grounds_up.htm 18. Thinking in Java, http://www.bruceeckel.com 19. http://javaboutique.internet.com/2DTutorial/article_Java2D­Tutorial.html  http://wdvl.internet.com/Authoring/Java/Intro/  20. http://www.serina.es/Bvillarroya/Informatica/tutoriales1_t.html 21.  http://members.tripod.com/~MoisesRBB/tutores.html  22.  http://www.javaworld.com/javaworld/topicalindex/jw­ti­index.html

(3)

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   if   if­else   switch   operador ternario “?”   if­else anidadas   operadores lógicos  Estructuras de repetición  while   do while  for   sentencias de repetición anidadas  break  continue  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  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 4 Definición canónica de una clase 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

(4)

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) 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  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

(5)

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  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 :  4­6 pm 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)  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) 5. JOptionPane

(6)

6. Botones de radio 7. Eventos de mouse y teclado 8. Contenedores  combinados: JFrame con JPanel 9. JTable dentro de Scroll 10. Tarjetero (JTabbedPane) Modelo de eventos Swing 30 Laboratorio GUI avanzado con JTable y JTabbedPane 16 31 Interfaz Gráfica de Usuario avanzada (2) 11. Cajas de chequeo 12. Listas (combos) 13. Seleccionador de archivo 14. 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) 

Figure

Actualización...

Related subjects :