ASIGNATURA: ESTRUCTURA DE DATOS III Cód.: 31-307 Régimen: Cuatrimestral Horas semanales: 4 horas Escuela: Sistemas 2010 FUNDAMENTOS: Esta área está organizada para que los estudiantes adquieran el criterio y la comprensión de las estructuras y objetivos de los lenguajes operativos en computadoras, así como su sintaxis y semántica. Complementariamente, los campos particulares de aplicación para los cuales cada uno de ellos ha sido construido. También debe cubrir las pautas actualizadas de requerimientos del mercado laboral. El estudiante debe estar capacitado para afrontar los avances y desarrollos tecnológicos futuros. Actualmente, la disciplina de modelar y construir algoritmos transita por un constante transvasamiento y complementación entre técnicas estructuradas y orientadas a objetos, fuertemente influenciada por los entornos basados en interfaces gráficas del usuario y posibilidades de multimedios. Esta área cubre con un balance adecuado la necesidad de preparar al profesional en las pautas teórico prácticas y los criterios de complementación necesarios. OBJETIVOS: Al finalizar el curso, el estudiante habrá adquirido las habilidades necesarias y suficientes para redactar en forma, lógica sintáctica y semánticamente correctas, programas orientados a objetos en lenguaje Java que demanda el mercado. Estos programas estarán basados en los principios fundamentales del paradigma: encapsulamiento, polimorfismo y herencia. CONTENIDOS MINIMOS - Unidad I: Introducción a Java - Unidad II: Estructuras fundamentales de programación en Java. - Unidad III: Objetos y clases. - Unidad IV: Herencia. - Unidad V: Interfaces y clases internas. - Unidad VI: Excepciones y depuración. - Unidad VII: Secuencias y archivos. - Unidad VIII: Programación genérica. - Unidad IX: Anotaciones - Unidad X: Internacionalización
PROGRAMA ANALITICO Unidad I: Introducción a Java. Por qué Java? Características del lenguaje: Sencillo. Orientado a Objetos. Distribuido. Robusto. Seguro. Neutro respecto a la arquitectura. Adaptable. Interpretado. De Alto Rendimiento. Multihilo. Dinámico. Versiones del lenguaje. Entorno de Programación de Java. Unidad II: Estructuras fundamentales de Programación en Java. Comentarios. Tipos de Datos. Variables. Constantes. Operadores. Métodos y constantes de la clase Math. Conversiones entre tipos numéricos. Refundiciones (Casteo). Tipos enumerados. Cadenas (clase String). Entrada (clase Scanner) y Salida (System.out). Formatos de los resultados (printf) Flujo de control. Sentencias break y continue. Clases para manipular números que consten de una secuencia de cifras de longitud arbitraria: BigInteger y BigDecimal. Arreglos: Declaración, inicialización, copia de arreglos, ordenamiento y búsqueda. Parámetros de la línea de órdenes o comandos. Unidad III: Objetos y Clases. Introducción a la programación orientada a objetos. Concepto de Clases, Objetos, Encapsulamiento, Herencia. Relaciones entre Clases. Notación UML. Utilización de clases predefinidas: Date. GregorianCalendar. Definición de clases propias. Métodos. Métodos constructores. Métodos de consulta y modificación. Métodos privados. Atributos y métodos estáticos. Métodos factoría. El método main. Parámetros de los métodos. Métodos sobrecargados. Paquetes. Importación de clases. Importaciones estáticas. Comentarios de la documentación. Unidad IV: Herencia. Concepto de herencia. Clases, superclases y subclases. Polimorfismo. Enlazado dinámico. Clases y métodos finales. Refundición o casteo. Clases abstractas. Acceso protegido. Object. Métodos de Object. Clase ArrayList. Envoltorio de objetos y empaquetado. Métodos con un número variable de parámetros. Introspección (Reflection): Clases Class, Field, Method, Constructor, Modifier. Clases de Enumeración. Unidad V: Interfaces y clases internas. Concepto de interfaces. Interfaz Comparable. Propiedades de las interfaces. Interfaces y clases abstractas. Clonación de objetos. Interfaz Cloneable. Interfaces y retrollamadas. Clases internas. Clases internas locales. Clases internas anónimas. Unidad VI: Excepciones y depuración. Clasificación de excepciones. Las clases Error y RuntimeException. Como lanzar una Exception. Creación de clases Exception. Captura de Exceptions. Relanzamiento y encadenamiento de Exceptions. Cláusula finally. Análisis de los elementos de un seguimiento de pila. Generación de logs. Clase Logger. Niveles de Logs. Uso de aserciones. Técnicas de depuración. Unidad VII: Secuencias y archivos. Secuencias. Lectura y escritura de bytes. Jerarquía de secuencias de entrada y salida. Secuencias de datos. Secuencias de archivos de acceso aleatorio. Secuencias de texto. Clase StringBuilder. Secuencias de Objetos. Serialización. Manejo de archivos: La clase File. FilenameFilter. Expresiones regulares.
Unidad VIII: Programación Genérica Justificación. Definición de una clase genérica sencilla. Métodos genéricos. Código genérico y máquina virtual. Traducción de expresiones genéricas y métodos genéricos. Tipos comodín. Unidad IX: Anotaciones Concepto de Metadatos. Concepto de anotaciones. Sintaxis de las anotaciones. Anotaciones estándar: Anotaciones normales. Meta anotaciones. Herramienta Apt para el procesamiento de anotaciones en el nivel de código fuente. Unidad X: Internacionalización Ubicaciones (Locale). Formatos numéricos (NumberFormat), Monetarios (Currency), Fecha y hora (DateFormat) y Mensajes (MessageFormat). Adaptación de recursos a una ubicación (ResourceBundle) DESCRIPCION DE LA ACTIVIDAD CURRICULAR: La duración del curso es de quince semanas de cuatro horas (teoría 2 horas y práctica 2 horas) de duración, con una asistencia mínima del 75% y examen final. El desarrollo de las temáticas se hará en forma teórico práctica en el ámbito del laboratorio de computación y teniendo como base la apoyatura del conocimiento y consulta instrumental de un manual del lenguaje en uso. Las dos primeras horas se destinarán a teoría y consultas. En las restantes dos horas se desarrollarán los fundamentos de los temas principales. El curso se fraccionará en tantos grupos como equipamientos de procesamiento individual se dispongan. Los contenidos de cada clase consistirán en el desarrollo, prueba, depuración de errores y obtención de resultados de ejemplos que cubran las distintas temáticas del curso. Cada estudiante deberá confeccionar y mantener actualizado un soporte magnético con toda la ejercitación que le haya sido indicado encarar y resolver, más una impresión en forma de grilla con las clases y métodos de estos contenidos. Esta documentación le servirá al estudiante como ayuda memoria, pudiendo estar presente en el momento de rendir un parcial o final. Durante la cursada se evaluará al estudiante a través de: Breve desarrollo, sobre el equipamiento, de temas tratados de puntos tratados; tal que represente todo el proceso desde su análisis hasta la obtención de resultados. Evaluación de la capacidad del estudiante en aplicar los principios del paradigma en la solución de los problemas dados. Parcial resolutivo, sobre el equipamiento de un ejercicio práctico con la posibilidad de tener la grilla impresa de clases y métodos. Opinión formada por el docente.
CRONOGRAMA Unidad I: 1 clase. Unidad II: 1 clase. Unidad III: 2 clases. Unidad IV: 2 clases. Unidad V: 1 clase. Unidad VI: 1 clase. Unidad VII: 1 clase. Unidad VIII: 1 clase. Unidad IX: 1 clase. Unidad X: 1 clase.
CRONOGRAMA: CLASE UNIDAD TEMA TEORIA ACTIVIDADES PRACTICAS (hs) OBSERVACIONES TP PROB OTROS 1 I I Unidad I: Introducción a Java. Por qué Java? Características del lenguaje: Sencillo. Orientado a Objetos. Distribuido. Robusto. Seguro. Neutro respecto a la arquitectura. Adaptable. Interpretado. De Alto Rendimiento. Multihilo. Dinámico. Versiones del lenguaje. Entorno de Programación de Java. 2 II Unidad II: Estructuras fundamentales de Programación en Java. :Comentarios. Tipos de Datos. Variables. Constantes. Operadores. Métodos y constantes de la clase Math. Conversiones entre tipos numéricos. Refundiciones (Casteo). Tipos enumerados. Cadenas (clase String). Entrada (clase Scanner) y Salida (System.out).
Formatos de los resultados (printf) Flujo de control. Sentencias break y continue. Clases para manipular números que consten de una secuencia de cifras de longitud arbitraria: BigInteger y BigDecimal. Arreglos: Declaración, inicialización, copia de arreglos, ordenamiento y búsqueda. Parámetros de la línea de órdenes o comandos 3 III Unidad III: Objetos y Clases. Introducción a la programación orientada a objetos. Concepto de Clases, Objetos, Encapsulamiento, Herencia. Relaciones entre Clases. Notación UML. Utilización de clases predefinidas: Date. GregorianCalendar. Definición de clases propias. Métodos. Métodos constructores. 4 III Métodos de consulta y modificación. Métodos privados. Atributos y métodos estáticos. Métodos factoría. El método main. Parámetros de los métodos. Métodos sobrecargados. Paquetes. Importación de clases. Importaciones estáticas. Comentarios de la documentación
5 IV Unidad IV: Herencia. Concepto de herencia. Clases, superclases y subclases. Polimorfismo. Enlazado dinámico. Clases y métodos finales. Refundición o casteo. Clases abstractas. Acceso protegido. Object. Métodos de Object. Clase ArrayList.. 6 IV Unidad IV: Herencia. Envoltorio de objetos y empaquetado. Métodos con un número variable de parámetros. Introspección (Reflection): Clases Class, Field, Method, Constructor, Modifier. Clases de Enumeración.
7 V Unidad V: Interfaces y clases internas. Concepto de interfaces. Interfaz Comparable. Propiedades de las interfaces. Interfaces y clases abstractas. Clonación de objetos. Interfaz Cloneable. Interfaces y retrollamadas. Clases internas. Clases internas locales. Clases internas anónimas 8 VI Unidad VI: Excepciones y depuración. Clasificación de excepciones. Las clases Error y RuntimeException. Como lanzar una Exception. Creación de clases Exception. Captura de Exceptions. Relanzamiento y encadenamiento de Exceptions. Cláusula finally. Análisis de los elementos de un seguimiento de pila. Generación de logs. Clase Logger. Niveles de Logs. Uso de aserciones. Técnicas de depuración.
9 VII Unidad VII: Secuencias y archivos. Secuencias. Lectura y escritura de bytes. Jerarquía de secuencias de entrada y salida. Secuencias de datos. Secuencias de archivos de acceso aleatorio. Secuencias de texto. Clase StringBuilder. Secuencias de Objetos. Serialización. Manejo de archivos: La clase File. FilenameFilter. Expresiones regulares. 10 VIII Unidad VIII: Programación Genérica Justificación. Definición de una clase genérica sencilla. Métodos genéricos. Código genérico y máquina virtual. Traducción de expresiones genéricas y métodos genéricos. Tipos comodín.
11 IX Unidad IX: Anotaciones Concepto de Metadatos. Concepto de anotaciones. Sintaxis de las anotaciones. Anotaciones estándar: Anotaciones normales. Meta anotaciones. Herramienta Apt para el procesamiento de anotaciones en el nivel de código fuente. 12 X Unidad X: Internacionalización Ubicaciones (Locale). Formatos numéricos (NumberFormat), Monetarios (Currency), Fecha y hora (DateFormat) y Mensajes (MessageFormat). Adaptación de recursos a una ubicación (ResourceBundle) 13 Repaso general 14 Parcial y repaso Parcial 15 Recuparatorio, repaso y firma de Recuperatorios libretas TOTAL 30 26 4 BIBLIOGRAFIA: - DEITEL, H. M. y DEITEL P. J.: Cómo programar en Java. Editorial Prentice Hall. México, 2004 - ECKEL, BRUCE: Piensa en Java. Ed. Pearson Educación. 200