PARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN Identificación: Carrera y plan: Analista Programador Universitario Plan 2008. Asignatura: Programación Orientada a Objetos. Condiciones para el desarrollo de la Asignatura: Cantidad estimada de alumnos para el cursado: formación de comisiones de 30 alumnos. Conocimientos previos requeridos: conceptos de programación, estructuras de programación y práctica en lenguajes de programación (Programación Estructurada). Conocimientos previos deseables: Nociones básicas de computación y manejo de computadoras (Herramientas Informáticas I y II). Conceptos y práctica en computadora de SQL (Base de Datos I). Conceptos y práctica de Servidor de Base de Datos y gestión de Sistemas Operativos (Lab. Sistemas Operativos I). Recursos Físicos: Aula dotada con 15 computadoras para el desarrollo de las prácticas. Conexión de red interna en el aula para aplicar la metodología de trabajo de las clases. Acceso a la plataforma de enseñanza de la asignatura (Campus Virtual) para el acceso a los recursos de la asignatura. Plan de Estudios PARTE2: CARACTERÍSTICAS DE LA ASIGNATURA ASIGNATURA Programación Orientada a Objetos CARRERA CATEDRA Analista Programador Universitario PLAN DE ESTUDIO AREA CURSO CARÁCTER 2008 Tecnologías Básicas 2 do Año Teórico Práctica Régimen de Dictado Carga Horaria Acreditación Cuatrimestral 5 horas / Semana 75 horas Totales Promoción sin Examen Final
Régimen de Correlatividades Para el año 2011 no existe régimen de correlatividades para el cursado de la asignatura, tampoco para poder cursar una posterior asignatura. Sin embargo el contenido de la asignatura exige conocimientos previos (Ver Conocimientos previos requeridos y deseables) coherentes con el plan de estudio vigente y está orientado brindar las herramientas necesarias para las asignaturas que suceden a la misma. Contenidos Mínimos de la Asignatura Panorámica de los modelos o paradigmas de programación. Aspectos multidisciplinares de la programación: organización y persistencia de los datos, bases de datos, interfaz de usuario, concurrencia, interfaz con el sistema operativo, etc. Programación orientada a objetos. Clases, objetos, atributos, ocultación. Herencia. Generalidad, extensibilidad, polimorfismo. Modelos de datos orientados a objetos. Jerarquías de composición y especialización. Lenguajes de Programación Orientada a Objetos (POO). POO con lenguajes convencionales. Desarrollo de programas orientados a objetos. Identificación de clases y objetos. Identificación de relaciones. Organización modular. Jerarquía de uso. Programación de prototipos. Software de 4º generación. Objetivos Generales de la Asignatura para el ciclo 2011 Lograr que los alumnos comprendan los conceptos fundamentales del paradigma orientado a objetos. Lograr que los alumnos apliquen los conceptos fundamentales del paradigma orientado a objetos en un lenguaje orientado a objetos. Lograr que el alumno genere un modelo de datos orientado a objetos y lo implemente combinando un lenguaje orientado a objetos, buenas prácticas de programación y un framework de desarrollo. Contenidos mínimos específicos del ciclo lectivo 2011 Estudio y uso de la plataforma JAVA J2SE para el desarrollo de aplicaciones orientadas a objetos. Persistencia de objetos usando JDBC, Patrón de Diseño DAO y el framework HIBERNATE Especificación básica de requerimientos, análisis, diseño y construcción de aplicaciones en capas para la resolución de un proyecto. Nota Importante: La vigencia de estos contenidos rigen hasta la finalización del ciclo lectivo 2011, los alumnos que deseen presentarse libres rinden hasta el final del ciclo con este programa al igual que los alumnos que hayan cursado en años anteriores.
PARTE 3: METODOLOGÍA DE APRENDIZAJE Proceso de Enseñanza Para el año 2011 la cursada de la asignatura se desarrolla en el primer cuatrimestre. Los contenidos están definidos para ser soporte de la asignatura Programación Visual del segundo cuatrimestre, dando una continuidad muy fuerte al proceso de enseñanza del paradigma orientado a objetos. Evaluación del Proceso Los contenidos teóricos prácticos se realizan mediante exposiciones en clases usando pizarra, ejemplos y recursos multimedia. La asignatura provee apuntes desarrollados específicamente por el docente a cargo en formato digital, así como las presentaciones de los contenidos teóricos prácticos y las referencias de bibliografía adicional. Se prevé dos exámenes eliminatorios con sus respectivos recuperatorios. El primer examen será de carácter teórico práctico. El Segundo examen será exclusivamente práctico. Finalmente los alumnos formarán grupos de trabajo para el desarrollo y defensa personal de un proyecto de desarrollo de software basado en un caso de estudio siguiendo la metodología de desarrollo propuesta por la asignatura. Evaluación de Resultados Los parciales deben ser aprobados con una nota igual o superior a la definida convenientemente por el docente a cargo. La aprobación de los exámenes es requisito para poder iniciar el desarrollo del trabajo final. La defensa del trabajo final es individual. PARTE 4: CONDICIONES PARA LA ACREDITACION Promoción sin examen final: Los alumnos deben aprobar los dos exámenes propuestos en la cursada. Para poder brindar cada examen el alumno debe tener el 80 % de asistencia a clases (incluidas las teórico - prácticas) y tener aprobados el 100% de los trabajos prácticos. Para aprobar la asignatura el alumno debe aprobar la defensa individual del trabajo grupal. La nota final resulta del promedio de los exámenes y la nota de la defensa del proyecto final. No existe régimen de regularidad de la asignatura para el presente ciclo lectivo. Régimen para alumnos libres: Los alumnos que deseen presentarse a rendir la asignatura en condición de alumnos libres deben rendir un examen teórico de los contenidos teórico prácticos de la asignatura (esto es considerar los contenidos mínimos de la asignatura y los contenidos específicos para el ciclo 2011). Aprobada esta instancia con una nota igual o superior a 7, el alumno debe rendir un examen práctico en máquina el cual debe aprobar con nota igual o superior a 8. La nota final resulta del promedio del resultado de ambos exámenes.
UNIDAD 1: Paradigmas de Programación PARTE 5:PROGRAMA ANALITICO Conceptos. Tipos de Paradigmas más comunes. Paradigma Imperativo. Paradigma Funcional. Paradigma Lógico. Paradigma Declarativo. Ejemplos y comparación. UNIDAD 2: Introducción al Paradigma Orientado a Objetos Ingeniería del Software. Conceptos introductorios al paradigma. Clases y objetos. Objetos tangibles e intangibles del dominio del problema y objetos del espacio de soluciones. Abstracción. Encapsulamiento. Identidad. Clasificación. Mecanismo de herencia y Polimorfismo. UNIDAD 3: Introducción al Lenguaje JAVA Sintaxis y semántica. Tipos de datos primitivos y complejos. Estructura de datos. Uso de Strings, matrices y colecciones. Tipos de datos genéricos. Resumen de semejanzas y diferencias entre lenguajes de Programación Orientado a Objetos modernos. UNIDAD 4: Estudio de la plataforma J2SE Especificación de clases. Creación y destrucción de objetos. Envío de mensajes. Especificación de herencia y polimorfismo. Implementación de métodos. Constructores. Sobreescritura y sobrecarga de métodos. Manejo de constantes. Implementación de paquetes. Métodos y atributos estáticos. UNIDAD 5: Diseño de interfaz de usuario Interfaz SWING. Descripción de JFC (Java Foundation Classes). Eventos en Java SWING. Planificación de diseño de la aplicación. Adición de componentes de interfaz de usuarios. Jerarquía de componentes: contenedores y componentes atómicos. Generación de bibliotecas de componentes: Java beans en SWING. UNIDAD 6: Acceso a datos con HIBERNATE Conceptos básicos de persistencia de objetos. Introducción al Framework HIBERNATE. Conexión a un motor de base de datos. Diseño de un modelo de datos. Implementación de la capa de persistencia: Patrón DAO. Integración de HIBERNATE en aplicación SWING. UNIDAD 7: Resolución de un Proyecto Seguimiento en el diseño de una aplicación básica usando las tecnologías estudiadas. Especificación básica de requerimientos, análisis, diseño y construcción de una aplicación en capas.
PARTE 6: PLANIFICACIÓN DE LAS CLASES Recursos Humanos 1 Profesor Adjunto 1 Jefe de Trabajos Prácticos 1 Ayudante de Primera Cronograma de clases Clase Contenidos 28-03 (T- Presentación de la asignatura, integrantes, recursos, modalidad de evaluación. UNIDAD 1: Paradigmas de Programación Conceptos. Tipos de Paradigmas más comunes. Paradigma Imperativo. Paradigma Funcional. Paradigma Lógico. Paradigma Declarativo. Ejemplos y comparación. UNIDAD 2: Introducción al Paradigma Orientado a Objetos Ingeniería del Software. Conceptos introductorios al paradigma. Clases y objetos. Objetos tangibles e intangibles del dominio del problema y objetos del espacio de soluciones. Abstracción. Encapsulamiento. Identidad. Clasificación. Mecanismo de herencia y Polimorfismo. Práctica: Creación de nuestra primera clase JAVA en un IDE 30-03 ( Trabajo Práctico N 1: Abstracción de Objetos. Uso de un IDE: Generación de clases. Debugger, prueba de escritorio usando el IDE. 04-04 (T- UNIDAD 3: Introducción al Lenguaje JAVA Sintaxis y semántica. Tipos de datos primitivos y complejos. Estructura de datos. Uso de Strings, matrices y colecciones. Trabajo Práctico N 2 Introducción al Lenguaje JAVA: Sintaxis y semántica. Tipos de datos primitivos y Complejos. Estructuras de datos. 06-04 ( Trabajo Práctico N 2 Introducción al Lenguaje JAVA: Sintaxis y semántica. Tipos de datos primitivos y Complejos. Estructuras de datos. 11-04 (T- UNIDAD 3: Introducción al Lenguaje JAVA Tipos de datos genéricos. Resumen de semejanzas y diferencias entre lenguajes de Programación Orientado a Objetos modernos. UNIDAD 4: Estudio de la plataforma J2SE Especificación de clases. Creación y destrucción de objetos. Implementación de métodos. Constructores. Implementación de métodos. Práctico N 3: Estudio de la plataforma J2SE (Clases, atributos, métodos, envío de mensajes, constructores)
13 04 ( Práctico N 3: Estudio de la plataforma J2SE (Clases, atributos, métodos, envío de mensajes, constructores) 18-04 (T- UNIDAD 4: Estudio de la plataforma J2SE Especificación de herencia y polimorfismo. Sobreescritura y sobrecarga de métodos. Manejo de constantes. Métodos y atributos estáticos. Trabajo Práctico N 4: Estudio de la plataforma J2SE (Herencia, polimorfismo. Sobreescritura y sobrecarga de métodos. Constantes. Métodos y atributos estáticos) 20-04 ( Trabajo Práctico N 4: Estudio de la plataforma J2SE (Herencia, polimorfismo. Sobreescritura y sobrecarga de métodos. Constantes. Métodos y atributos estáticos) 25-04 (T - Trabajo Práctico N 4: Estudio de la plataforma J2SE (Herencia, polimorfismo. Sobreescritura y sobrecarga de métodos. Constantes. Métodos y atributos estáticos) UNIDAD 5: Diseño de interfaz de usuario Interfaz SWING. Descripción de JFC (Java Foundation Classes). Eventos en Java SWING. Planificación de diseño de la aplicación. Adición de componentes de interfaz de usuarios. Jerarquía de componentes: contenedores y componentes atómicos. 27 04 ( Trabajo Práctico N 5: Interfaz SWING 02 05 (T- Trabajo Práctico N 5: Interfaz SWING Consulta general y trabajo repaso unidades 1 al 4 04 05 ( Parcial 1: Unidades 1 al 4 09 05 (T - UNIDAD 5: Diseño de interfaz de usuario Generación de bibliotecas de componentes: java beans. Practica guiada. 11 05 ( Parcial Recuperatorio: Unidades 1 al 4 16 05 (T - UNIDAD 6: Acceso a datos con HIBERNATE Conceptos básicos de persistencia de objetos. Introducción al Framework HIBERNATE. Conexión a un motor de base de datos. Diseño de un modelo de datos. Implementación de la capa de persistencia: Patrón DAO. Integración de HIBERNATE en aplicación SWING. Ejemplo Mapeo clase tabla
18 05 ( Trabajo Práctico 6: HIBERNATE mapeo tabla clase 23 05 (T - 30 05 (T - UNIDAD 6: Acceso a datos con HIBERNATE Ejemplo Mapeo relación muchos a uno. Ejemplo Mapeo relación uno a muchos UNIDAD 6: Accesos a datos con HIBERNATE Trabajo Práctico N 7: HIBERNATE mapeo relación muchos a uno uno a muchos 01 06 ( UNIDAD 6: Acceso a datos con HIBERNATE Ejemplo Mapeo de herencia Consulta general y trabajo repaso unidades 4 a 6 06 06 (T - Parcial 2: Unidades 4 a 6 08 06 ( Formación de grupos con alumnos aprobados UNIDAD 7: Resolución de un proyecto Especificación básica de requerimientos, análisis, diseño y construcción de una aplicación en capas 13 06 (T - Parcial Recuperatorio: Unidades 4 a 6 15 06 ( Formación de grupos con alumnos aprobados en recuperatorio Seguimiento de Proyecto 20 06 (T - Seguimiento de proyectos 22 06 ( Seguimiento de proyectos 27 06 (T - Seguimiento de proyectos 29 06 ( Defensa de proyectos 04 07 (T - Defensa de proyectos 06 07 ( Taller sobre nuevas tecnologías en JAVA. Cierre de notas.
PARTE 7: BIBLIOGRAFIA Nombre Autor Año ISBN Orientación a Objetos con JAVA y Carlos Fontella 2009 9871104200 UML * Estructura de datos en Java * Luis Joyanes Aguilar 2007 8448156315 Como Programar JAVA séptima DEITEL DEITEL 2008 9789702611905 edición JAVA Persistence with Christian Bauer and Gavin 2007 19332394885 HIBERNATE Revised Edition of Hibernate in Action King *En biblioteca Ariel Alejandro Vega Ingeniero en Informática Profesor Adjunto a cargo