Programación orientada a objetos

2011

Este es el sitio web del curso 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 martes M1-3 (07:00-9:30) en la sala 4100. Se recomienda que el alumno curse simultáneamente Taller de 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 de la mañana horas el jueves de la semana siguiente a su asignación. No habrá prórrogas.

  1. Definición inicial de tema de proyecto (5 puntos)
  2. Diseño de programas en términos de clases múltiples (5 puntos)
  3. Herencia y polimorfismo: modularidad y reutilización de código (5 puntos) - ejemplo
  4. Documentación y herramientas de desarrollo (5 puntos) - ejemplo (ojo con el paquete)
  5. Presentaciones de temas y retroalimentación entre pares (5 puntos)
  6. Diagramas de clase y secuencia de UML (10 puntos)
  7. Examen de medio curso (10 puntos)
  8. Presentaciones de diagramas de proyectos (10 puntos)
  9. Patrones de diseño (5 puntos)
  10. Eventos, excepciones y errores (5 puntos)
  11. Diseño de pruebas unitarias (5 puntos)
  12. Sistemas distribuidos (5 puntos) - código y demo corriendo
  13. Interfaces gráficas de usuario (5 puntos) - código / v2.0
  14. Presentaciones finales de proyectos individuales (10 puntos)
  15. Examen ordinario (10 puntos)
  16. Examen extraordinario (retomar medio curso y/u ordinario)

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.

Blogs y calificaciones

Los puntos extra son por interacciones en los blogs de los demás (anteriores a la califiacción de la entrada comentada) y por las preguntas extra de los exámenes; no habrá otro tipo de puntos extra.

Participante Semana Total
1ra
op.
Total
2da
op.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Abraham 4 4 4 4 NP 10 NP 7 5 NP NP NP NP 6+10 7+4 7/7+5 47 77
Adán 5 5 4 5 5+3 4+4 5+5 9+1 4 4 4 4 4 10+5 6+4   100  
Alejandro 4 4 3 5 5+2 4+2 5+5 9 4 4 NP NP 5 9 4+3   77  
Andrés NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP
Blanca 5 5 5 5 5+10 7+7 5+5 10+8 5 5 3 NP 1 9+1 6+4   100+11  
Carmen 5 5 5 4 5+5 9+5 5+5 10 5 5 3 NP 5 10 9+3   100+3  
Cecilia 5 5 5 5 5+5 8+5 5+5 10+5 5+1 5 5 4 3 10+9 6+4   100+20  
Conrado NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP
David NP NP 3 5 5+5 9+4 5+4 4 NP NP NP NP 5 10+5 4+4   72  
Diana NP NP 2 4 3 3+6 5+5 NP NP NP NP NP NP NP NP NP 28 NP
Eugenio NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP NP
Héctor 2 5 3 5 4+1 9+3 5+5 7+1 3 4 3 NP 4+1 9+1 8+4   87  
Isaac NP 4 2 5 NP 6+4 4+3 8+1 3+1 NP NP NP NP NP NP NP 41 NP
Isaías 5 5 5 4 5+7 6+3 5+5 10+3 5 4 5 2 5 10 6   100  
Jonathan NP NP NP 4 3 8+4 3+4 NP NP NP NP NP NP NP 5+6 9/- 37 43
Jorge NP 5 4 NP 5 10+6 5+5 NP 3 NP NP NP NP 9+6 6+6   70  
José NP 4 4 5 5+3 8+4 5+5+3 9+2 3 4 4 NP 5 8 7+4   92  
Juan Carlos 5 5 5 5 5+2 9+4 5+5+1 10+2 5 5 5 5 5 10+7 7+5   100+17  
Leonardo 4 4 1 NP 2 4+4 5+5 NP NP NP NP NP NP NP NP NP 29 NP
Maximiliano 5 5 5 4 5+1 5 5+5 9+1 5 5 5 NP 5+3 10+7 5+4   99  
Miguel 2 3 2 2 3 4+2 4+5 NP NP NP NP NP NP 9+7+6 5+2 5/6+2 34 60
Pedro NP - 2 NP NP NP NP NP NP NP NP NP NP NP NP NP 2 NP
Ramón Esteban 5 5 5 5 5 7+3 5+5 9 5 5 4 5 4 10+3+3 6+4   100+3  
Raúl 4 4 5 4 5 7+5 4+5 NP NP NP NP NP NP 7+8+1 3+3 6/4+3 49 70
Ricardo NP 3 5 5 3+2 6+6 5+4 10 4 3 NP NP 4+3 9 NP   72  
Roberto 5 5 5 5 5+3 8+6 5+5 8+4 5+1 5 5 3 5 10+4 6+8   100+16  
Víctor 5 5 2 5 5+1 7+5 5+5 9+1 5 4 4 NP NP NP 7   75  
Máximo 5 5 5 5 5 10 10 10 5 5 5 5 5 10 10 (10/20) 100 100

Presentaciones finales

Martes 17 de mayo 07:00-09:30 en el orden siguiente. Se indica el tiempo máximo de cada presentación.

  1. Juan Carlos (7 min.)
  2. Roberto Carlos (7 min.)
  3. Jonathan (8 min.)
  4. Maximiliano (5 min.)
  5. Jorge (5 min.)
  6. Adán (10 min.)
  7. Ramón (6 min.)
  8. Carmen (7 min.)
  9. Isaías (5 min.)
  10. Blanca (7 min.)
  11. Miguel (7 min.)
  12. Víctor (5 min.)
  13. David (10 min.)
  14. Cecilia (7 min.)
  15. Héctor (5 min.)
  16. Alejandro (5 min.)
  17. Ricardo (5 min.)
  18. 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, ejercicios 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 6 de junio del 2011.
URL: http://elisa.dyndns-web.com/~elisa/teaching/prog/oo/2011/