Unidad 3 - Estructuras de Datos Comunes y Colecciones

Objetivos

Que el alumno comprenda las estructuras de datos más comunes utilizadas en la gran mayoría de los lenguajes y programas, como la lista, pila, cola, etc. Aplicar el concepto de TDA sobre dichas estructuras. Entender como éstas estructuras elevan el nivel por sobre los tipos básicos provistos por el lenguaje.

Por otro lado entender las estructuras desde dos puntos de vista:

    • desde su uso: es decir, decidir bajo qué contexto o problemas utilizar cada una de las estructuras, y además, cómo utilizarlas en forma correcta para realizar transformaciones y resolución de problemas sobre las estructuras (como filtrar, transformar, detectar, etc).
    • desde su implementación: comprender la problemática de la implementación interna de cada una de las estructuras, comparar y entender distintas implementaciones. Por ejemplo, Lista basada en array, lista enlazada, lista doblemente enlazada, etc.

Temas

Ideas que quedaron afuera

    • Iterators:
      • Explicar el concepto del iterador,
      • Algunas keywords en python: iteritems, enumerate
    • Emulando closures con lambdas y parámetros default (http://mcsp.wartburg.edu/zelle/python/sigcse-workshop/mgp00065.html)
      • Decorators: http://stackoverflow.com/questions/739654/understanding-python-decorators#1594484
  • generadores y yield
      • http://od-eon.com/blogs/calvin/python-yield-versus-return/
      • http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained
    • http://docs.python.org/release/2.5.2/ref/yield.html
    • itertools: permutations, etc.