ELO 329
Diseño y Programación Orientados a Objetos
Primer Semestre 2005 / 31 sesiones
Profesor: Agustín J. González
Ayudante: César Vásquez Ibaceta  Dirección de correo del ayudante: elo329 EN elo PUNTO utfsm PUNTO cl.
Horario clases: Lunes 11:45-13:15 B-221,   Miércoles 11:45 - 13:15  B-221
Horario de Oficina
Información de contacto:  Oficina: B-301        e-mail: Correo Agustín Fono: (32) 654196
Lista de correo: lista_elo329 [@] elo.utfsm.cl  (ver instrucciones de uso aquí )

Textos: Las clases estarán basadas en los siguientes textos:

"Core Java 2, Volume I Fundamentals", Cay S. Horstmann and Gary Cornell, Prentice Hall, 6th. edition 2002. (Hay copia en  Biblioteca)
"Core Java 2, Volume II Advanced Features", Cay S. Horstmann and Gary Cornell, Prentice Hall, 5th edition, 2001. (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)
"The C++ Standard Library", Nicolai M. Josuttis, Addison Wesley, 1999, Printing 2003. (Hay al menos una copia en Biblioteca)
"Applying UML and Patterns", Craig Larman, Prentice Hall, second edition,  2002 ( Hay copias en Biblioteca)

Contenido  (Programa)

2/03 Introducción
7/03 Pensando Orientado a Objetos
9/03 Java y Diseño Orientado a Objetos  (FirstSample.java, Puntos y Lineas)
Java: (Ejemplos del texto guia)
14/03  Sintaxis básica  
16/03 suspensión de actividades por "Semana Mechona"
21/03 Clases y objetos en Java y su documentación Ejemplo: Account y su documentación
23/03-28/03 Herencia   Ejemplos: ManagerTest.java  PersonTest.java  CatsAndDogs.java  EqualsTest.java  ReflexionTest.java
30/03 Interfaces y clases internas  Ejemplos: EmployeeSortTest.java  InnerClassTest.java  AnonymousInnerClassTest.java
4/04   Programación conducida por eventos. ClosableFrame.java  Mimic.java  MimicCharbyChar.java
11/04 Programación gráfica  GlassPaneDemo LayeredPaneDemo  IconDisplayer ShapesDemo2D Sketch.java  MouseTest.Java  Receptores multiples para un evento (MulticastTest.java)
13/04 Indice visual de componentes de Swing
13/04 Administrador de distribución física de componentes (Layout Managers).
18/04 Excepciones en Java ExceptionalTest.java 
20/04-25/04 Applets
Ejemplos:
NotHelloWorldApplet  prueba
TumpleItem Prueba
Calculator.java CalculatorApplet prueba CalculatorPanel.java 
PopupCalculatorApplet  prueba
Chart prueba
TicTacToe
Bookmarks prueba


27/04  Certamen Parcial
Elementos de Ingeniería de Software
2/05-4/05 Conceptos Generales
9/05 Casos de Uso, Tarjetas CRC, y diagramas UML
11/05  Ejemplo Sistema de mensajería

Más Java

16/05 Entrada y Salida en Java   Jerarquia para clases de entrada y salida Ejemplos: Copy.java   DataFileTest.java  ObjectFileTest.java  NewIODemo.java
Manejo de Propiedades (Properties) Ejemplo  (no alcanzamos a cubrirlo pero que queda como material de consulta)
Persistencia en Java y "Serialización"  (Idem)
C++  Página de interés
18/05 No hubo asistencia a clases por paro
23/05 Feriado Glorias Navales
25/05 Ideas básicas  Definición de datos
30/05 Clases
1/06 Asignación dinámica de memoria,  Funciones
6/06 Herencia  Métodos virtuales y ligado dinámico en C++ Sobrecarga de operadores Ejemplos: CVector manipulación de figuras simples
8/06 Miembros estáticos y calificador friend  Manejo de excepciones en C++: Ejemplo
Plantillas en C++ (Templates) Ejemplo

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


    Evaluación   Notas finales: 1/07/2005 Luego de recuperativo 8/07/205 Histogramas 1/07/2005 Luego Recuperativo 8/07/2005
    60 %    2 Certámenes : 27 de Abril (Sala C204)  y 20 de Junio (Sala C-227)
Soluciones
Notas
Histograma
Alumnos destacados (Orden alfabético)
Primer Certamen
C1.notas()
C1.histograma()
Eduardo González, Felipe Jara, Rodrigo Loyola, Miguel Rebolledo, Rodrigo Vidal
 Segundo Certamen
C2.notas()
 C2.histograma()
 Romain Barrallon, Eduardo González, Ingo Steidl, Karl Sterneberg

                    Certámenes año 2004: Certamen 1 y su  HistogramaCertamen Final y su Histograma.
    Certámenes año 2003: Certamen 1  y su HistogramaCertamen Final y su HistogramaHistograma Resultados finales
                    Certámenes año 2002: Certamen 1 y Certamen 2
                    Certámenes año 2001: Certamen 1 y Certamen 2
    25 %   Tareas de programación  Instrucciones para su entrega  Criterio general de evaluación Chequeo de estilo
    15 %  Proyecto personal              Inscripción de temas                Temas ya inscritos
                Inscripción: 10% Definición a tiempo. Plazo 9 de Mayo 23:59 [h]
                Resultados y Demostración: 90 %  Demostración 13 y 15 de Junio
                Usamos la tómbola para definir el orden. Orden obtenido.
NOTA: Su promedio de certámenes debe ser superior o igual a 55 50 para que su proyecto y tareas de programación sean consideradas.


Tareas y sus mejores Soluciones 

Evaluación
Mejores Soluciones
Tarea 1: Clase Vector. Plazo 1 4 de Abril,  20:00 hrs.
TestVector usados por el ayudante (dos versiones por error en multiplicacionPorEscarlar(float m).
Resumen  Detalle
Eduardo A. González Fisher
Gustavo A. Valdés Aracena Miguel Rebolledo
Tarea 2: Editor de figuras simples: Plazo 19 21de Abril, 20:00 hrs.
Otra solución: como aplicación, como Applet Prueba (las otras clases) Diagrama de clases simple
Resumen
Detalles
Karl Gustav Sterneberg


Tarea 3: Applet: Puzzle: Plazo 27 30 de Mayo, 20:00 hrs
Detalles
Eduardo A. González Fisher


Tarea 4: (Voluntaria, reemplaza peor nota de tareas) Conjuntos: Plazo 28 de Junio , 20:00 hrs.





Proyectos
  1. Romain Barrallon, Víctor Contreras, y Karl Sterneberg: Robot Lego Programado con Java
  2. Eduardo Alarcón y Leonardo Collao: Interfaz Gráfica para Aplicación en Educación
  3. Alexandre Calonne, Nicolás Navarro, e Ingo Steidl: El Juego del Colgado
  4. Rodrigo Vizcarra : Sistema Monitor para Rondas de Vigilancia
  5. Gustavo Valdés: Sistema de Contacto con Ex-alumnos
  6. Nadia Herrera y Rodrigo Vidal: Detección y Seguimiento de Objetivo
  7. Eduardo González y Carlos Silva: ezProScout
  8. José Luis Valenzuela y José Ulloa: Control y Monitoreo de una Fuente Regulada de Alto Voltaje 15/06
  9. Bruno Mundaca: Administración de Fichas Psiquiatricas 19/06
  10. Felipe Jara e Ignacio Zamora: Programación Java Pocket PC
  11. René Harb y Miguel Rebolledo: JFarma  No entrega a tiempo
  12. Felipe Salas: Cultivo a Distancia  No entrega a tiempo
  13. Eduardo Durán y Sergio Catalán: Plataforma Comunicacional Club Unión Santa María
  14. Tamara Ramírez y Jaime Díaz : Interfaz gráfica de comunicación serial para la planta "Plataforma Bola" 
  15. Daniel Arancibia y César León:  Administrador de Atención Médico Domiciliaria 
  16. Patricio Denzer: Sistema de Gestión de Rutas - TEFIX LTDA 15/06
  17. Rodrigo Orellana y Jean Paul Berrios:  Agenda Java Segura No entrega a tiempo 
  18. Fracisco Castillo y Juan Rodríguez : Administrador de Redes
  19. Felipe Galaz y Sebastián Meric : Software de Gestión de las actividades diarias para Jardín Infantil No entrega a tiempo
  20. Rodrigo Loyola : Desarrollo multiplataforma con wxWindows 

Misceláneos
  Resultados de Encuesta Docente 2004

  Página ELO329 año 2004 2003  

Ingeniería de Software:

Artículo que compara distintas metodologías de calidad
"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
Editores: XEmacs (win o Linux) , jgrasp (Java), otros que no he tenido oportunidad de probar: kate (Linux), Netbeans  (viene con J2SE5.0)
Sistema de desarrollo: J2SE5.0
Documentación Java
   "Paltas" técnicas sobre Java (por SUM)
Comparación entre Java y C# "A comparison of Microsoft's C# programming Language to Sun Microsystem Java Programming Language" by Dare Obasanjo.

Otros:
    Ejemplo de perfil típico pedido en varios trabajos.
    Clase magistal de Don Federico Mayor Zaragoza: "La Universidad, pieza clave para un futuro más justo" versión Windows Media player Cable moden o ADSL, versión RealPlayer ~35kbps
    Sobre evaluación de expresiones aritméticas
    ELO-329    FQA
    Ejemplo de uso de gnuplot
    Compilación con MAKE:
Tutorial simple (orientado a C, C++)
Ejemplo de Java Makefile
Manual GNU para make (versión html Local) 
    Página de Herramientas GNU portadas a Windows
Servicio de Contadores y Estadísticas ELO