Índice
Técnicas Avanzadas de Programación
Asignatura
| Modalidad | Electiva |
| Área | Especialización |
| U.C: | 3 |
| Código | 2120360001380 |
Justificación
Los cursos básicos de programación dan al estudiante la capacidad para diseñar algoritmos e implementarlos en un lenguaje de programación. Sin embargo, para estar en capacidad de desarrollar programas complejos, se requiere el dominio de una serie de técnicas que faciliten el desarrollo de programas grandes, fáciles de adaptar a situaciones diferentes y fáciles de modificar y mantener.
Objetivos del Curso
Presentar al estudiante una serie de técnicas avanzadas de programación que le permitirán desarrollar aplicaciones complejas, que sean fáciles de adaptar a situaciones diferentes y fáciles de modificar y mantener.
- Estar en capacidad de utilizar técnicas de programación orientada a objetos para el desarrollo de programas complejos.
- Estar en capacidad de utilizar técnicas de programación orientada a objetos en el desarrollado de aplicaciones que sean fáciles de adaptar a situaciones diferentes.
- Estar de capacidad de desarrollar aplicaciones que sean fáciles de modificar y mantener, aplicando técnicas de programación orientada a objetos.
- Estar en capacidad de aplicar patrones de diseño al desarrollo de aplicaciones.
Prerequisitos
Dominar el lenguaje Java y haber aprobado el curso Técnicas de Programación.
Contenido Programático
Unidad 1: Introducción
- Orígenes de la programación orientada a objetos.
- Mecanismos de abstracción anteriores a la P.O.O.
- Justificación. Ventajas y desventajas de la P.O.O.
Unidad 2: Conceptos básicos de programación orientada a objetos
- Clase
- Mensaje y método
- Objeto
- Herencia
- Polimorfismo
- Interfaz
Unidad 3: Diseño orientado a objetos
- Diseño dirigido por responsabilidades
- Técnicas de diagramado (lenguaje de modelado unificado-UML)
Unidad 4: Mecanismos de reutilización de código
- Herencia
- Composición
- Delegación
- Tipos parametrizados
Unidad 5: Enlace estático y dinámico
- Asignación estática y dinámica de tipos
- Enlace estático y dinámico de métodos
Unidad 6: Herencia y tipos
- Distribución de la memoria
- Asignación
- Equivalencia
- Conversión de tipos
- Herencia de clases y herencia de interfaces
Unidad 7: Ocultamiento de información
- Acoplamiento y cohesión
- Control de acceso y visibilidad
Unidad 8: Patrones de diseño
- Concepto
- Estructura de un patrón de diseño
- Patrones creacionales
- Patrones estructurales
- Patrones de comportamiento
Unidad 9: Programación con hilos
- Concurrencia y paralelismo
- Hilos y procesos
- Modelos de programación multihilos
- Ciclo de vida de un hilo
- Prioridades
- Sincronización
- Prácticas recomendadas
Metodología de la Enseñanza
Se realizarán clase teóricas por parte del profesor y se asignarán trabajos prácticos.
Intensidad Horaria
La intensidad horaria es de 3 horas/semana durante 16 semanas (48 horas/semestre).
Bibliografía
- Budd Timothy. Introducción a la Programación Orientada a Objetos. Addison-Wesley Iberoamericana. 1994.
- Stroustrup, Bjarne. The C++ Programming Language. Addison Wesley. Segunda edición. 1991.
- Aguilar Joyanes, Luis. Programación Orientada a Objetos. Segunda edición. Osborne McGraw-Hill. 1998.
- Campione, Mary, Walrath, Kathy. The Java Tutorial. Second Eddition. Addison Wesley.
- Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John. Design Patterns. Elements of reusable Object Oriented Software. Addison Wesley.
