2014-2
Información general
Profesor Camilo Rocha (camilo.rocha *at* escuelaing.edu.co)
- Grupo 1: Lunes (D-105) 16:00 - 17:30, Martes (C1-204) 16:00 - 17:30, Martes (LAB) 17:30 - 19:00
- Grupo 2: Lunes (D-105) 16:00 - 17:30, Miércoles (C1-204) 10:00 - 11:30, Miércoles (LAB) 11:30 - 13:00
Horas de oficina
- Lunes 17:30 - 19:00
- Martes 10:30 - 12:00
- Cita acordada por correo electrónico
Horario de atención de monitores
- Luis Felipe Díaz Chica (luis.diaz-c *at* mail.escuelaing.edu.co)
- Lunes 13:00 - 14:30 (Laboratorio Informática / Bloque B0)
- Viernes 10:00 - 11:30 (Laboratorio Informática / Bloque B0)
Material
Ambientes virtuales
- Insertion Sort (insertionsort.py)
- Merge Sort (mergesort.py)
Conferencias y ejercicios resueltos
- Semana 1: Introducción al análisis y diseño de algoritmos
- Semana 2: Análisis asintótico de funciones; el Teorema Maestro
- Notación O (5 videos)
- El Teorema Maestro (3 videos)
- Semana 3: Programación dinámica
- Introducción (ver desde 13:43)
- Knapsack
- Rod cutting
- Longest palindromic subsequence
- Semana 4: Idem
- Semana 5: Repaso y parcial tercio 1
- Semana 6: Estructuras de datos
- introducción
- montones binarios
- introducción
- operaciones
- aplicación: colas de prioridad
- aplicación: heapsort
- Semana 7: Listas
- Semana 8: Conjuntos, multiconjuntos y diccionarios (tablas de hashing)
- Semana 9: Conjuntos disyuntos; árboles, árboles binarios de búsqueda y árboles de búsqueda balanceados
- conjuntos disyuntos
- árboles y recorridos
- árboles binarios de búsqueda (opcional)
- árboles balanceados (opcional)
- Semana 10: Repaso y parcial tercio 2
- Semana 11: Grafos
- Semana 12: Búsqueda en grafos
- Semana 13: Órden topológico y reintento
- Semana 14: Árboles mínimos de cubrimiento (MST)
- Semana 15: Caminos más cortos (SSSP/ASSP)
- Semana 16: Flujo en redes
Notas
Notas de clase
- How do you add?: formulación de una solucion recurrente
- 2 Partition: formulación de una solución recurrente y diseño de una programación dinámica usando tabulación; incluye reducción del espacio de la memoria adicional
Proyecto
The Starflyer Agents: enunciado | arena | casos de prueba
- Entrega 0: lunes 20 de octubre en clase
- documento de diseño de las estructuras de datos utilizadas para representar términos o 'hashs' (máximo dos páginas)
- implementación del parser de términos (código Python impreso)
- recuerden que el proyecto es individual
- una solución
- requiere Python 3.4.1 (o superior)
- Implementación y validación: miércoles 19 de noviembre
- Sustentación: viernes 28 de noviembre
Tareas
- Semanas 1 y 2 (para entregar 08/15 y 08/17)
- Semanas 3 y 4 (para entregar 08/29 y 08/31)
- Semanas 6 y 7 (para entregar 09/19 y 09/21)
- Semanas 8 y 9 (para entregar 10/03 y 10/05)
- Semanas 11 y 12 (para entregar 10/31 y 11/02)
- Semanas 13 a 16 (para entregar 11/30)
Otros recursos