Unidad 3 - Estructuras de Datos Comunes y Colecciones
Objetivos
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
Temas
- Lista
- Pila
- Cola
- Diccionario/Mapa
- Operaciones y lógica sobre estructuras
- Elementos de Programación funcional: funciones de orden superior
- Filter, Map, Reduce y Expresiones Lambda
- Listas y diccionarios por comprensión
- Generadores (Por Ahora queda fuera de los temas de la Cursada)
Ideas que quedaron afuera
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.