Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería Programa de Programación II. Prof. María Feldgen Carrera: Ingeniería en Informática Ubicación en el Plan de Estudios : 3 er Año , cuatrimestral Carga Horaria : 8 hs de 45 minutos / semana ( 15 clases ) Objetivos: Al terminar el curso el alumno estará en condiciones de programar aplicaciones en Java, comprender los principios de la programación orientada a objetos e integrar en sus aplicaciones clases, objetos y componentes disponibles. El alumno comprenderá las restricciones y metodologías asociadas a la construcción de interfaces visuales Programa Analítico: Introducción al lenguaje Java. (1 clase) Principios del lenguaje de programación Java. La máquina virtual Java. Portabilidad entre plataformas. Instalación y uso en cada plataforma. Modelo dinámico de carga de clases. Paradigma de Programación orientada a objetos. (1 clase) Conceptos de tipo de dato abstracto (TDA). Abstracción, encapsulamiento y ocultamiento. Especificación de un TDA. Variantes e invariantes de algoritmos. Cifras de mérito para el diseño e implementación de un TAD (acople y cohesión). Delegación o herencia. Programación orientada a objetos en Java.(1 clase) Introducción a los conceptos de clase, objeto, herencia, interfaz y paquete en Java. Métodos, mensajes, clases dinámicas y estáticas. interacción entre objetos. Librería de clases. Relación entre objetos, clases y archivos Java. Objetos y clases. Tipos de datos primitivos y de referencia. Arreglos y arreglos multidimensionales. Boxing. Introducción al manejo de excepciones. Entrada/salida simple basada en interfaz de usuario con ventanas. Análisis y diseño orientado a objetos.(4 clases) Repaso de diagramas UML y Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería formalización. Análisis de requerimientos: Casos de Uso y diagrama de clases inicial. Análisis: diagramas de robustez o de objetos , diagrama de clases y paquetes. Diseño: diagramas de secuencia y de colaboración. Diseño Detallado: Técnicas de especificación de métodos. Uso de los diagramas en el framework de Java. Anotaciones y documentación en el código. Herencia y polimorfismo.(1 clase) Extensión de clases y objetos. Modelización de comportamiento. Sobrecarga y polimorfismo. Uso en el diseño. Organización de objetos y clases múltiples. Clases abstractas y métodos. Patrón de diseño: Contenedor. Creación y uso de Interfaces. Patrón de diseño: Observador. Excepciones. Jerarquías. Interfaz gráfica de usuario (GUI).(4 clases) Principios generales de uso y diseño. Manejo de objetos en la GUI. Administradores de disposición (Layout Manager). Necesidad y uso. Eventos. Botones, casillas de activación y botones de opción. Selectores, listas y cuadros de lista desplegables. Gráficos, imágenes, texto y fuentes. Menús, cuadros de diálogo y ventanas. Barras de progreso, barras de desplazamiento, separadores y cuadros de Desplazamiento. Tratamiento y ajuste de imágenes. Patrón de diseño: MVC (Model View Controller: Modelo Vista Controlador). Framework de Colecciones y Genericidad.(1 clase) Colecciones.y mapas. Iteradores y comparadores. Implementaciones de propósito general y "wrappers". Implementaciones abstractas. Uso de colecciones genéricas. Uso de tipos de parámetros en clases genéricas. Refactorización. Hebras o hilos de control en Java (Threads).(1 clase) Introducción a hebras. Comparación con procesos. Ciclo de vida de una hebra. Diseño de una hebra sus subclases e interfaces. Control de una hebra y establecimiento de prioridades. Sincronización y el problema de los recursos compartidos. Restricciones. Comunicación entre hebras. Bibliografía: Documentación de Java de SUN: http://java.sun.com/javaSE/6/docs. Java. Cómo programar. Deitel, P. J. , Deitel, H. M. , 7º edición, Pearson Education, 2008. Programación en Java 5.0. Cohoon, J. , Davidson, J., Mc. Graw Hill, 2006. Pontificia Universidad Católica Argentina “SANTA MARÍA DE LOS BUENOS AIRES” Facultad de Ciencias Fisicomatemáticas e Ingeniería Metodología de enseñanza Exposición teórica de conceptos y análisis de casos. Comparación de técnicas e implementaciones, con trabajo de campo y trabajos prácticos de aplicación. Modalidad de Evaluación Parcial Preguntas teóricas y resolución de ejercicios prácticos. En la evaluación parcial se evaluarán la programación y la aplicación de los contenidos que corresponden a las unidades del programa analítico. Modalidad de Evaluación Final Por proyecto en grupos de 2 a 3 personas de una aplicación completa con su correspondiente análisis y diseño con los diagramas UML, especificación de métodos e implementación en lenguaje Java. Se evaluará la completitud de cada una de las partes solicitadas del trabajo grupal y se harán preguntas orales individuales a los integrantes del grupo.