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 | |
---|---|---|
Yadran Eterovic | 1,2 | yadran@ing.puc.cl |
Ayudantes
Nombre | 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);
}
}