/Algo2

Primary LanguagePython

PROGRAMA DE ASIGNATURA

Algoritmos y Estructuras de Datos II

Facultad de Ingeniería - Universidad Nacional de Cuyo | 2020

https://repl.it/@BrunoFuentes

OBJETIVOS

Al finalizar el curso los alumnos conocerán:

  1. Los conceptos de estructuras de datos avanzadas.
  2. El procedimiento para la resolución problemas algorítmicos aplicando el pensamiento abstracto.
  3. La aplicación de complejidad computacional para el diseño de algoritmos.

CONTENIDOS

UNIDAD 1 ORDEN DE COMPLEJIDAD

Complejidad temporal y espacial. Análisis de peor caso, mejor caso y caso promedio. Análisis asintótico. Notación Big-Oh, Big-Omega, Big-Theta. Ejemplos de aplicación. Analisis de complejidad en recurrencia avanzado. Metodo maestro.

UNIDAD 2 ÁRBOLES AVANZADOS

Propiedades. Operaciones Elementales. Inserción, rotación, eliminación, búsqueda. Análisis de complejidad en Árboles. Mejor caso, caso promedio, peor caso. Arbol AVL. Árbol Rojo-Negro. Trie.

UNIDAD 3: TABLAS HASH

Operaciones Elementales. Función hash. Construcción. Redireccionamiento abierto y cerrado. Implementación de Diccionarios con Tablas hash. Análisis del orden de complejidad.

UNIDAD 4: GRAFOS

Grafos Dirigidos y no dirigidos. Representación. Operaciones elementales. Algoritmo de Dijkstra. Algoritmo de Floyd. Búsqueda en profundidad y el altura. Árbol de expansión mínima. Algoritmo de Prim y Kruskal.

UNIDAD 5: BÚSQUEDA DE PATRONES

Búsqueda de subcadenas. Algoritmo Naive para búsqueda de patrones. Algoritmo de Knuth-Morris-Pratt. Autómatas finitos. Algoritmo de Rabin-Karp.

UNIDAD 6 TÉCNICAS PARA DISEÑO DE ALGORITMOS.

Divide y vencerás. Greedy y Backtracking. Programación Dinámica.

METODOLOGÍA DE ENSEÑANZA

Para el dictado de la materia se propone aplicar una metodología basada en el modelo pedagógico conocido como “aula invertida”. Se trata de un modelo que plantea la necesidad de transferir parte del proceso de enseñanza y aprendizaje fuera del aula con el fin de utilizar el tiempo de clase para el desarrollo de procesos cognitivos de mayor complejidad, que favorezcan el aprendizaje significativo. La enseñanza de algoritmos y estructura de datos resulta adecuada para aplicar una metodología de aula invertida, ya que se trata de una materia con una fuerte componente práctica. Se presenta a continuación el detalle de las actividades deberán realizar los alumnos durante el cursado de la misma.

Actividades extra-aula

  1. Previo a cada clase, el alumno deberá tener una primera aproximación a los conceptos a desarrollar en dicha clase mediante material fundamentalmente audiovisual, junto a otro material de consulta debidamente preparado por la cátedra.
  2. Al finalizar de consumir el material, el alumno deberá responder una serie de preguntas guías destinadas a evaluar el grado de comprensión sobre cada tema tratado Dichas preguntas guías apuntan no sólo a detectar problemas de comprensión, sino que también serán indicadores de mejoras futuras en el material provisto por la cátedra.

Actividades intra-aula

  1. Entre el 25 y 30 por ciento del tiempo de la clase se utilizará para reforzar los conocimientos teóricos y solucionar los posibles inconvenientes que hayan surgido durante las actividades extra-aula.

  2. Finalizado el proceso de la discusión y refuerzo de conocimientos, se destinará el resto de la clase al desarrollo de diferentes actividades orientadas a aplicar y afianzar los conocimientos adquiridos durante las etapas previas. Estas actividades pueden incluir:

    1.Trabajo dirigido (TD): se provee al alguno de un conjunto de ejercicios simples que deberán ser resueltos aplicando mayormente los puntos expuestos durante la clase. Los TD pueden tomar la forma de cuestionarios de opción múltiple, o también permitir desarrollo de los diferentes algoritmos expuestos. 2.Trabajo Práctico de laboratorio (TP): se trata de problemas que deben ser resueltos en computadora. El objetivo de esta actividad acercar al alumno a implementación concretas de los algoritmos a partir de los algoritmos en pseudocódigo y las estructuras abstractas de datos. 3.Actividad de investigación (AI): se trata de una actividad que apunta a guiar al alumno en el desarrollo de soluciones sobre temas no desarrollados con anterioridad. Para llegar a la solución, el alumno requerirá la aplicación de varios de los conocimientos expuestos del programa. 4.Evaluación: Se trata de una evaluación integradora realizada al final de cada unidad. La misma se realiza de manera individual y tiene por objetivo medir el nivel de conocimiento de los alumnos a fin de tomar las acciones correctivas necesarias.

  3. Antes de dar por finalizado el tema desarrollado, se procederá a realizar una puesta en común en donde tanto los alumnos como los profesores de la cátedra elevarán sus opiniones sobre los temas tratados