Algoritmos y Estructuras de Datos

Documentos relacionados
PLANIFICACIÓN Agrimensura Legal I

Ecuaciones Diferenciales

Redes y Comunicaciones de Datos I

Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Estructura de datos. Carrera: SCC Participantes

Formulación y Evaluación Económica Ambiental de Proyectos

Auditoría Informática

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Valuación Inmobiliaria

Ecuaciones Diferenciales

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

Conceptos de Algoritmos, Datos y Programas

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

P L A N I F I C A C I O N

TEORÍA DE GRAFOS Ingeniería de Sistemas

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

: Algorítmica y Estructura de Datos I

ESTRUCTURAS DE DATOS

Fundamentos de Programación

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

ASIGNATURA: ESTRUCTURA DE DATOS II

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos Introducción... 24

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

Mecánica de Suelos e Ingeniería Geotécnica

PLANIFICACIÓN Cálculo I

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

PROGRAMACIÓN UNIDADES

ÍNDICE INTRODUCCIÓN...13

Notación Asintótica 2

Complejidad computacional (Análisis de Algoritmos)

UNIVERSIDAD NACIONAL DE TRUJILLO Facultad de Ciencias Físicas y Matemáticas Escuela Académico Profesional de Informática

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Algoritmos y Estructuras de Datos

Complejidad de los Algoritmos

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

Algorítmica y Complejidad. Tema 3 Ordenación.

Ingeniería Forestal. Taller de Introducción a la Investigación de Operaciones

Redes y Comunicaciones de Datos II

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

Tema 3. Análisis de costes

Formulación del problema de la ruta más corta en programación lineal

Ampliación de Estructuras de Datos

Tabla de Símbolos. Programación II Margarita Álvarez

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Fundamentos de programación JAVA

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

PLANIFICACIÓN Cartografía Digital

Procesadores de lenguaje Tema 6 La tabla de símbolos

Nombre de la asignatura : Administración de Archivos. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9323

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

Algoritmos de Ordenación

Tablas de dispersión (hash tables)

Algoritmos y estructuras de datos

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Estructuras de datos: Árboles binarios de

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia

PROGRAMA DE LA MATERIA: Investigación Operativa Módulos semanales 3 Días de dictado: L M M J V S 3

SILABO DEL CURSO FUNDAMENTOS DE PROGRAMACIÓN

Cátedra de Sintaxis y Semántica de Lenguajes

PROGRAMA DE MATEMATICAS DISCRETAS

Fundamentos de Programación Visual Basic

Métodos de Ordenamiento. Unidad VI: Estructura de datos

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

ASEPE - Análisis de Sistemas Eléctricos de Potencia

PROGRAMA ASIGNATURA. Horas Cronológicas Semanales Presénciales Adicionales Total. Nº de Semanas (A) (B) (C=A+B) (D) (E=C*D) (F=E/27)

Grado en Contabilidad y Finanzas. Asignatura: Matemáticas Empresariales GUÍA DOCENTE DE LA ASIGNATURA: (Matemáticas Empresariales)

UNIVERSIDAD NACIONAL DE RÍO CUARTO FACULTAD DE CIENCIAS EXACTAS, FÍSICO-QUÍMICAS Y NATURALES DEPARTAMENTO DE COMPUTACIÓN

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

GUÍA DOCENTE MATEMATICAS APLICADAS I

Matemática 2. UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas, Físicas y Naturales República Argentina. Programa de:

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

Transcripción:

PLANIFICACIÓN 2013 Algoritmos y Estructuras de Datos INFORMACIÓN GENERAL Carrera Ingeniería en Informática Departamento Informática Plan de Estudios Plan 2006 Docente Responsable Mario Alberto Storti Carga Horaria Carga Horaria Cuatrimestral EORÍA PRÁCICA 90 hs 30 hs Carácter Cuatrimestral Equipo Docente Formación Experimental 0 hs Resolución de Problemas 32 hs Resolución de Problemas de Ingeniería 28 hs Proyectos y diseños de procesos 0 hs SIIO WEB DE LA ASIGNAURA http://www.cimec.org.ar/aed CONSULAS Y ORAS ACIVIDADES EVALUACIONES 0 hs 0 hs CONENIDOS MÍNIMOS DE LA ASIGNAURA Estructuras de datos: listas lineales, listas enlazadas, pilas, colas, decolas, árboles básicos, árboles balanceados. Elementos de programación funcional: predicados, funciones binarias asociativas, funciones de comparación. Algoritmos de ordenado, hashing, búsqueda y grafos básicos. OBJEIVOS DE LA ASIGNAURA Que el alumno conozca las estructuras de datos fundamentales y domine los algoritmos para manipularlas en forma eficiente. Que aprenda a elegir correctamente la estructura de datos y la implementación para obtener el algoritmo más eficiente para un problema dado. CONOCIMIENOS ESPECÍFICOS PREVIOS PARA CURSAR LA ASIGNAURA Materias del 1er cuatrimestre, en particular "Matemática Básica" y "Fundamentos de Programación". MEODOLOGÍA DE ENSEÑANZA Se dictan clases de teoría (2 horas semanales) en las cuales se enseñan los conceptos de las estructuras de datos fundamentales y los algoritmos para manipularlas en forma eficiente para que el alumno aprenda a elegir correctamente la estructura de datos y la implementación para obtener el algoritmo más eficiente para un problema dado. Una vez impartidos los conceptos básicos se describen ejemplos de usos de estas estructuras y finalmente se analizan varias posibles implementaciones de cada estructura de datos. En cuanto a la práctica (4 horas semanales), se realizan las guías de trabajos prácticos (8 en total). Estas son resueltas por los Página 1 de 12

alumnos con la guía de los docentes. ambién se proponen nuevos ejercicios de programación, en los cuales se plantea una consigna y los alumnos escriben código para resolver ese problema. Otra actividad consiste en proponer otras implementaciones para las diferentes estructuras de datos y algoritmos. PROGRAMA ANALÍICO ítulo: Diseño y análisis de algoritmos 1.1. Conceptos básicos de algoritmos. Ejemplo: Sincronización de acceso a objetos en cálculo distribuido. Introducción básica a grafos. Planteo del problema mediante grafos. Algoritmo de búsqueda exhaustiva. Generación de las coloraciones. Crecimiento del tiempo de ejecución. Búsqueda exhaustiva mejorada. Algoritmo heurístico. Crecimiento del tiempo de ejecución para el algoritmo ávido. Conclusión del ejemplo. 1.2. ipos abstractos de datos. Operaciones abstractas y características del AD conjunto. Interfase del AD conjunto. Implementación del AD conjunto. iempo de ejecución de un programa. Notación asintótica. Invariancia ante constantes multiplicativas. Invariancia de la tasa de crecimiento ante valores en un conjunto finito de puntos. ransitividad. Regla de la suma. Regla del producto. Funciones típicas utilizadas en la notación asintótica. Equivalencia. La función factorial. Determinación experimental de la tasa de crecimiento. Otros recursos computacionales. iempos de ejecución no-polinomiales. Problemas P y NP. Varios parámetros en el problema. 1.4. Conteo de operaciones para el cálculo del tiempo de ejecución. Bloques if. Lazos. Suma de potencias. Llamadas a rutinas. Llamadas recursivas ítulo: ipos de datos abstractos fundamentales 2.1. El AD Lista. Descripción matemática de las listas. Operaciones abstractas sobre listas. Una interfase simple para listas. Funciones que retornan referencias. Ejemplos de uso de la interfase. Implementación de listas por arreglos. Eficiencia de la implementación por arreglos. Implementación mediante celdas enlazadas por punteros. El tipo posición. Celda de encabezamiento. Las posiciones `begin' y `end'. Detalles de implementación. Implementación mediante celdas enlazadas por cursores. Cómo conviven varias celdas en un mismo espacio. Gestión de celdas. Analogía entre punteros y cursores. iempos de ejecución de los métodos en las diferentes implementaciones. Interfase SL. Ventajas de la interfase SL. Ejemplo de uso. Uso de templates y clases anidadas. Operadores de incremento prefijo y postfijo. Listas doblemente enlazadas. 2.2. El AD pila. Ejemplo: Una calculadora RPN con una pila. Operaciones abstractas sobre pilas. Interfase para pila. Implementación de una calculadora RPN. Implementación de pilas mediante listas. La pila como un adaptador. Interfase SL. 2.3. El AD cola. Ejemplo: Intercalación de vectores ordenados. Ordenamiento por inserción. iempo de ejecución. Particularidades al estar las secuencias pares e impares ordenadas. Algoritmo de intercalación con una cola auxiliar. Operaciones abstractas sobre colas. Interfase para cola. Implementación del algoritmo de intercalación de vectores. iempo de ejecución. 2.4. El AD correspondencia. Interfase simple para correspondencias. Implementación de correspondencias mediante contenedores lineales. Implementación mediante contenedores lineales ordenados. Implementación de mediante listas ordenadas. Interfase compatible con SL. iempos de Página 2 de 12

ejecución para listas ordenadas. Implementación mediante vectores ordenados. iempos de ejecución para vectores ordenados. Definición de una relación de orden. ítulo: Arboles Nomenclatura básica de árboles. Altura de un nodo. Profundidad de un nodo. Nivel. Nodos hermanos. Orden de los nodos. Particionamiento del conjunto de nodos. Listado de los nodos de un árbol. Orden previo. Orden posterior. Orden posterior y la notación polaca invertida. Notación Lisp para árboles. Reconstrucción del árbol a partir de sus órdenes. 3.3. Operaciones con árboles. Algoritmos para listar nodos. Inserción en árboles. Algoritmo para copiar árboles. Supresión en árboles. Operaciones básicas sobre el tipo árbol. 3.4. Interfase básica para árboles. Listados en orden previo y posterior y notación Lisp. Funciones auxiliares para recursión y sobrecarga de funciones. Algoritmos de copia. Algoritmo de poda. Implementación de la interfase básica por punteros. 3.5.1. El tipo iterator. Las clases `cell' e `iterator'. La clase tree. Interfase avanzada. Ejemplo de uso de la interfase avanzada. 3.7. iempos de ejecución 3.8 Arboles binarios. Listados en orden simétrico. Notación Lisp. Árbol binario lleno. Operaciones básicas sobre árboles binarios. Interfases e implementaciones. Interfase básica. Predicados de igualdad y espejo. Hacer espejo "in place". Implementación con celdas enlazadas por punteros. El algoritmo apply y principios de programación funcional.. Implementación de la interfase avanzada. 3.9 Arboles de Huffman. Condición de prefijos. Representación de códigos como árboles de Huffman. Códigos redundantes. abla de códigos óptima. Algoritmo de búsqueda exhaustiva. Generación de los árboles. Un toque de programación funcional. El algoritmo de combinación. Función auxiliar que calcula la longitud media. El algoritmo de Huffman. Implementación del algoritmo. Ejemplo: Un programa de compresión de archivos. ítulo: Conjuntos Introducción a los conjuntos. Notación de conjuntos. Interfase básica para conjuntos. Análisis de flujo de datos. 4.2. Implementación por vectores de bits. Conjuntos universales que no son rangos contiguos de enteros. Descripción del código. Página 3 de 12

4.3. Implementación con listas. Similaridad entre los AD conjunto y correspondencia. Algoritmo lineal para las operaciones binarias. Descripción de la implementación. iempos de ejecución. 4.4. Interfase avanzada para conjuntos. 4.5. El diccionario. La estructura tabla de dispersión. ablas de dispersión abiertas. Detalles de implementación. iempos de ejecución. Funciones de dispersión. ablas de dispersión cerradas. Costo de la inserción exitosa. Costo de la inserción no exitosa. Costo de la búsqueda. Supresión de elementos. Costo de las funciones cuando hay supresión. Reinserción de la tabla. Costo de las operaciones con supresión. Estrategias de redispersión. Detalles de implementación. 4.6. Conjuntos con árboles binarios de búsqueda. Representación como lista ordenada de los valores. Verificar la condición de ABB. Mínimo y máximo. Buscar un elemento. Costo de mínimo. Operación de inserción. Operación de borrado. Recorrido en el árbol. Operaciones binarias. Detalles de implementación. iempos de ejecución. Balanceo del árbol. ítulo: Ordenamiento 5. Ordenamiento. (2 semana) Introducción. Relaciones de orden débiles. Signatura de las relaciones de orden. Predicados binarios. Relaciones de orden inducidas por composición. Estabilidad. Primeras estimaciones de eficiencia. Algoritmos de ordenamiento en las SL. 5.2. Métodos de ordenamiento lentos. El método de la burbuja. El método de inserción. El método de selección. Comparación de los métodos lentos. Estabilidad. 5.3. Ordenamiento indirecto. Minimizar la llamada a funciones. 5.4. El método de ordenamiento rápido, quick-sort. iempo de ejecución. Casos extremos. Elección del pivote. iempo de ejecución. Caso promedio. Dispersión de los tiempos de ejecución. Elección aleatoria del pivote. El algoritmo de partición. iempo de ejecución del algoritmo de particionamiento. Búsqueda del pivote por la mediana. Implementación de quick-sort. Estabilidad. El algoritmo de intercambio (swap). iempo de ejecución del quick-sort estable. 5.5. Ordenamiento por montículos. El montículo. Propiedades. Inserción. Costo de la inserción. Eliminar el mínimo. Costo de re-heap. Implementación in-place. El procedimiento make-heap. Implementación. Propiedades de la clasificación por montículo. Página 4 de 12

5.6. Ordenamiento por fusión. Implementación. Estabilidad. Versión estable de split. Merge-sort para vectores. Clasificación externa. 5.7. Comparación de algunas implementaciones de algoritmos de ordenamiento. ítulo: ítulo: écnicas de Análisis de Algoritmos Eficiencia de los algoritmos. Análisis de programas recursivos. Resolución de ecuaciones de recurrencia. Solución general para una clase grande de recurrencias. écnicas de Diseño de Algoritmos Algoritmos dividir para vencer. Programación dinámica. Algoritmos ávidos (greedy). Método de retroceso (Backtracking). Algoritmos de búsqueda local. BIBLIOGRAFÍA BÁSICA ítulo: Estructura de Datos en Pascal Autores: enenbaum y Augenstein ISBN: 978-9688800324 Editorial: Prentice-Hall Formato: Selección de Páginas: No se ha especificado la selección de páginas. ítulo: Estructura de Datos Y Algoritmos Autores: Aho, Hopcroft y Ullman, ISBN: 978-9684443457 Editorial: Addison-Wesley Formato: Selección de Páginas: No se ha especificado la selección de páginas. ítulo: Estructuras de Datos y Algoritmos Autores: Weiss ISBN: 978-0201625714 Editorial: Addison Wesley Formato: Selección de Páginas: No se ha especificado la selección de páginas. BIBLIOGRAFÍA COMPLEMENARIA No se ha carga bibliografía complementaria para esta asignatura. CRONOGRAMA DE ACIVIDADES Página 5 de 12

Actividad: Diseño y Análisis de Algoritmos Semana: 1 Actividad: Guia de P Nro 1 Semana: 1 Actividad: Diseño y Análisis de Algoritmos Semana: 2 Actividad: Guia de P Nro 1, parte 2 Semana: 2 Actividad: ipos de Datos Abstractos Fundamentales. Parte 1 Semana: 3 Actividad: Guia de P Nro 2, parte 1 Semana: 3 Página 6 de 12

Actividad: ipos de Datos Abstractos Fundamentales. Parte 2 Semana: 4 Actividad: Guia de P Nro 2. Parte 2 Semana: 4 Actividad: ipos de Datos Abstractos Fundamentales, Parte 3 Semana: 5 Actividad: Guia de P Nro 2, Parte 3 Semana: 5 Actividad: Arboles, Parte 1 Semana: 6 Docentes a Rodrigo Rafael Paz, Mario Alberto Storti Actividad: Guia de P Nro 3, Parte 1] RP+LD Semana: 6 Página 7 de 12

Actividad: Arboles, Parte 2 Semana: 7 Docentes a Rodrigo Rafael Paz, Mario Alberto Storti Actividad: Guia de P Nro 3, Parte 2 Semana: 7 Actividad: Arboles, Parte 3 Semana: 8 Docentes a Rodrigo Rafael Paz, Mario Alberto Storti Actividad: Guia de P Nro 4, Parte 1 Semana: 8 Actividad: Arboles, Parte 4 Semana: 9 Docentes a Rodrigo Rafael Paz, Mario Alberto Storti Actividad: Guia de P Nro 4 [2] Semana: 9 Página 8 de 12

Actividad: Conjuntos, Parte 1 Semana: 10 Actividad: Guia de P Nro 5, Parte 1 Semana: 10 Actividad: Conjuntos, Parte 2 Semana: 11 Actividad: Guia de P Nro 5, Parte 2 Semana: 11 Actividad: Conjuntos, Parte 3 Semana: 12 Actividad: Guia de P Nro 6 Semana: 12 Página 9 de 12

Actividad: Clasificación. Parte 1 Semana: 13 Actividad: Guia de P Nro 7, Parte 1 Semana: 13 Actividad: Clasificación, Parte 2 Semana: 14 Actividad: Guia de P Nro 7, Parte 2 Semana: 14 Actividad: écnicas de Análisis de Alg. Parte 1 Semana: 15 Actividad: Guia de P Nro 8, Parte 1 Semana: 15 REQUERIMIENOS DE LA ASIGNAURA Detallar cuanto sea necesario para que los alumnos no tengan dudas sobre cada uno de estos requerimientos: Página 10 de 12

Para Regularizar: Haber obtenido al menos 40% de rendimiento en los 2 parciales (el Recuperatorio es globalizador y reemplaza a la peor nota de los parciales) y en los 3 PL (rabajos Prácticos de Laboratorio). Para Promocionar: Debe regularizar la materia. Debe tener más de 70% en el promedio de los 2 parciales y 3 PLs EXAMEN FINAL Para Alumnos Regulares: Se toma un examen final sobre la parte práctica (programación, ejercicios operativos y clases) y preguntas de eoría. Para Alumnos Libres: Se toma un examen final sobre la parte práctica (programación, ejercicios operativos y clases) y preguntas de eoría. EVALUACIONES PARCIALES Fecha: 03-10-2013 ítulo: Parcial 1 emas / Descripción: Capítulos 1, 2 y 3 (hasta AOO, Arbol Ordenado Orientado) Fecha: 14-11-2013 ítulo: Parcial 2 emas / Descripción: Desde capítulo 3 (arboles) en adelante. RABAJOS PRÁCICOS Fecha: 31-08-2013 ítulo: rabajo práctico de laboratorio PL1 emas / Descripción: El alumno debe escribir programas que cumplen con consignas en el ordenador. ema: listas Fecha: 28-09-2013 ítulo: rabajo práctico de laboratorio PL2 emas / Descripción: El alumno debe realizar programas en ordenador que satisfacen consignas. emas: pila, lista, correspondencia, arbol ordenado orientado. Fecha: 02-11-2013 ítulo: rabajo práctico de laboratorio PL3 emas / Descripción: Idem PL1 y PL2. ema: arbol binario, conjuntos, ordenamiento RECUPERAORIOS Página 11 de 12

Powered by CPDF (www.tcpdf.org) Fecha: 28-11-2013 ítulo: Recuperatorio emas / Descripción: INFORMACIÓN COMPLEMENARIA No se ha ingresado información complementaria para esta asignatura Página 12 de 12