• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language Makefile
  • Created over 1 year ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

IIC2133 - Estructuras de Datos y Algoritmos

2023-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

Material Complementario

Talleres fundamentos de C

Cápsulas de EDD y Algoritmos en C

Material Tareas

Clases

Número Tema Fecha Sección 1 Sección 2 Sección 3 Complementos
0 Introducción 7 de agosto Diapos Diapos Diapos
1 Selection Sort 16 de agosto Diapos Diapos Diapos
2 Insertion Sort 16 de agosto Diapos Diapos Diapos
3 Merge Sort 23 de agosto Diapos Diapos Diapos
4 Quick Sort 28 de agosto Diapos Diapos Diapos
5 Quick Sort y propiedades 30 de agosto Diapos Diapos Diapos
6 Árboles binarios de búsqueda 4 de septiembre Diapos Diapos Diapos
7 Árboles AVL 6 de septiembre Diapos Diapos Diapos
8 Árboles 2-3 11 de septiembre Diapos Diapos Diapos
9 Árboles rojo-negro 13 de septiembre Diapos Diapos Diapos
10 Tablas de hash 20 de septiembre Diapos Diapos Diapos
11 Orden lineal 25 de septiembre Diapos Diapos Diapos
12 Repaso I1 27 de septiembre Diapos Diapos Diapos
13 Backtracking 11 de octubre Diapos Diapos Diapos 8 Reinas
14 Backtracking II 16 de octubre Diapos Diapos Diapos
15 Algoritmos codiciosos 18 de octubre Diapos Diapos Diapos
16 Programación dinámica 23 de octubre Diapos Diapos Diapos
17 Grafos 25 de octubre Diapos Diapos Diapos
18 DFS y aplicaciones 30 de octubre Diapos Diapos Diapos
19 Repaso I2 6 de noviembre Diapos Diapos Diapos Ej Backtrack
20 MST y Kruskal 13 de noviembre Diapos Diapos Diapos
21 Heaps y heapsort 15 de noviembre 🥺 Diapos Diapos
22 MST y Prim 20 de noviembre Diapos Diapos Diapos
23 BFS y Dijkstra 22 de noviembre Diapos Diapos Diapos
24 Bellman-Ford 27 de noviembre Diapos Diapos Diapos
25 Repaso I3 29 de noviembre Diapos Diapos Diapos

Ayudantías

Tipo Número Tema Fecha Material

Programa

El programa detallado del curso se encuentra disponible aquí

Equipo

Profesores

Nombre Sección Email
Sebastián Bugedo 1 [email protected]
Mario Droguett 2 [email protected]
Eduardo Bustos 3 [email protected]

Ayudantes

Nombre Email Github
Carlos Paredes (jefe) [email protected] @CarloGauss33
Antonia Caceres (bienestar) [email protected] @antoniacaceres
Francisca de la Barra [email protected] @fddelabarra
Benjamín Vicente [email protected] @benjavicente
Victor Hernández [email protected] @victorllagos
Martín Orrego [email protected] @OrregoSilva
Tamara Han [email protected] @tamyhan
María Bloomfield [email protected] @MariaBloomfield
Martín Illanes [email protected] @illanes00
Dafne Arriagada [email protected] @Dafnemami
Juan Fernández [email protected] @juanfdezg
Joaquín Viñuela [email protected] @Vinuelax3
Sebastián Terrazas [email protected] @sebaterrazas
Catalina Alamos [email protected] @CataAlamos
Andrés Moraga [email protected] @andresmoraga0
Anita Marti [email protected] @4n1t4
Paula Grune [email protected] @paulagrune
Gustavo Salinas [email protected] @gsalinas1506
Sofia Hossiason [email protected] @Sofiasson
Alonso Tamayo [email protected] @aetamayo
Estefania Cofré [email protected] @Pakarati
Nicolás Santa María [email protected] @nsantama
Blanca Romero [email protected] @blankibeibi
Isabella Cherubini [email protected] @isabellacherubini
Felipe Jara [email protected] @FelipeUC2020

Evaluación

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.

Evaluación Fecha
I1 29 de Septiembre
I2 8 de Noviembre
I3 14 de Diciembre

Tareas

Habrá 4 tareas de programación en C, donde deberán resolver un problema complejo y analizarlo en un informe escrito.

Evaluación Fecha Publicacion Fecha Entrega
Tarea 0 16 de Agosto 1 de Septiembre
Tarea 1 5 de Septiembre 26 de Septiembre
Tarea 2 11 de Octubre (30 de Octubre) 2 de Noviembre
Tarea 3 9 de Noviembre 23 de Noviembre

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

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

  /* Promedio de tareas */
  double NT = min(0.20 * T0 + 0.30 * T1 + 0.25 * T2 + 0.25 * T3, 7.0);
  /* Promedio de interrogaciones */
  double NI = min(POND_I1 * I1 + POND_I2 * I2 + POND_I2 * I3, 7.0);

  /* 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);
  }
}

Política de Atrasos

La formula de atrasos es la siguiente:

La politica de atrasos en tareas es lineal. Por cada dia de atraso se restaran 7 decimas de la nota maxima de la tarea. Esto significa que es un descuento suave donde se aplica min(nota, 7 - descuento).

Además cada alumno tendra 2 cupones de atraso que permiten eliminar un dia de atraso calendario de la tarea.

Es importante mencionar que luego del fin del plazo oficial de la tarea, no se asegura el apoyo del equipo docente para resolver dudas. (Normalmente hay, pero el ritmo disminuye)

  double nota_con_atraso(double nota, int dias_de_atraso, int cupones_usados){
    int atraso_efectivo = dias_de_atraso - cupones_usados;

    if (atraso_efectivo > 3) { return 1.0; }

    return min(nota, 7.0 - 0.7 * atraso_efectivo);
  }

Ejemplos:

  1. La tarea se entrega el 10, pero entrego el 12:

    1. Si no uso cupones. La nota maxima obtenible es 7 - 0.7 * 2 = 5.6
    2. Si uso 1 cupon. La nota maxima obtenible es 7 - 0.7 * 1 = 6.3
    3. Si uso 2 cupones. La nota maxima obtenible es 7 - 0.7 * 0 = 7.0
  2. La tarea se entrega el 10, pero entrego el 15

    1. Si no uso cupones. La nota maxima obtenible es 1.0
    2. Si uso 1 cupon. La nota maxima obtenible es 7 - 0.7 * (5 - 1) = 4.2
    3. Si uso 2 cupones. La nota maxima obtenible es 7 - 0.7 * (5 - 2) = 4.9

Esto es independiente si algún dia de atraso es feriado o fin de semana.

Política de integridad académica

Este curso se adscribe a la política de integridad académica de la Escuela de Ingeniería y el Departamento de Computación.

Consideraciones Previas&

  • Uso de IAs: El uso de herramientas que utilicen modelos de inteligencias artificiales no esta sancionado, pero no esta recomendado más alla de sintaxis de código o detalles pequeños. Normalmente el uso de estas herramientas genera código que no resuelve correctamente la tarea y requiere tiempo adicional de depuración.
    • Además, en caso de utilizar se debe citar. En caso de no citar el uso de las herramientas podria detectarse similitud entre tareas de distintos alumnos y se considerara un caso de copia.
  • Uso de código de terceros: Se puede utilizar codigo extraido desde la internet siempre y cuando sea citado correctamente en la tarea. En caso de no citar el uso de las herramientas podria detectarse similitud entre tareas de distintos alumnos y se considerara un caso de copia.
  • Compartir ideas o algoritmos utiles: El curso permite compartir ideas sobre como resolver una tarea, pero no se permite compartir código. Solo ideas.

Declaración de integridad académica


Los alumnos de la Escuela de Ingeniería de la Pontificia Universidad Católica de Chile deben mantener un comportamiento acorde a la Declaración de Principios de la Universidad. En particular, se espera que mantengan altos estándares de honestidad académica. Cualquier acto deshonesto o fraude académico está prohibido; los alumnos que incurran en este tipo de acciones se exponen a un Procedimiento Sumario. Es responsabilidad de cada alumno conocer y respetar el documento sobre Integridad Académica publicado por la Dirección de Docencia de la Escuela de Ingeniería (disponible en SIDING).

Específicamente, para los cursos del Departamento de Ciencia de la Computación, rige obligatoriamente la siguiente política de integridad académica. Todo trabajo presentado por un alumno para los efectos de la evaluación de un curso debe ser hecho individualmente por el alumno, sin apoyo en material de terceros. Por “trabajo” se entiende en general las interrogaciones escritas, las tareas de programación u otras, los trabajos de laboratorio, los proyectos, el examen, entre otros.

En particular, si un alumno copia un trabajo, o si a un alumno se le prueba que compró o intentó comprar un trabajo, obtendrá nota final 1.1 en el curso y se solicitará a la Dirección de Docencia de la Escuela de Ingeniería que no le permita retirar el curso de la carga académica semestral.

Por “copia” se entiende incluir en el trabajo presentado como propio, partes hechas por otra persona. En caso que corresponda a “copia” a otros alumnos, la sanción anterior se aplicará a todos los involucrados. En todos los casos, se informará a la Dirección de Docencia de la Escuela de Ingeniería para que tome sanciones adicionales si lo estima conveniente. Obviamente, está permitido usar material disponible públicamente, por ejemplo, libros o contenidos tomados de Internet, siempre y cuando se incluya la referencia correspondiente y sea autorizado por los ayudantes.

Lo anterior se entiende como complemento al Reglamento del Alumno de la Pontificia Universidad Católica de Chile1. Por ello, es posible pedir a la Universidad la aplicación de sanciones adicionales especificadas en dicho reglamento.

1: Reglamento del Alumno de la Pontificia Universidad Católica de Chile disponible en: http://admisionyregistros.uc.cl/alumnos/informacion-academica/reglamentos-estudiantiles