ELO 329 Diseño y Programación Orientados a Objetos
Primer Semestre 2013 de 32 sesiones
General
Contenidos
Evaluación
Tareas
Proyecto
Profesor: Agustín J. González,   Horario de Oficina
Oficina:  B-301        Fono: (56-32) 2654196
Horario clases: Lunes 11:30-13:00 B-360 P-104   Miércoles 11:30-13:00 B-360 P-104
Ayudante: Eduardo Barra, su cuenta gmail es elo329 punto utfsm
Lista de correo: elo329 arroba listas PUNTO utfsm PUNTO cl, inscripción aquí.
Textos:
  1. "Core Java 2, Volume I Fundamentals", Cay S. Horstmann and Gary Cornell, Sun Microsystems Press, 2003. (Hay copias en  Biblioteca) Ejemplos del texto guía
  2. "Core Java 2, Volume II Advanced Features", Cay S. Horstmann and Gary Cornell, Sun Microsystems Press, 2003. (Hay copias en Biblioteca)
  3. Object-Oriented Programming Using Java, by David J. Eck, Anban Pillay (local)
  4. "Data Structures in C++, Using the Standard Template Library", Timothy Budd, Addison Wesley, 1998, ISBN:0-201-30879-7 ( varias copias se encuentran en Biblioteca)
  5. "Applying UML and Patterns: an introduction to object-orientd analysis and design and the unified process", Craig Larman, Prentice Hall, second edition,  2002 ( Hay copias en Biblioteca)

Contenidos  (Programa, en web USM) Página 1er. sem 2012
Clase
Fecha Material
Material adicional de apoyo
1
11/3 Introducción:
Conceptos en lenguajes orientados a objetos:
Objeto, comportamiento, estado; clase, jerarquías, herencia, polimorfismo; Ligado dinámico, abstracción, subtipo. Diseño orientado a objetos (pdf, ppt).
Ejemplos:Editor de figuras,  Puzzle, Planta con control PI,
Simulador de masas y resortes
Simulador de bolas y paredes (prueba)
Perfil del Ingeniero Solicitado el 2012
2
13/3
Introducción a Java: Máquina virtual. Entornos de desarrollo para proyectos en Java (pdf, ppt). Ejemplo: FirstSample  Si arroja warnings asociado a acentos, usar: javac -encoding ISO8859_1 FirstSample.java   SecondSample.java clase Punto Entornos de desarrollo: Sun (Oracle),
Virtual Machine, Operating system-level virtualization, Ver Editores y Ambientes de trabajo, Documentación SE 6
Tarea individual: Si usted tiene acceso a un PC, instale Java, compile y corra estos ejemplos
3
18/3
Tipos de datos y control de flujo básicos (pdf, ppt).  Nueva Sala P104 para ambos días.
Fechas propuestas para certámenes 06.05 y 08.07.
4
20/3
Terminamos Tipos de datos y control de flujo básicos (pdf, ppt) Ejemplos: Puntos y líneas, prueba; InputExample InputTest Clase Scanner
5
25/3
Java: objetos, clases (pdf, ppt). Ejemplos: Employee, ConstructorTest.

6
27/3
Java: Herencia, clases abstractas, clase Object -equals- (pdf, ppt)  Ejemplo: ManagerTest: Managers son empleados, Rectangle.java
7
01/4
Terminamos Herencia, clases abstractas, clase Object -equals-  Clase abstracta: PersonTest (varios archivos), Cats and Dogs, Clase Object: EqualsTest
Java: interfaces, clases anidadas: internas y anónimas -clone-(pdf, ppt). Ejemplos: Empleados comparables, clase Interna a una clase, clase interna a un método, clase anónima, CloneTest.java
Equals es problemático en algunos casos, ideas similares aplican a clone  ReflectionTest  Java Collections 
8
03/4
Explicación calificador public en clases anidadas. Ejemplos de Interfaces y clases internas. Explicación de Tarea 1. 
9
08/4
Programación basada en eventos (o dirigida por eventos): Conceptos (pdf, ppt). Ejemplos: CloseableFrame, SimpleMimic, Mimic, MimicCharByChar. JFrame  WindowListener  WindowsAdapter

10/4
Suspensión por Semana Mechona

10
15/4
Revisitamos tarea 1, Terminamos programación basada en eventos. Revisión de material sobre Swing y demostración de ejemplos SwingSet3  Tutorial sobre Swing, Programas de ejemplo SwingSet3 Demo
11
17/4
Programación de interfaces gráficas en Java. Swing (pdf, ppt) Ejemplos: GlassPaneDemo LayeredPane MenuDemo CreaBotones, Sketch, MouseTest, ShapesDemo2D
12
22/4
Java: Manejo de excepciones (pdf, ppt). Ejemplos: Efecto en desempeño ExceptionalTest
Tutorial Excepciones
13
24/4
Generación de paquetes y documentación, Javadoc (pdf. ppt), Ejemplos:PackageTest, Account  Resultados de Javadoc Documentación de código en Java
Hasta aquí se evalúa en primer certamen
14
29/4
Applets (pdf, ppt)
NotHelloWorldApplet (Prueba); TumbleItem (Prueba); Calculator Application, Applet (Prueba embebida, Popup); Chart (Prueba); Tic Tac Toe; Bookmarks (Prueba).
Ver demo de Applet
Tutorial sobre Applets

01/5
Feriado
Día del trabajo.
15
06/5
Primer Certamen En P115 Notar cambio de sala a P115
16
08/5
Terminamos Applets

17
13/5
Administradores del Espacio Cómo posicionar componentes dentro de un contenedor. (Layout Managers)
Java Archives (pdf, ppt)
Motivación: Método (Jorge Guerra, Pin Pon) ¿Es esto importante? Mauricio Venegas
Tutorial sobre creación de jar files
18
15/5
Ingeniería de software: Introducción (pdf, ppt)
Proceso de Desarrollo de Software (pdf. ppt)



Semana Libre

19
27/5
Metodologías de desarrollo de software: Desarrollo Iterativo e Incremental (pdf, ppt)

20
29/5
Herramientas de apoyo al desarrollo de software:  Casos de uso. Tarjetas CRC. UML (Unified Modeling Language) (pdf, ppt)
ArgoUML (wiki)
UML Umbrello (es)
21
3/6
Niveles de Certificación CMM (pdf, ppt)
Introducción a C++ (pdf, pptIO_simple.cpp IO_simple_2.cpp

Pre-procesador 
C++ Resources Network
Tutorial C++
22
5/6
Clases en C++ (pdf, ppt).  Ejemplos: CRectangle

23
10/6
Constantes, referencias y cambios de tipo en C++ (pdf, ppt)

Type casting: dynamic_cast <new_type> (expression), static_cast <new_type> (expression), const_cast <new_type> (expression)
Revisar construcción de Makefiles

11/6
a
08/8
Ausencia de clases por paro estudiantil

24
12/8
Sobrecarga de Operadores. Ejemplo: CVector
Calificador Friend y Static (pdf, ppt), Ejemplo: Función Friend
Manejo de punteros y objetos en memoria dinámica (pdf, ppt)
Tómbola
25
14/8
Herencia en C++ (pdf, ppt) Ejemplos: Herencia Pública, Protegida. Privada.
Ligado dinámico en C++: Métodos Virtuales (pdf, ppt) Ejemplos: VirtualMotor, CatsAndDogs

26
19/8
Excepciones (pdf, ppt)
Programación Genérica: Plantillas (templates) en C++ (pdf, ppt)
Estudiar C2 2008 y 2009: cuentaRepeticiones, Máximo
Biblioteca estándar de plantillas y Algoritmos genéricos: Vector (pdf, ppt)
Ejemplo de Algoritmo geérico: Objeto función (Functor).
Clase estándar exception
STL,Algoritmos Genéricos de la STL  Clases Genéricas en Java,
27
21/8
Listas (pdf, ppt)

28
26/8 Patrones de Diseño (pdf, ppt) y Revisión de tarea (fue informado por correo y reflejado atardiamente en la web) Singleton
Ejemplo de MVC en Java, patrón observador
29
28/8 Pospuesta a petición del curso
30
04/9 Segundo certamen en P110
Cambio de sala a P-110

09/9
Presentación de Proyectos
Las presentaciones serán evaluadas por todos los presentes según:
Contenido   : El tema es pertinente al ramo, lo presentado es lo importante del tema e interesante para mí.
Dominio     : Los integrantes tienen muy buen dominio del tema, lo conocen bien.
Comunicación: Usan bien el material de apoyo y buena expresión oral de las ideas.
Demostración: Evalúe su resultado y aporte.
OJO Nos cambiaron a la P115

11/9
11:30 hrs. Sesión final de presentaciones. En C-232
Nos juntamos en C-232


Certamen Recuperativo
  ?


Resultado de Encuesta Docente 1º sem 2013.


Evaluación  Notas Finales : 15.09  16.09 (Actas) 24.09 (Cambia Cid, Reyes, Rivas)
                                    /  0.55*Certámenes + 0.25*Tareas + 0.20*Proyecto,  si promedio de certámenes es superior o igual a 50.
            Nota Final= <
                                    \  0.90*Certámenes + 0.06*Tareas + 0.04*Proyecto,   en otro caso
2 Certámenes : 6 de mayo y 3 de julio 4 de Septiembre¿? Dos partes, primera sin 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.sol()
C1.Notas()
C1.Histo()
Felipe Acevedo, Pablo Iocco,
C2.sol() C2.Notas()
C2.Histo()
Sebatián Apablaza, Cristóbal Barrientos, Eduardo González, Karl Heitmann, Rodrigo Mendez, Luis Muñoz, Felipe Vera
Otros Años: 1º Certamen: 2012 2011 2010, 2009, 2008, 2007, 2006, 2005, 2004;      Certamen Final: 2012 2011 2010, 2009, 2008, 2007, 2006, 2005, 2004

Tareas de programación  y sus mejores Soluciones: Instrucciones para su entrega  Criterio general de evaluación 
Tarea (grupos de 2 ó 3 integrantes)
Evaluación
Mejores Soluciones
Tarea 1: Compuertas Digitales como Objetos de Software. Plazo 18 22 de abril 23:50 hrs.
Notas, Detalle, Notas 14.06, Comentarios
Ernesto Fredes, Eduardo González & Rodrigo Méndez
Tarea 2: Simulador gráfico para circuitos combinacionales. Plazo 15 de mayo 23:50 hrs.
Notas, Detalle, Notas 14.06, Comentarios
Jaime Ampuero, Oscar Silva
Tarea 3: Applet para Simulador Gráfico de Circuitos Digitales. Plazo 5 12 de Junio 23:50 hrs. Notas, Detalle, Comentarios
Felipe Acevedo, Cristobal Barrientos & Thomas Dixon (Applet)
Tarea 4: Compuertas digitales en C++. Plazo 6 de Septiembre 23:59 hrs. Notas, Detalle, Comentarios
Daniel Cardenas - Roberto Muñoz -Luis Muñoz

Proyecto grupal:   Instrucciones generales, aquí inscripción de temas, aquí temas ya inscritos.
* Inscripción: 10% por definición a tiempo Plazo:  5 de junio. Posible proyecto para quienes tomaron elo322: hacer un applet para ilustar  cómo TCP logra confiabilidad, o cómo hace control de flujo, o cómo hace control de congestión ... Algunas applet hecha ya aquí. Otros: Estudie algún patrón de diseño explíquelo y haga algún ejemplo de su uso.
* 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, Orden de presentaciónCronómetroEvaluar, Notas de pares.
Grupo: Si un grupo no llega el día programado, presenta al final; su nota de presentación se multiplica por 0.8 Tema
Insc. en Plazo
Jean Pierre Atuan - Gonzalo Baez - Oscar Silva - Jaime Ampuero
Aplicación móvil orientada a alumnos Sansanos.
ok
Diego Hinojosa, Sebastián Apablaza
Java Lock RFID
ok
Karl Heitmann
Algoritmo Evolutivo implementado en Planificación de Horarios de un Establecimiento Educativo
!ok
Pablo Álvarez, Sebastián Márquez, Felipe Vera
Secuenciador de audio
ok
Victor Arredondo, Yen-Kun Yu
Simulador de sismos ok
Manuel Ramírez,  Víctor Fernández
Motion Segmentation and Tracking
ok
Felipe Acevedo, Cristobal Barrientos, Thomas Dixon
Implementación de Aplicación Móvil "La Mano": Busqueda de Panoramas
ok
José Luis Araya
Manejo de microcontrolador a través de applet java
ok
Juan Pablo Pavez / Pablo Iocco
Shopping Basket / Productos
ok
Ernesto Fredes Zarricueta, Eduardo González, Rodrigo Méndez
Aplicación para la ejercitación de la memoria a corto plazo, como también la pronunciación de fonemas
ok
Marcio Baeza, Antonio Morales
Simulador Avanzado de Circuitos Digitales
ok
Karen Rivas, Fernando Cid, César Reyes
Filtro Mágico
ok
Daniel Cárdenas, Luis Muñoz, Roberto Muñoz
Diseñador de efectos de audio
ok

Proyectos interesantes que bien se les pueden ocurrir a ustedes como memoria.


Misceláeos
    Encuesta docente 2010
    Instrucciones para trabajar en aragorn desde windows

Java
makefile para Java: Ejemplo, explicación.
Documentación Java SE Standard Edition 7 (local SE 6)
Tutorial Java para el autodidacta. Otro en MIT.
Editores: BlueJ XEmacs (win o Linux, manual de emacs) , jgrasp (Java), Netbeans, Eclipse. Java Programming with Eclipse at Stanford University
C++:
Usando Preprocesador C++
C++ Preprocessor por Sh. Mannan
Bibloteca estándar de Plantillas (Standard Template Library) ( local en ELO ) (Documentación en cplusplus.com)
  Otros:
   Compilación con MAKE:
Tutorial simple (orientado a C, C++)
Servicio de Contadores y Estad�sticas ELO