Imprimir

Programa

CURSO              :   Programacion Avanzada
SIGLA              :   IIC1222
CRÉDITOS           :   10
REQUISITOS         :   IIC1102 Introduccion a la Programacion
SEMESTRE           :   I y II


1. OBJETIVOS
   Capacitar al alumno para dise?ar, codificar, probar y evaluar programas que resuelvan
   problemas algoritmicos a partir de especificaciones detalladas. Para lograr este objetivo, el
   alumno completara el aprendizaje del lenguaje utilizado en el curso introductorio,
   conocera diversas estructuras de datos, aprendera tecnicas de dise?o y analisis de
   algoritmos, dominara diversas herramientas de apoyo a la programacion, y estudiara y
   aplicara conceptos de dise?o y programacion orientados a objetos.

2. CONTENIDO
   - Elementos avanzados de programacion: Repaso del curso IIC1102; Compilacion
      separada; Preprocesador; Memoria dinamica; Herramientas: make, procesador de
      macros, lenguaje de comandos.
   - Complejidad de algoritmos: Medidas de complejidad; Calculo de la complejidad de un
      algoritmo; Ecuaciones de recurrencia.
   - Estructuras de datos: Tipos abstractos de datos; Listas, colas, pilas; Hashing; Arboles;
      Grafos.
   - Prueba y evaluacion de programas: Robustez; Prueba de programas; Metodos de
      depuracion; Benchmarking; Herramientas: depuradores, profilers.
   - Tecnicas de dise?o de algoritmos: Refinamiento sucesivo, Division y conquista,
      Backtracking; Programacion dinamica; Algoritmos codiciosos; Generacion y prueba
      (fuerza bruta).
   - Programacion orientada a objetos: Clases y objetos; Herencia; Polimorfismo; Lenguaje
      de programacion orientado a objetos C++.
   - Estructura de aplicaciones orientadas a objetos: Librerias de clases; Arquitectura de
      software; Desarrollo de aplicaciones de manipulacion directa.

3. BIBLIOGRAFIA
   Minima:
        MAIN, M. and SAVITCH, W.             Data structures and other objects using C++.
            Addison Wesley, 1997.
   Complementaria:
        AMMERAAL, L. STL for C++ programmers. Wiley 1997.
        KERNIGHAN, Brian W. and RITCHE, Dennis M. The C programming language.
            2nd ed. Englewood Cliffs, N. J., Prentice Hall, 1988.
        LERMAN, S. Problem solving and computation for scientists and engineers: an
            introduction using C. Prentice Hall, Englewood Cliffs, New Jersey, 1993.
        STROUSTROUP, B. The C++ programming language. Reading, Mass., Addison
            Wesley, 1997.