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

Aula virtual y otros recursos web

Aula Virtual

Regresar al Plan de Estudios