4.1.4.11 Algoritmos y Estructuras de Datos fundamentales (8 horas) [Habilidades ABET1,ABET2,ABET6]

Referencias Bibliográficas: [Brookshear and Brylow, 2019] Temas
  1. Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números, encontrar el mínimo y máximo.
  2. Algoritmos de búsqueda secuencial y binaria.
  3. Algoritmos de ordenamiento de peor caso cuadrático (selección, inserción)
  4. Algoritmos de ordenamiento con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort, Mergesort)
  5. Tablas Hash, incluyendo estratégias para evitar y resolver colisiones.
  6. Árboles de búsqueda binaria:
    1. Operaciones comunes en árboles de búsqueda binaria como seleccionar el mínimo, máximo, insertar, eliminar, recorrido en árboles.
  7. Grafos y algoritmos en grafos:
    1. Representación de grafos (ej., lista de adyacencia, matriz de adyacencia)
    2. Recorrido en profundidad y amplitud
  8. Montículos (Heaps)
  9. Grafos y algoritmos en grafos:
    1. Algoritmos de la ruta más corta (algoritmos de Dijkstra y Floyd)
    2. Árbol de expansión mínima (algoritmos de Prim y Kruskal)
  10. Búsqueda de patrones y algoritmos de cadenas/texto (ej. búsqueda de subcadena, búsqueda de expresiones regulares, algoritmos de subsecuencia común más larga)

Objetivos de Aprendizaje (Learning Outcomes)

  1. Describir la implementación de tablas hash, incluyendo resolución y el evitamiento de colisiones [Familiarizarse]
  2. Resolver problemas usando algoritmos básicos de grafos, incluyendo busqueda por profundidad y busqueda por amplitud [Usar]
  3. Implementar algoritmos numéricos básicos [Usar]
  4. Implementar algoritmos de busqueda simple y explicar las diferencias en sus tiempos de complejidad [Evaluar]
  5. Ser capaz de implementar algoritmos de ordenamiento comunes cuádraticos y O(N log N) [Usar]
  6. Describir la implementación de tablas hash, incluyendo resolución y el evitamiento de colisiones [Familiarizarse]
  7. Discutir el tiempo de ejecución y eficiencia de memoria de los principales algoritmos de ordenamiento, busqueda y hashing [Familiarizarse]
  8. Discutir factores otros que no sean eficiencia computacional que influyan en la elección de algoritmos, tales como tiempo de programación, mantenibilidad, y el uso de patrones específicos de la aplicación en los datos de entrada [Familiarizarse]
  9. Explicar como el balanceamiento del arbol afecta la eficiencia de varias operaciones de un arbol de búsqueda binaria [Familiarizarse]
  10. Resolver problemas usando algoritmos básicos de grafos, incluyendo busqueda por profundidad y busqueda por amplitud [Usar]
  11. Demostrar habilidad para evaluar algoritmos, para seleccionar de un rango de posibles opciones, para proveer una justificación por esa selección,y para implementar el algoritmo en un contexto en específico [Evaluar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM