ELO 320 Estructura de Datos y Algoritmos
Primer Semestre 2003
Semestre de 32 sesiones.
Profesor: Agustín J. González
Ayudante: José Gardiazabal
Horario clases:  Miércoles 8:15-9:45 en B-360 y Viernes 10:00-11:30 en B-221
Horario de Oficina
Información de contacto:  Oficina: B-322       e-mail: agustin . gonzalez arroa elo.utfsm.cl        Fono: 654196
Lista de correo: lista_elo320 @ elo.utfsm.cl  (ver instrucciones de uso aquí )

Textos:
    Thomas H. Cormen, Charles e. Leiserson,  y Ronald L. Rivest, "Introducction to Algorithms",    McGraw-Hill, ISBN 0-07-013143-0.  1990 (Ver copias en Pañol ELO)
    Timothy Budd, "Data Structures in C++ using the Standard Template Library", 1998, Addison Wesley Publishing, ISBN 0-201-30879-7 (Ver en  biblioteca USM)

Otros textos de referencia:
    Brian W. Kernighan Y Dennis M. Ritchie, "El Lenguage de Programación C" , Prentice Hall, ISBN 968-880-205-0 (Buena referencia de C)
    Alfred  V. Aho, John E. Hopcroft, Jeffey D. Hullman, "Data Structures and Algorithms", Addison Wesley (mi copia es del año 83, presenta la mayor parte de los algoritmos, pero no es tan completo como el de Cormen, Leiserson and Rivest, pero puede estar en biblioteca)


Contenido
   Introducción
   Revisión de Lenguaje de programación C.
        Introducción a Makefile
        Material complementario sobre directivas del procesador
   Fundamentos Matemáticos requeridos para la evaluacion de algortihmos
         Crecimiento de funciones (insertion-sort) y definiciones ,
         Análisis de Algoritmos (merge-sort)
   Algorithmos de ordenamiento :
        Definiciones: Conjunto, grafo, árbol .
        Heapsort ,
        Quicksort ,
        Ordenamiento en tiempo lineal , Mediana y estadisticas de orden.
   Estructuras de datos :
        Estructuras de datos elementales: Pilas,  colas,   Listas enlazadas, y Árboles
       <Desde aqui contenidos certamen final>
        Tablas hash
        Árboles de búsqueda binaria,
        Extensiones a Estructuras de Datos Básicas. Ejemplo de uso. Mejor solución de la época dada por Carlos Zamora
        Algoritmos "Oportunistas" (Greedy Algorithms)
   Algoritmos en Grafos:
        Algoritmos elementales: Breadth-first search y Depth-first search: Orden topológico y componentes fuertemente conexas.,
        Minimum Spanning Tree (árbol de expasión de peso mínimo): Prim y Kruskal ,
        Camino más corto desde una fuente. Algoritmos de  Dijkstra y Bellman- Ford (ver tarea años anteriores) Ver cetame 2 año 2002
         Redes de Flujo Aqui pueden encontrar un applet que ilustra el resultado de este algoritmo.
         NP_Completitud
   Biblioteca Estandar de Pantillas de C++ ( C++ Standard Template Library)
        Bases de C++
        Clases contenedoras
        Vectores
       Ejemplos sobre uso de STL: vector.cpp list.cpp count.cpp upperBound.cpp


Evaluación:
    35 %   Primer Certamen: Miércoles 30 de Abril  1er Certamen 2002 y su solución  ( .pdf ) 1er Certamen 2001
                    Solución Certamen parcial 2003:   Histograma de Frecuencia de Notas

    45 %   Segundo Certamen: Viernes 20 de Junio  2do certamen 2002 y su solución (.pdf ) 2do. Certamen 2001   3er. Certamen 2001
                   Solución Certamen Final y su Histograma de Frecuencia de Notas.
    20 %    Tareas (analíticas y de programación) Procedimiento de entrega de programasEvaluación de programas
        Las tareas se pueden desarrollar en grupos de dos. El grupo queda definido con la entrega de la primera tarea.

        Tarea 1: Actualizaciones del máximo. Plazo 1 de abril, 24:00 hrs.
        Tarea 2: Costo en tiempo de Quicksort. Plazo 22 de Abril, 24:00 hrs.
        Tarea 3: Ejercicios de papel y lápiz. Plazo 30 de Abril 8:15 AM.
        Tarea 4: Evaluación de expresiones aritméticas usando Reverse Polish Notation (RPN). Plazo 22 de mayo, 24:00 hrs.
        Tarea 5: Redes de flujo máximo.  Plazo 18 de Junio. 24:00 hrs.


 

Mejores Soluciones a Tareas de Programación:

Tarea 1
Álvaro Bravo Mercado

Tarea 2
Isabel Delgado & Christian Lalanne
Daniel Vergara & Patricio Dencer
Tarea 4
Patricio Denzer y Daniel Vergara
 Manuel Jander y Pablo Naveas
Tarea 5
Manuel Jander y Pablo Naveas
Sergio Catalán y Rodrigo Pinto




 

Misceláneos
   Ejemplo de uso de gnuplot
    Sobre Intervalos de Confianza: entendiendo el concepto , definición formal y cálculo de intervalos de confianza para el promedio.
    Manual GNU para make(versión html Local)
   Compilador C++ GNU