1.2.2 - Algoritmos y Estructuras de datos I
Primer Año
Característica del Área Curricular | |||
---|---|---|---|
Plan | 2015 | ||
Cuatrimestre | Segundo | ||
Hs. Cat. | 90 | ||
Res. C.S. | 291/2015 | ||
Presentación
La asignatura se ubica en el segundo semestre del primer año de la carrera. Esta actividad curricular inicia la formación del alumno en los conceptos y practicas de la algoritmia, la resolución de problemas y del paradigma de programación funcional.
El objetivo general es que se siente las bases para seguir profundizando los conocimientos y sea una herramienta útil para el resto de las materias de programación en general y las algoritmias en particular.
Objetivos
La asignatura busca introducir al alumno en la problemática del diseño, interpretación, análisis y corrección de algoritmos, presentando las bases fundamentales y metodología de tratamiento.
Desarrollar los algoritmos eficientes y fundamentales existentes sobre estructura de datos comunes. El estudio de algoritmos para la resolución de problemas similares no enunciados formalmente.
Contenido Temático
UNIDAD 1: Introducción a los lenguajes funcionales: HASKELL
Expresiones: contantes, operadores aritméticos, operadores de cadenas, operadores de comparación, valores lógicos. Relación entre enteros y reales. Relación entre enteros y caracteres. Relación entre strings y caracteres. Identificadores. Niveles de entornos. Asignación
UNIDAD 2: Tuplas y listas
Tuplas. Accediendo a los componentes.. Listas. Notación y operadores. Conversiones entre caracteres, cadenas y listas.
UNIDAD 3: Funciones
Funciones. Tipos. Formas de declararlas. Aplicacion. Recurcsón. Forma de ejecución. Recursividad no lineal. Recursividad mutua. Inducción. La deducción de tipos.
UNIDAD 4: Patrones
Concepto de Pattern. Qué son y qué no son. Patrones como variables de funciones. Variables anónimas. Pattern Matching
UNIDAD 5: Clasificación de Conjuntos
Conceptos generales de un proceso de clasificacion. Nociones de eficiencia basada en tiempo. Sort por insercion. Sort por selección. Mergesort. QuickSort.
UNIDAD 6: Estructuras de datos basicas
Tipos de datos Abstractos. Estructuras de datos simples. Pilas. Colas.
Unidad 7: Estructuras de diccionarios
Representación de conjuntos. Diccionario basado en listas. Árboles binarios de búsqueda. Tablas de dispersión. Análisis de tiempo medio de búsqueda e inserción. Complejidad algoritmica.
Bibliografía
The Real World - O’Sullivan- Goerzen- Stewart - O’Really - 2009.
Programing in Haskell - Hutton - Cambridge - 2007.
Algorithms – A functional Programing Approach - Babhi - Lapalme - Addison Wesley - 1999.
Introducción al lenguaje Haskell - Labra - U. Oviedo - 1998.
Correlatividades
- Previas:
- Posteriores: