ELO 329
Diseño y Programación Orientados a Objetos
Primer Semestre 2009 (32 sesiones)
Profesor: Agustín J. González
Ayudante: Tomás Girardi,  Dirección de correo del ayudante: elo329 ARROBA elo PUNTO utfsm PUNTO cl.
Horario clases: Lunes 12:00-13:30 B-221,   Miércoles 11:45 - 13:15  B-221
Horario de Oficina
Información de contacto:  Oficina: B-301        Fono: (32) 2654196
Lista de correo: elo329 arroba listas PUNTO utfsm PUNTO 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)
Ejemplos del texto guía
"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, en web ELO) Página 1er. sem 2008
Clase
Fecha
Material
Observaciones
1
09/03
 Ejemplo:Editor de figuras,  Puzzle, Planta
Reciente Requerimiento de Ingeniero
Perfil del Ingeniero Solicitado el 2008
2
11/03
Motivación (pptPensando Orientado a Objetos (ppt) Ejemplo: Puntos y líneas, prueba

3
16/03
Entorno en java y diseño orientado a objetos (ppt): FirstSample.java
Java: desde Sun, ELO  Jgrasp
4
18/03
Sistaxis básica de Java:(ppt) Ejemplos: InputExample.java, InputTest.java Otros ejemplos: InputErrorExample.java, LotteryOdds.java, BigIntegerTest.java Tecnologías Java Documentación del API, en particular clase Scanner
5
23/03
Creación de Objetos, referencias y documentación en java (ppt): Account Documentación
Object, ArrayList, Class
6
30/03
Herencia (ppt): Managers son Empleados, ManagerTest.java 
7
01/04
Continuamos con herencia, clases abstractas, Igualdad de objetos en Java: método equals. Ejemplos: CatsAndDogs.java, PersonTest (un archivo, varios), EqualTest.java , ReflectionTest.java    Jgrasp
Emacs: compilación ESC-x compile
errores: CTL-x `
8
06/04
Interfaces y clases internas (ppt, odp) Ejemplos: EmpoyeeSortTest.java InnerClassTest.java AnonymousInnerClassTest.java Comparable Arrays Clases genéricas Tarea 1 publicada
9
08/04
Terminar Interfaces (ppt, odp). Mostrar trabajo con múltiples archivos (PersonTest), diagrama de clases con Jgrasp, Explicar Tarea 1.

10
13/04
Programación Conducida por Eventos e Interfaces Gráficas (ppt,odp) Ejemplos: ClosableFrame.java Mimic.java MimicCharbyChar.java Documentación Swing Tutorial
11 15/04 Programación Gráfica (ppt, odp) Ejemplos: GlassPaneDemo LayeredPaneDemo 
12
20/04
Ver creación de un menú y manejo de eventos de mouse y teclado. IconDisplayer ShapesDemo2D Sketch.java  MouseTest.Java CreaBotones.java  
13 22/04 Revisar guía visual de componentes Swing
Adminstradores de Distribución del espacio (Layout Managers)
Manejo de excepciones en Java (ppt, odp) ExceptionalTest.java 
Guía Visual de Componentes Swing
Guía Visual de Administradores de Distribución del Espacio (Layout Managers)  Tutorial de Sun: Exceptions
14 27/04  Applets (ppt, odp)
NotHelloWorldApplet  Prueba TumbleItem  Prueba Calculator.java CalculatorApplet prueba CalculatorPanel.java  PopupCalculatorApplet  prueba
Chart prueba TicTacToe Bookmarks prueba
Tutorial de Applet de SUN
Vea demo de Applets en
<directorio de su java>/demo/applets.html
Applet del texto de redes de computadores
15
29/04
Certamen Parcial
Contenidos hasta clase del 22/04 inclusive
16
4/05
Terminamos Applets
Ver Tarea3 año 2008
17 6/05 Inscripción de proyectos, "Método" Ingeniería de Software Parte 1 (ppt, odp) 26 de mayo plazo definir proyecto (2% de nota)
Método
 Curso: "Desarrollo de Software Orientado a Objetos usando UML"
CS169 Software Engineering
18
11/05
Ingeniería de Software Parte 2 (ppt, odp)

19
13/05
Entrega de certamen, considerar proyecto con SunSpot, Herramientas de apoyo al desarrollo de software: Casos de uso, Tarjetas CRC y UML (ppt, odp)
Diagramas UML con NetBeans, con JGrasp
Ver Notación UML
VoiceMail
20 18/05 Explicacion comparación de strings, C++: Archivos de Encabezados, Tipos básicos, semántica de nombres de objetos, I/O básica, Operadores, Arreglos, paso por referencia (ppt, odp).  Pre-procesador 
C++ Resources Network
Tutorial C++
IO_simple.cpp IO_simple_2.cpp
21 20/05 Definición y Conversión de datos, punteros (ppt, odp). pointerArrray.cpp   
22 25/05 Clases en C++ (ppt, odp)  
23 27/05 Creación dinámica de Objetos (ppt, odp) Sobrecarga de operadores  
24 01/06 Presentación Invitada sobre Sistemas Embebidos en Holanda (tema complementario, no será evaluado)  
25 03/06  Revisión sobre funciones (estudio personal) (ppt, odp); Herencia (ppt, odp);  Ejemplo CVector, doxygen Proyecto2004  Motors 
26 08/06 Métodos virtuales y ligado dinámico (ppt, odp) Calificador Static y Friend (ppt, odp),  Excepciones (ppt, odp) CatsAndDogs item.h item.cpp
27 10/06 Platillas (templates) (ppt, odp)    Templates
28
15/06
Biblioteca Estándar de Platillas (STL)   Vectores (ppt,odp) y Listas (ppt,odp) Uso de listas: Catálogo
29
17/06
Certamen Final en P-306
OJO Certamen será en la P-306
30
22/06
Presentación de proyectos Invitación a participar en Ingetectra 2009
Presentan 4 ó 5 grupos
31
24/06
Presentación de proyectos
32
01/07
Fin Presentación Proyectos / Definición fecha Certamen Recuperativo Plazo de entrega de Informes en formato publicable en la WEB.
33
8/07
Certamen Recuperativo
En horario de clases

Evaluación  (Encuesta) Notas Finales al 16.07: Notas, Histograma.
   Si Promedio de Certámenes es superior a 45:
            Nota Final= 0.55*Certámenes + 0.25*Tareas + 0.20 Proyecto
   Sino: Nota final = 0.80*Certámenes + 0.20*(0.25*Tareas + 0.20*Proyecto)/0.45
    55 %    2 Certámenes : 29 de abril y 17 de junio Dos partes, primera si apuntes (1/3 tiempo y ponderación); segunda con apuntes (2/3 tiempo y ponderación).
Soluciones
Notas
Histograma
Alumnos destacados en cada certamen (80% o superior)
C1.solución() sobre comparación de strings
C1.notas()
C1_27.05()
C1.histograma()
Christopher Lara, Guillermo Valín
C2.solución()
C2.Notas_01.07()
C2.histograma()
Edward Alvarado, Juan Ferrada, Guillermo Valín

Otros Años:
Año
Primer Certamen
Certamen Final
2008 C1.solución()  C1.histograma() C2.solución()  C2.histograma()
2007 C1.solución()  C1.histograma() C2.solución()  C2.histograma()
2006
C1.solución()  C1.histograma()
C2.solución()   C2.histograma()
2005
C1.solución()   C1.histograma() C2.solución()   C2.histograma()
2004
C1.solución()   C1.histograma() C2.solución()   C2.histograma()
2003
C1.solución()   C1.histograma() C2.solución()   C2.histograma()
2002
C1.solución() 
C2.solución()
                   
    25 %  Tareas de programación 
    20 %  Proyecto grupal              (Inscripción de temas)               (Temas ya inscritos)
                Inscripción: 10% por definición a tiempo Plazo:  26 de mayo.
                Resultados y Demostración: 90 %  por informe (en formato html, plazo: el día de la última presentación), presentación y demostración.  Tómbola para orden de presentaciones (si un grupo no llega el día programado, presenta al final con penalización, su nota de presentación se multiplica por 0.9) 

Tareas y sus mejores Soluciones  Instrucciones para su entrega  Criterio general de evaluación Ayudas para su Desarrollo (preparadas por Tomás Girardi) Inicio rápido con Netbeans (preparado por Tomás Girardi) tarea recibidas
Tarea (grupos de 1 ó 2 integrantes)
Evaluación
Asignación de puntaje
Mejores Soluciones
Tarea 1: Clasificador de Frutas, plazo 20 de Abril 23:59 hrs.
Notas, última versión
Daniel Guzman, Docmac Jeria, Andrés Contreras
Tarea 2: Clasificador de Paltas con Interfaz Gráfica, plazo 11 de Mayo 23:59 hrs.
Ver
Edward Alvarado, Jorge Mellings, Juan Sebastián Ferrada & Christopher Lara, Sabina Torres & Jorge Pareja,
Tarea 3: Clasificador de Paltas como Applet, plazo 8 de Junio 23:59 hrs.

Pedro Durán, Pablo Morales, Sebastián Pizarro & Guillermo Valín, Daniel Acevedo & Francisco Barros
4. Diferentes Implementaciones de Conjuntos Plazo 1 de Julio, 23:59 hrs.


Proyectos de Alumnos: según orden de presentación  Cronómetro  Evaluar Notas
Grupo
Tema
Insc. en Plazo 
Presenta
Inasistencia en presentación, queda para el final con penalización factor 0.9
Informe web a tiempo
1 Piero Rivera Benois y Nikolas Skoljarev Navarro Sintetizador de Sonido Virtual Con Interfaz de Objetos Físicos Monitoreados por Video OK
22.06.09
OK
2 Daniel Acevedo, Francisco Barros Generador de Sonidos / Sintetizador OK
22.06.09
OK
3 Pablo Morales Pimentel Estéreo Visión OK
22.06.09
OK
4 Mario Ungemach, Jorge Mellings, Jose Antonio Silva GUI para conexiones y transferencia de datos seguros OK
22.06.09
OK
5 Daniel Docmac y Luis Jeria QuickMPS (Master Production Schelude) OK
01.07.09
OK
6 Alvarado Edward, Pizarro Sebastian, Valin Guillermo Caracterización de SiPMs y análisis de datos en Root OK
01.07.09 OK
7 Javier Salazar Loyola
Toccata - GUI para edición de partituras OK
24.06.09
OK
8
Pietro Zuccar e Ignacio Ferruzola Adquisición de datos y control digital de un motor de pruebas OK
24.06.09
OK
9
Sabina Torres, Pedro Duran, Jorge Pareja Adaptación de Lineas de Transmisión con Carta Smith OK
24.06.09

10
Andrés Contreras F. Reservas de Hora de Consulta (RHC) OK
01.07.09
OK
11
Sergio Silva, Danny Sateler Juego bluetooth por turnos para celular OK
01.07.09 OK
12
Daniel Guzmán, Christopher Lara, Juan Ferrada Videojuego: Coliseo OK
01.07.09 OK
13
Fernando Montero - Ricardo Toloza Monitoreo de usuarios y uso en aragorn OK
06.07.09
OK
14
Juan González - Victor Magaña Simulador de handoff !OK
01.07.09 OK
15
Cristobal Troncoso Álvarez Finalmente no entregó proyecto
OK
--
--


Misceláneos
Encuesta al 2008 Correlación Prom Tareas y prom Certámenes 2008 Preguntas Ejemplo Certificación Java
nbsp; Página ELO329 años 2008 2007 2006 2005 2004 2003  
  Instrucciones para trabajar en aragon desde windows

 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
Tutorial Java para el autodidacta
Editores: XEmacs (win o Linux, manual de emacs) , jgrasp (Java), otros que no he tenido oportunidad de probar: kate (Linux), Netbeans  (viene con J2SE5.0)
Otros:
   Compilación con MAKE:
Tutorial simple (orientado a C, C++)
Servicio de Contadores y Estadísticas ELO