Programación Avanzada

Programación Avanzada

Objetivo

En este curso se revisan distintos paradigmas de programación: estructurado, funcional, y orientado a objetos entre otros. Se discuten estrategias para optimizar la implementación de algoritmos, dependiendo del paradigma que se trabaje. Una parte de curso hace revisión de manejo de apuntadores (a datos, estructuras y a funciones), y los equivalentes en otros paradigmas de programación (selectores y tablas de funciones). En la parte de Programación Orientada a Objetos se discuten algunos de los patrones de diseño mas utilizados, como pueden ser oberver, MVC, o decorator, por mencionar algunos.

 

 Contenido temático

1. Conceptos básicos
    1.1. Proceso de desarrollo de un programa
    1.2. Tipos de datos abstractos
    1.3. Organización de código
    1.4. Funciones
    1.5. Punteros y manejo de memoria
    1.6. Fugas de memoria
   
2. Estructuras de datos
    2.1. Pilas, colas, listas, listas doblemente ligadas
    2.2. Árboles: Concepto, árboles binarios, recorridos, balanceo, búsqueda
    2.3. Algoritmos de búsqueda, ordenamiento y hash
   
3. STL (Standar Template Library)
    3.1. Vectores
    3.2. Iteradores
    3.3. Vectores bidimensionales
    3.4. Colas y listas
   
4. Scripts
    4.1. Shell
    4.2. Perl
    4.3. Python
    4.4. Ruby
   

Bibliografía

1. Reema Thareja. Data Structures Using C. Oxford University Press, Inc., New York, NY, USA. 2011.
2. Kernighan, Brian W., Rob Pike. El entorno de programaciÃUNIX Prentice-Hall Hispanoamericana, 1987.
3. Kernighan, Brian W., and Dennis M. Ritchie. El lenguaje de programaciÃC. Pearson Educació 1991.
4. Wall, Larry, Tom Christiansen, and Jon Orwant. Programming perl. O'Reilly Media, Inc., 2004.
5. Sanner, Michel F. Python: a programming language for software integration and development. J Mol Grap
h Model 17.1 (1999): 57-61.
6. Flanagan, David, and Yukihiro Matsumoto. The ruby programming language. O'Reilly Media, Inc.", 2008.
7. Marquez, Francisco. Unix-Programacion Avanzada. Alfaomega Grupo Editor, 2005.