ELO 329
Diseño y Programación Orientados a Objetos
Primer Semestre 2003
Profesor: Agustín J. González
Ayudante: José Gardiazabal
Horario clases: Lunes 12:00-13:30 B-221,   Miércoles 12:00 - 13:30  B-221
Horario de Oficina
Información de contacto:  Oficina: B-322        e-mail: agustin . gonzalez arroa elo.utfsm.cl        Fono: 654196
Lista de correo: lista_elo329 @ elo.utfsm.cl  (ver instrucciones de uso aquí )

Textos: Las clases estarán basadas en los siguientes textos:
    "C++ and Object-Oriented Programming", Kip R. Irvine, Prentice Hall, 1997. ISBN: 0-02-359852-2 (Hay copia en Biblioteca)
    "Data Structures in C++, Using the Standard Template Library", Timothy Budd, Addison Wesley, 1998, ISBN:0-201-30879-7 ( 5 copias se encuentran en Biblioteca)
    "Practical Object-Oriented Development in C++ and Java", Cay S. Horstmann, Jhon Wiley & Sons, 1997, ISBN: 0-471-14767-2 ( Hay una copia en Biblioteca)


Proyectos semestrales de Estudiantes:

En el plazo:
    Christian Lalanne y Rodrigo Pinto: Automatizador de Roles de Turno
    Rodrigo Jorquera : Sistema de información académica mediante applets

Posteriores:
    Marcelo Soto y Carlos Yañez: Aplicación para determinar obstrucción de primera zona de Fresnel
    Alvaro Bravo: Organizador de CDs
    Claudio González: Asignación de Salas en Horarios Extras
    Miguel Azócar Hugo Vargas: Recordon
    Felipe Chaparro:  Cálculo de Remuneraciones


Contenido  (Programa)

    Introducción:
    Pensando Orientado a Objetos
    Diseño Orientado a Objetos
    Algo sobre Ingeniería de de Software
        Material complementario sobre UML

    Nociones básicas de C++
        Material Complementario sobre Makefiles
        Material complementario sobre el Preprosesador C++
        Material complementario sobre entrada y salida
        Material complementario documentación sobre vectores

    Definición y Conversión de Datos
    Introducción a Clases en C++  )
        Tarea sobre manipulación de formato FIG
        Solución dada por Joel Candia (Versión .gz)

    Asignación dinámica de memoria
    Material de estudio personal para ser consultado en clases: Funciones
    Herencia
    Sobrecarga de operadores
    Miembros estáticos y Funciones "Friend" (amigas)
    Funciones Virtuales  (Ejemplo: manipulación de figuras simples)
    Manejo de Excepciones  (Exemplos)
    Plantillas ( Templates )  ( Exemplo: Diccionario )


    // Aqui parten los contenidos a evaluar en Prueba Final

    Bibioteca estándar de Plantillas ( Standard Template Library )
        Vectores < vector > (Ejemplo )
        Listas < list > (Ejemplo Catálogo )

    Java
        Introducción : Un ejemplo simple
        Objetos en Java 
        Interfaces (Ejemplo Clase ordenable) y Como generar documentación con javadoc. Un ejemplo: Account.java y el archivo de documentación obtenido Account.html
        Frameworks y Java Applets
            Ejemplos de Applets:

       Threads (Hilos): Haciendo más de una cosa a la vez. (Tutorial en sitio SUN)
    // Aquí terminan los contenidos a incluir en Certamen Final


       Streams y Persistencia en Java
                Clase para salida tipo printf ,  Ejemplo de su uso .
                Clase para entrada de texto ,   Ejemplo de su uso .
        Excepciones
        Properties



    Evaluación
    60 %    2 Certámenes : 28 de Abril y 23 de Junio
                    Certámenes año 2001: Certamen 1 y Certamen 2
                    Certámenes Año 2002: Certamen 1 y Certamen 2
                    Certámenes Año 2003: Primer Certamen y Solución  y su Histograma de frecuencia
                                                          Certamen Final y su Histograma de Frecuencia de Notas
                    Histograma de Frecuencia de Resultados finales
    25 %   Tareas de programación  Instrucciones para su entrega  Criterio general de evaluación
                  Tarea 1: Manipulación de Figuras: Plazo 22 de abril.
                   Tarea 2: Programa didáctico para Ejercitando Conjuntos: Plazo 19 de mayo, 24:00 hrs.
                   Tarea 3: Investigando el uso de aragorn. Plazo 27 de mayo, 24:00 hrs.
                   Tarea 4: Cronómetro en Applet. (optativa). Plazo 29 de Junio. 24:00

   15 %  Proyecto personal  
                Inscripción de temas                Temas ya inscritos
                Definición: 20% Definición a tiempo. Plazo 5 de Mayo
                Entrega y Demostración: 80 %  Plazo entrega: 9 de Junio   / Demostración 11 y 18 de Junio


Mejores Soluciones a Tareas 

Tarea 1
Álvaro Bravo & Rodrigo Jorquera
Marcelo Solo & Carlos Yáñez
Tarea 2
Fabrizio Paraguirre & Mauricio Maluenda
Chrisitian Lalane & Rodrigo Pinto
Tarea 3
Chrisitian Lalane & Rodrigo Pinto
Claudio González

Resultado de Proyectos de alumnos


Misceláneos

    Ingeniería de Software:

"Ingeniería de software" por Dr, Marcelo Visconti.
UML:
Curso del Departamento Sistemas Informáticos y Computación (DSIC) Universidad Politécnica de Valencia (UPV) - España sobre UML
Encontrá aquí material sobre UML: Unified Modeling Language
Practical UML
 
 Preprocesador C++:
Usando Preprocesador C++
C++ Preprocessor por Sh. Mannan
    C++
Entrada y Salida tomado de Department of Engineering of the University of Cambridge
Compilador C++ GNU
Bibloteca estándar de Plantillas (Standard Template Library) ( local en ELO ) (Documentación C++)
    Java
Documentación Java   "Paltas" técnicas sobre Java (por SUM)

    Sobre evaluación de expresiones aritméticas
    ELO-329    FQA
    Ejemplo de uso de gnuplot
    Manual GNU para make (versión html Local)
    Página de Herramientas GNU portadas a Windows