Taller de programación orientada a objetos

2011

Este es el sitio web del taller de programación orientada a objetos impartido por la Dra. Elisa Schaeffer en la FIME de la UANL en el semestre enero-junio 2011 los jueves M1-2 (07:00-08:40) en la sala 4100. Se recomienda que el alumno curse simultáneamente Programación orientada a objetos en el grupo de Dra. Schaeffer para trabajar en un solo proyecto para ambas unidades. La lista de correos de ambos grupos es objetos-2011@googlegroups.com.

Propósito

En el desarrollo de esta unidad de aprendizaje se contribuye a la formación de egresados con valores. Asimismo contribuye a que el estudiante desarrolle características como:

Competencias

Temario

En este grupo, las prácticas de programación se llevan a cabo en el sistema operativo Linux en los lenguajes orientadas a objetos, tales como Python, Java, Objective-C y/o C++. El proyecto se evalúa en Ubuntu Linux 10.04+ y/o en Mac OS X 10.6+. Se recomienda integrar el proyecto en un contexto no tradicional como plataformas web (tipo servlets), integrados (tipo lejOS), móviles (tipo android, iOS) o simuladores (tipo Repast).

Programa semanal

En las diapositivas se describe la actividad calificada para cada semana. Cada actividad debe publicarse en el blog del alumno a más tardar a las 09:30 horas el jueves de la semana siguiente (de la mañana) a su asignación. No habrá prórrogas.

No hay ni clase presencial o entrega de actividad en semanas de exámenes. Esta unidad es de tipo laboratorio o proyecto; su calificación se basa completamente en las actividades semanales. Por efectos del calendario académico establecido en la FIME, el curso se lleva a cabo en solamente 13 semanas en la primavera del 2011 en vez de las 14 de un semestre regular (16 menos dos de exámenes). Además, hay asueto el 5 de mayo, por lo cual no habrá clase presencial; la actividad de la semana se lleva acabo de manera normal.

  1. Selección, instalación y configuración de herramientas (5 puntos)
  2. Sintaxis de clases: métodos, atributos, visibilidad (5 puntos) - demo
  3. Herencia y polimorfismo: modularidad y reutilización de código (5 puntos)
  4. Documentación y herramientas avanzadas de desarrollo (5 puntos) - demo
  5. Especificación técnica de proyectos individuales (10 puntos)
  6. Herramientas para diagramas de clase y secuencia de UML; autogeneración de código (10 puntos)
  7. En el taller no hay exámenes
  8. Implementación de proyectos individuales (ejemplo) - avance parcial (10 puntos)
  9. Aplicación de patrones de diseño en proyectos individuales (5 puntos)
  10. Manejo de eventos, excepciones y errores (5 puntos) - ejemplo
  11. Implementación y aplicación de pruebas unitarias (5 puntos) - demo
  12. Implementación de sistemas distribuidos (5 puntos) - demo
  13. Implementación de interfaces gráficas de usuario (10 puntos)
  14. Demostración de implementación de proyectos individuales (20 puntos)
  15. En el taller no hay exámenes

Diapositivas

Producto integrador

Las actividades semanales se documentan en el blog personal del participante. Al finalizar la unidad de aprendizaje el estudiante entregará su blog que documenta el desarrollo y el producto final de su proyecto individual. Los puntos extra son por interacciones en los blogs de los demás.

Blogs y calificaciones

Participante Semana de clase Total
1a op.
Total
2a op.
Primera parte Segunda parte
1 2 3 4 5 6 8 9 10 11 12 13 14
Abraham 5 NP NP NP 7 NP NP 9 4 NP NP NP NP 25 NP
Adán 5 5 3 3 7 7 8+4 1 3+4 NP NP 5+6 19+4+8 92  
Alejandro 4 5 3 5 5 7 7 1 1+5 NP NP 6+11 18 78  
Alfredo 3 4 4 1 5 NP 7 3 2 NP NP 4 NP 33 NP
Carmen 5 5 4 4 8 7 9 NP+1 4+3 4 NP 9+12 18 93  
Cecilia 5 5 5 5 8 10 8+5 4+2 5+2 5 NP 5+8 19 100+1  
David NP/5 NP/5 NP 4 5 NP 9 NP+1 NP NP NP 7 19+5/+1+9 50 70
Diana NP NP NP NP 7 NP NP NP NP NP NP NP NP 7 NP
Héctor 4 5 4 4 6+1 5+2 5 3 3 NP NP NP NP 42 NP
Isaac NP 4 1 4 4 5 6 NP+1 NP NP NP NP NP 25 NP
Isaías 5 5 5 5 10 7 7 4 4 5 NP 9+5 19+9+3 100+2  
José 1 5 3 5 8 7 10 NP 4 5 NP 5+7 17+8 85  
Juan Carlos 5 5 5 5 10 8+1 10 4 5 5 5 9+8 20 100+5  
Leonardo 5 1 2 NP 7 NP NP NP NP NP NP NP NP 15 NP
Maximiliano 5 5 5 5 10 7 10 5 5 5 NP 7 19+2 90  
Miguel 4 4 4 NP 5 5 NP NP NP NP NP NP NP/19 22 41
Ramón Esteban 5 5 4 5 9 9 8+1 NP 2 NP 5 6+9 19+5+8 100  
Raúl 4 3 3 4 3 NP 9 NP NP NP NP NP NP 26 NP
Roberto 5 5 5 5 9 7+2 9+1 3 4+4 5 NP 7+6 19+5+3 100+3  
Víctor 5 5 5 5 6 NP 8+1 3 3 5 NP NP NP/19+11 46 76
Máximo 5 5 5 5 10 10 10 5 5 5 5 10 20 100 100

Demostraciones finales

Jueves 19 de mayo 07:00-08:40 en el orden siguiente. Se indica el tiempo máximo de cada demo.

  1. Juan Carlos (6 min.)
  2. Roberto (6 min.)
  3. Maximiliano (6 min.)
  4. Jorge (5 min.)
  5. Adán (6 min.)
  6. Ramón Esteban (6 min.)
  7. Carmen (7 min.)
  8. Isaías (5 min.)
  9. Miguel (5 min.)
  10. Víctor (5 min.)
  11. David (7 min.)
  12. Cecilia (7 min.)
  13. Héctor (5 min.)
  14. Alejandro (5 min.)
  15. ¿José (5 min.)?

Bibliografía básica

Se hará uso amplio materiales de enseñanza en línea. No es necesario comprar un único libro de texto, sino cualquier libro de parecido sirve como material de apoyo. Se recomienda el libro de Timothy Budd: Introduction to Object-Oriented Programming, del cual hay una versión gratuita en .pdf en el sitio web del autor.

Utilización de documentos de formato PDF

Para acceder las diapositivas y otros materiales en formato PDF, se necesita Acrobat Reader (descarga gratuita) u otra herramienta similar (en sistemas linux/unix, use el comando acroread o xpdf). Para crear documentos en formato PDF, en Windows se puede instalar una impresora virtual como Primo PDF y en linux imprimir a un archivo en PostScript y utilizar el comando ps2pdf para la conversión.


Actualizado por última vez el 46de junio del 2011.
URL: http://elisa.dyndns-web.com/~elisa/teaching/prog/oo/2011/taller.html