IIC2133 - Estructuras de Datos y Algoritmos

2020-2

Bienvenido al sitio web del curso de Estructuras de Datos y Algoritmos. En esta página podrás encontrar la información administrativa del curso. En el repositorio podrás encontrar código ya preparado por tus ayudantes, junto con los eventuales enunciados de las tareas y las diapositivas de clases.

Tabla de contenidos

Clases y Ayudantías

Tipo Número Tema Fecha Grabación Material Material adicional
Clase 00 Introducción al curso 10/08 Video Slides
Ayudantía 00 Intro a C - Parte 1 12/08 Video Cápsulas
Ayudantía 00 Intro a C - Parte 2 14/08 Video Cápsulas
Clase 01 Selection Sort 17/08 Video Slides
Clase 02 Insertion Sort 19/08 Video Slides
Ayudantía 01 Correctitud y Complejidad 21/08 Video Enunciado Solución
Clase 03 MergeSort y dividir para conquistar 24/08 Video Slides Cálculo formal de complejidad para mergesort
Clase 04 Dividir para conquistar y QuickSort 26/08 Video Slides
Ayudantía 02 MergeSort, BinarySearch y Teorema Maestro 28/08 Video Enunciado Solución
Clase 05 Propiedades de Quicksort 31/08 Video Slides
Clase 06 Heap y HeapSort 02/09 Video Slides
Taller 01 Heaps 04/09 Video Slides
Clase 07 Árboles binarios de búsqueda 07/09 Video Slides
Clase 08 Reglas de balance y árbol AVL 09/09 Video Slides
Ayudantía 03 HeapSort, Heap y ABB 11/09 Video Enunciado Solución
Clase 09 Altura AVL y Árboles 2-3 14/09 Video Slides 1 Slides 2
Clase 10 Árboles Rojo-Negro 16/09 Video Slides
Clase 11 Repaso I1 28/09 Video Slides
Ayudantía 04 Preparación I1 Parte 1 30/09 Video Enunciado y solución
Ayudantía 05 Preparación I1 Parte 2 02/10 Video Enunciado Solución, Presentación
Clase 12 Tablas de hash 07/10 Video Slides Slides alternativas
Clase 13 Tablas y funciones de hash 09/10 Video Slides 1 Slides 2
Clase 14 Funciones de hash y sus propiedades 14/10 Video Slides
Ayudantía 06 Sesión de ayuda T2 16/10 Video
Clase 15 Grafos y Depth First Search 19/10 Video Slides
Clase 16 Aplicaciones de DFS 21/10 Video Slides
Ayudantía 07 Orden topológico, DFS (ejercicios para la casa) 23/10 Video 1, Video 2
Clase 17 Backtracking 26/10 Video Slides Slides Antiguas
Clase 18 Resultados I1 y Backtracking 28/10 Video Slides N-Queens
Ayudantía 08 Backtracking: podas y heurísticas 30/10 Video Slides Slitherlink, ZHED
Clase 19 BFS & Dijkstra 2/11 Video Slides
Clase 20 Dijkstra y grafos de estado 4/11 Video Slides Dijkstra , Slides Espacio de estados
Ayudantía 09 BFS & Dijkstra 6/11 Video Enunciado Slides y Demostración BFS
Clase 21 Repaso I2 11/11 Video Slides
Ayudantía 10 Repaso I2 13/11 Video Enunciado
Clase 22 MST, Prim y Algoritmos Codiciosos 18/11 Video Slides
Ayudantía 11 Algoritmos Codiciosos 20/11 Video Slides Burbujas , Simulación
Clase 23 Conjuntos disjuntos y Kruskal 23/11 Video Slides
Clase 24 Programación Dinámica I 25/11 Video Slides
Ayudantía 12 Conjuntos Disjuntos y Programación Dinámica 27/11 Video Slides Snake Problem
Clase 25 Programación Dinámica II, Bellman-Ford 30/11 Video Slides
Clase 26 Programación Dinámica III, Floyd-Warshall 2/12 Video Slides
Ayudantía 12 Programación Dinámica, Bellman-Ford 4/12 Video Enunciado Solución, Slides

Equipo

Profesores

Nombre Sección Email
Yadran Eterovic 1,2 yadran@ing.puc.cl

Ayudantes

Nombre Email Github
Vicente Errázuriz verrazuriz@uc.cl @vichoeq
Cristóbal Espinoza caespinoza5@uc.cl @caespinoza5
Yerko Chávez yachavez@uc.cl @yerkko
Nicolás Lahsen nflahsen@uc.cl @NicolasLahsen
Luciano Aguilera lbaguilera@uc.cl @arbiocanpion
Benjamín Domínguez bidominguez@uc.cl @B-Dominguez
Brayan Moreno bbmoreno@uc.cl @brayanmoreno
Florencia Ferrer fpferrer@uc.cl @fpferrer
Paula Yoma pbyoma@uc.cl @pbyoma
Kristine Droppelmann kkdroppelmann@uc.cl @kdroppelmann
Federico Hurtado fthurtado@uc.cl @fthurtado
Trinidad Vargas mtvargas1@uc.cl @TrinidadVargas
Cristóbal Jones cjones2@uc.cl @cjones27
Ignacio Zúñiga inzuniga@uc.cl @inzuniga
Ian Fieldhouse ifieldhouse@uc.cl @ifieldhouse
Diego Campos dacampos1@uc.cl @dacampos
Matías Quezada moquezada@uc.cl @moquezada
Kyle Bossonney kbossonney1@uc.cl @kylevon
Manuel Munoz mimunoz11@uc.cl @mimunoz11
Lothar Droppelmann ldroppelmann@uc.cl @lothardp
Jacques Hasard jnhasard@uc.cl @jnhasard

Evaluaciones

El curso consta de una parte teórica, evaluada mediante evaluaciones escritas (interrogaciones), y una parte práctica, evaluada mediante tareas de programación en C.

Evaluaciones Escritas

Habrá 3 interrogaciones, donde se evaluarán los aspectos más teóricos del contenido. Las interrogaciones serán subidas a las 14.00 del día de evaluación, con entrega hasta las 23.59 del mismo día. Cada interrogación tendrá 4 preguntas, de las cuales el alumno debe elegir 3 a contestar. Las interrogaciones están pensadas para ser contestadas en menos de 2 horas cada una. La nota de interrogaciones será el promedio de las 3 interrogaciones.

Evaluación Fecha
Interrogación 1 5 de octubre
Interrogación 2 16 de noviembre
Interrogación 3 11 de diciembre

Tareas

Habrá 5 tareas de programación en C, donde deberán resolver un problema complejo y analizarlo en un informe escrito. Las fechas a continuación son tentativas y están sujetas a cambios.

Evaluación Fecha de anuncio Fecha de entrega
Tarea 0 12 de agosto 29 de agosto
Tarea 1 31 de agosto 14 de septiembre
Tarea 2 7 de octubre 22 de octubre
Tarea 3 26 de octubre 13 de noviembre
Tarea 4 17 de noviembre 1 de diciembre

La nota final del curso se calcula de la siguiente manera:

double nota_final()
{
    /* La nota de cada tarea */
    double T0,T1,T2,T3,T4;    
    /* La nota de cada interrogación*/
    double I1,I2,I3;

    /* Promedio de tareas ignorando la peor */
    double NT = ((T0 + T1 + T2 + T3 + T4) - min(T0,T1,T2,T3,T4))/ 4;
    /* Promedio de interrogaciones */
    double NI = (I1 + I2 + I3) / 3;
    
    /* Nota final */
    double NF = (NT + NI) / 2;
    
    /* Es necesario tener sobre 3.7 en las evaluaciones escritas y las tareas por separado para aprobar el curso */
    if(NI < 3.7 || NT < 3.7)
    {
       return min(3.9, NF);
    }
    else
    {
       return min(NF, 7);
    }
}