UNIVERSIDAD NACIONAL DEL SUR BAHIA BLANCA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION PROGRAMA DE: PROGRAMACION ORIENTADA A OBJETOS 1 3 CODIGO: 5746 AREA N°: I HORAS DE CLASE TEORICAS Por semana 4 PROFESOR RESPONSABLE PRACTICAS Por Por semana 4 Por PABLO R. FILLOTTRANI ASIGNATURAS CORRELATIVAS PRECEDENTES APROBADAS CURSADAS ELEMENTOS DE PROGRAMACION ESTRUCTURAS DE DATOS Y ALGORITMOS DESCRIPCION: El objetivo de la materia es introducir al alumno las técnicas y herramientas pertenecientes al paradigma de programación determinado por el modelo orientado a objetos. Se comienza con una introducción a los objetivos generales en el desarrollo de software: correctitud, eficiencia, reusabilidad, etc. Luego se introduce el conepto de modularidad, y la necesidad de cambiar el paradigma imperativo de programación. A continuación se muestran los conceptos generales propios del paradigma: clase, objetos, manejo de memoria, herencia, polimorfismo y vinculación dinámica y se analiza la aplicación de estos conceptos en especial al lenguaje de programación Java, pero comparándolos con otros lenguajes tales como C++, Smalltalk y Eiffel. Como resultado de ello el alumno deber ser capaz de programar sistemas pequeños utilizando este paradigma, y de entender la aplicación de cada uno de los conceptos vistos en distintos lenguajes de programación. PROGRAMA SINTETICO: Unidad 1: Introducción a la Programación Orientada a Objetos. Unidad 2: Conceptos básicos de la Programación Orientada a Objetos: Objetos y Clases. Unidad 3: Elementos Complementarios. Unidad 4: Introducción al lenguaje Java. Unidad 5: Conceptos básicos de la Programación Orientada a Objetos: Herencia. Unidad 6: Desarrollo de aplicaciones usando paquetes estándares. Unidad 7: La orientación a objetos en las ciencias de la computación. VIGENCIA AÑOS 2001 UNIVERSIDAD NACIONAL DEL SUR BAHIA BLANCA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION PROGRAMA DE: PROGRAMACION ORIENTADA A OBJETOS 2 3 CODIGO: 5746 AREA N°: I PROGRAMA ANALITICO: Unidad 1: Introducción a la Programación Orientada a Objetos. Motivaciones. Conceptos básicos: Objetos, Clases, Herencia. Objetivos: reusabilidad, programación en gran escala, componentes de software. Niveles de abstracción. Orígenes de los lenguajes orientados a Objetos: revisión de la historia de los lenguajes de programación. Inserción de los lenguajes orientados a objetos. Comparación con el paradigma de la programación estructurada y el lenguaje Pascal. Unidad 2: Conceptos esenciales de la Programación Orientada a Objetos: Objetos y Clases. Clases: definición, elementos, notación. Modelo de computación de la POO. Ejecución de un sistema. Objetos: definición, elementos, notación. Identidad de objetos. Manipulación de objetos por referencia y por valor. Manejo de memoria. Reclamación de espacio y recolección automática de basura. Máquinas virtuales. Unidad 3: Introducción al Lenguaje Java. Historia y objetivos del lenguaje de progamación Java. Características de las plataformas Java. Máquina virtual de Java, soportes. Propiedades fundamentales del lenguaje de programación. Applets y aplicaciones. Estructuras de los sistemas. Sintaxis básica. Uso de ambientes de desarrollo de aplicaciones. Paquetes. Unidad 4: Elementos Complementarios. Genericidad. Clasificación de abstracciones. Clases Genéricas. Función del chequeo de tipos. Entidades genéricas. Operaciones. Aserciones. Objetivos. Fórmulas de correctitud: precondiciones y postcondiciones. Modelo cliente/servidor. Función de las pre y postcondiciones en este modelo. Invariantes de clase. Excepciones. Conceptos básicos del manejo de excepciones. Modelos de manejadores. Soporte en el lenguaje Java. Unidad 5: Conceptos esenciales de la Programación Orientada a Objetos: Herencia. Objetivos. Terminología. Elementos y Notación. Polimorfismo. Chequeo de tipos y herencia. Aplicaciones. Vinculación dinámica de código. Soporte en el lenguaje Java. Clases abstractas. Significado de la herencia. Herencia y aserciones . Clasificación de los distintos usos de la herencia. Herencia simple versus herencia múltiple. Conflictos de la herencia múltiple. Herencia repetida. Técnicas de los lenguajes para la resolución de estos conflictos. Unidad 6: Desarrollo de aplicaciones usando paquetes estándares (API’s) Función de los API’s en el lenguaje Java. Paquetes fundamentales: java.lang y java.util. El paquete java.awt para Interfaces gráficas al usuario (GUI). Arquitectura de una GUI y su interacción con otras clases del sistema. Modelo de componentes y de manejo de eventos. Layouts. Manejo de gráficos y texto. Paquete java.swing. Otros paquetes estándar de Java. Unidad 7: La orientación a objetos en las Ciencias de la Computación. Desarrollo de Software, Bases de Datos, Sistemas Operativos, Lenguajes de Programación. Introducción general a otros lenguajes orientados a objetos (Smalltalk, C++). VIGENCIA AÑOS 2001 UNIVERSIDAD NACIONAL DEL SUR BAHIA BLANCA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION PROGRAMA DE: PROGRAMACION ORIENTADA A OBJETOS 3 3 CODIGO: 5746 AREA N°: I BIBLIOGRAFIA "Object Oriented Software Construction" B. Meyer. Prentice Hall. "Designing Object-Oriented Software" R. Wirfs-Brock, B. Wilkerson, L. Wiener. Prentice Hall. "Object-Oriented Concepts, Databases and Applications" W. Kim, F. Lochovsky editores. ACM Press- Addison Wesley “The Java Programming Language”, 3rd. edition. K. Arnold, J. Gosling. Addison Wesley. “The Java Tutorial: Object Oriented Programming for the Internet” 2nd. edition. M.Campione, K. Walrath. Addison Wesley. “Object Oriented System Development” D. de Champeaux, D. Lea, P. Faure. Addison Wesley. "Smalltalk 80 The Interactive Programming Environment" A. Goldberg. Addison Wesley. "Smalltalk V for Windows" Digitalk Inc. AÑO VIGENCIA DE ESTE PROGRAMA PROFESOR RESPONSABLE (Firma y aclaración) AÑO PROFESOR RESPONSABLE (Firma y aclaración) 2001 CORDINADOR DE AREA FECHA: VIGENCIA AÑOS VISADO SECRETARIO ACADEMICO DIRECTOR DEPARTAMENTO FECHA APROB. CONSEJO DEPARTAMENTAL: 2001