2019-10
Nombre del curso: | ISIS1206 Estructuras de Datos |
---|---|
Créditos: | 3 |
Pre-requisitos: | ISIS 1205 APO2 |
Descripción
Estructuras de datos, es el último curso del ciclo básico de programación, el propósito de este curso es generar en el estudiante la habilidad de diseñar e implementar las estructuras de datos en memoria principal necesarias para resolver un problema, teniendo en cuenta un conjunto de restricciones y criterios de calidad.
Secciones
Sección: | 1 |
---|---|
Profesor: | Fernando De la Rosa (fde@uniandes.edu.co) |
Clases: | Lu & Ma – 9:30 am a 10:50 am |
Laboratorio: | Ju 9:30 am a 10:50 am |
Sección: | 2 |
---|---|
Profesor: | Carlos Lozano (ca.lozano968@uniandes.edu.co) |
Clases: | Lu & Ju – 12:30 pm a 1:50pm |
Laboratorio: | Vi 12:30 pm a 1:50pm |
Sección: | 3 |
---|---|
Profesor: | Fernando De la Rosa (fde@uniandes.edu.co) |
Clases: | Ma & Ju – 2:00 pm a 3:20pm |
Laboratorio: | Vi 2:00 pm a 3:20pm |
Sección: | 4 |
---|---|
Profesor: | Luis Esteban Florez (le.florez602@uniandes.edu.co) |
Clases: | Lu & Ma – 3:30 pm a 4:50 pm |
Laboratorio: | Vi 3:30 pm a 4:50 pm |
Objetivos
Al final del curso, se espera que el estudiante esté en capacidad de:
- Diseñar e implementar una estructura contenedora abstracta, garantizando el desacoplamiento entre su descripción funcional y su representación interna.
- Proponer y justificar el diseño de unas estructuras de datos para resolver un problema, utilizando como argumentos la complejidad de los algoritmos que implementan las operaciones críticas, el espacio ocupado en memoria y la flexibilidad.
- Entender los diferentes tipos de estructuras de datos que se pueden utilizar para modelar los elementos de un mundo.
- Escribir los algoritmos que manipulan las principales estructuras de datos lineales, de acceso directo, recursivas y no lineales.
- Diseñar la solución a problemas integrando estructuras de datos apropiadas para obtener soluciones eficientes en tiempo y en espacio.
Metodología
El curso consiste en 3 horas semanales de clase presencial con el profesor, 1½ horas de trabajo supervisado en el laboratorio y 4½ horas de trabajo individual por fuera de clase. El estudiante que no asista al menos al 80% de las clases y sesiones de trabajo supervisado no podrá aprobar el curso. El curso esta organizado en 3 partes que corresponden a objetivos pedagógicos específicos y a un conjunto de conocimientos y habilidades que se introducen o refuerzan. Los medios de comunicación oficiales del curso son el sitio WEB del curso, la lista de correo electrónico y las aulas virtuales en SICUA+.
Evaluaciones
Durante el semestre se realizarán 3 exámenes escritos individuales. Además, el estudiante deberá desarrollar 3 proyectos, los cuales se desarrollarán en parejas, aunque la sustentación y la nota serán individuales. Adicionalmente los estudiantes desarrollaran individualmente talleres de refuerzos de los temas vistos. Sólo se aceptan las entregas de los proyectos y los talleres hechos según el medio electrónico definido para el curso y que es informado en los enunciados respectivos en los plazos establecidos. Sobre este último punto no hay excepciones.
Los porcentajes de calificación son los siguientes:
Concepto | Porcentaje |
---|---|
Examen 1 | 17% |
Examen 2 | 17% |
Examen 3 | 17% |
Proyecto 1 | 13% |
Proyecto 2 | 13% |
Proyecto 3 | 13% |
Talleres | 10% |
Para aprobar el curso se debe obtener una nota numérica superior o igual a 3.0, lo cual implica que no hay ningún tipo de aproximación.
Notas finales
La nota final se calculará como la Nota Ponderada de las evaluaciones realizadas por su porcentaje respectivo, expresada con sus dos primeros decimales.
Caso Especial: NO hay aproximación a 3.00 con una nota ponderada inferior a 3.00. En particular, las notas ponderadas con 2.99 No se aproximan a 3.00.
Calendario
Semana | Clase | Tema | Lecturas | Presentación | Laboratorio/Proyectos |
---|---|---|---|---|---|
1 | 1 | Introducción | Ambiente de desarrollo del curso–Manejo de repositorios GIT–T1: Manejo de consola–Envío de talleres (estructura)–Enunciado General del proyecto –Enunciado proyecto 1 | ||
2 | Revisión Java | ||||
2 | 3 | Analisis complejidad | T2: Revisión Java | ||
4 | Listas | ||||
3 | 5 | Pilas y Colas | T3: Listas. Bolsas. Pilas | ||
6 | Algoritmos de ordenamiento básicos | ||||
4 | 7 | MergeSort | Seguimiento Proyecto 1- Envío Proyectos | ||
8 | Quicksort | ||||
5 | 9 | Colas de prioridad: Binary Heap, HeapSort. | T4: Ordenamiento | ||
10 | Colas de prioridad: Binary Heap, HeapSort. | ||||
6 | Parcial 1 (Semana 1-4) | Entrega proyecto 1 Enunciado proyecto 2 | |||
7 | 13 | Búsquedas:tabla de símbolos, Tablas de Hash | T5: Colas de prioridad: Binary Heap. HeapSort | ||
14 | Tablas de Hash | ||||
8 | 15 | Árboles binarios | T6: Tablas de Hash | ||
16 | Árboles binarios | ||||
9 | 17 | Árboles balanceados | Seguimiento proyecto 2 | ||
18 | Árboles balanceados | ||||
10 | Parcial 2 (Semana 5-9) | ||||
11 | 21 | Grafos no dirigidos | T7: Árboles binarios –Entrega proyecto 2 –Enunciado proyecto 3 | ||
22 | Grafos no dirigidos | ||||
12 | 23 | Grafos dirigidos | T8:Grafos no dirigidos | ||
24 | Grafos dirigidos | ||||
13 | 25 | Algoritmos sobre grafos | T9:Grafos dirigidos | ||
26 | Algoritmos sobre grafos | ||||
14 | 27 | Algoritmos sobre grafos | T10:Algoritmos sobre grafos | ||
28 | Algoritmos sobre grafos | ||||
15 | 29 | Revisión Parcial 3 | Preparacion parcial 3 | ||
30 | Parcial 3 |
Guías