La materia tiene por objetivo que  l@s estudiantes  comprendan la noción de dato y de estructuras de datos, y su importancia e interrelación estrecha con la estructura algorítmica de un programa.
Entienda la diferencia entre acceso aleatorio y acceso secuencial. Conozcan la idea de interface de una estructura de datos, y sea capaz de utilizarla productivamente para la solución de problemas, entre otras cosas.

Modos de Cursada: Cuatrimestral Presencial

Horas Semanales: 8 horas

Demanda de tiempo en casa semanal: 8 horas

Sitio web:

  • Aún no disponible

Programa de la materia:

Contenidos Mínimos:

  • Recursión sobre listas y árboles. Programas recursivos.
  • Tipos algebraicos: maybe, either, enumerativos, listas, árboles binarios, árboles generales.
  • Estructuras contenedoras: pilas, colas, diccionarios, heaps, árboles balanceados, contenedores basados en representaciones numéricas.
  • Nociones de representación e invariante de representación y su utilidad en el diseño e implementación de estructuras de datos.
  • Uso imperativo de estructuras de datos. Iteración en listas y árboles.
  • Modelo de memoria imperativo: stack/heap, alocación de memoria. Punteros. Variables por referencia.
  • Listas encadenadas y sus variantes. árboles implementados con punteros. Binary heaps implementadas con arrays.
  • Hashing. Análisis de eficiencia e implementación.
  • Algoritmos de ordenamiento. Clasificación e implementación.
  • Nociones básicas de algoritmos sobre grafos.