Está en la página 1de 7

Análisis de Algoritmos y Estructuras de

Datos

1. Características generales
Nombre Análisis de Algoritmos y Estructuras de Datos

Sigla CI-0116

Créditos 4

Horas lectivas 5

Requisitos CI-0113 Programación II y CI-0111 Estructuras Discretas

Correquisitos Ninguno

Clasificación Curso de propio

Ciclo de carrera II ciclo, 2.o año

Docente Arturo Camacho Lozano

Datos de contacto arturo.camacho@ucr.ac.cr

Grupo 1

Ciclo y año II ciclo de 2022

Horario y lugar de clases Lunes de 10:00 a 11:50 y jueves de 9:00 a 11:50.

Horario y lugar de consulta Martes de 9:00 a 11:30. Sacar cita con al menos una hora de
antelación por medio de la página https://calendly.com/arturo-camacho. Enviar
al docente un enlace de Zoom por Telegram al inicio de la cita.

Asistentes Por definir.

Modalidad Bajo virtual.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 1 de 7


2. Descripción
Existen diversas formas de solucionar computacionalmente un problema, lo que conduce
al dilema de escoger la más adecuada. Diferentes aspectos se pueden evaluar para hacer
tal escogencia. En este curso se aprende a calcular la complejidad espacio-temporal de
una solución, con el fin de resolver el problema eficientemente. También se aprende sobre
modelos matemáticos, tipos de datos abstractos, estructuras de datos y algoritmos clásicos,
haciendo especial énfasis en la complejidad espacio-temporal de sus implementaciones.

3. Objetivos
Objetivo general
El objetivo general del curso es que el estudiantado aprenda sobre familias de algoritmos,
tipos de datos abstractos y estructuras de datos asociados a modelos matemáticos, y analice
su complejidad espacio-temporal para compararlos en términos de su eficiencia.

Objetivos específicos
En este curso el estudiantado desarrolla habilidades para:

1. Usar modelos matemáticos, tipos de datos abstractos, estructuras de datos y algorit-


mos clásicos para resolver problemas.

2. Demostrar la correctitud de un algoritmo iterativo, aplicando las técnicas correspon-


dientes.

3. Analizar el comportamiento asintótico del tiempo de ejecución y del espacio requerido


por un algoritmo o una estructura de datos para determinar su eficiencia.

4. Diseñar e implementar estructuras de datos y algoritmos eficientes, para hacer un


uso apropiado de los recursos computacionales.

5. Diseñar e implementar algoritmos eficientes para resolver problemas de optimización.

4. Contenidos
El cuadro 1 muestra los ejes temáticos del curso y los objetivos a los que contribuyen.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 2 de 7


Cuadro 1: Ejes temáticos del curso y objetivos a los que contribuyen.
Objetivos Eje temático Desglose
1, 4 Modelos matemáticos, Definiciones, propiedades y diferencias entre
tipos de datos abstrac- ellos.
tos y estructuras de
datos.
2 Demostración de la co- Invariante de un ciclo. Pasos de inicialización,
rrectitud de algoritmos mantenimiento y terminación.
iterativos.
3 Complejidad espacio- Cálculo del orden de duración de algoritmos re-
temporal de un algorit- cursivos, iterativos y con llamados a métodos o
mo. funciones, en el peor caso, caso promedio y mejor
caso. Resolución de relaciones de recurrencia.
1, 3, 4 Modelos y tipos de datos Listas, pilas, colas, árboles, conjuntos, diccio-
abstractos narios, colas de prioridad, relaciones y gra-
fos. Operadores básicos, implementaciones, al-
goritmos asociados, aplicaciones, complejidad
espacio-temporal de los algoritmos y sus imple-
mentaciones.
1, 3, 4 Estructuras de datos Arreglos, listas enlazadas, árboles parcialmente
ordenados, árboles de búsqueda binaria, árboles
balanceados, tablas de dispersión. Estructuras de
datos para la implementación de árboles, grafos
y relaciones. Complejidad espacio-temporal.
1, 3, 4 Algoritmos de ordena- Ordenamiento de burbuja, ordenamiento por se-
miento lección, inserción, mezcla, montículos, residuos y
ordenamiento rápido (quicksort), y su compleji-
dad espacio-temporal.
1, 3, 5 Técnicas de resolución Divide y vencerás, búsqueda exhaustiva, progra-
de problemas mación dinámica, algoritmos ávidos, y su com-
plejidad temporal.
1, 3, 4 Algoritmos para grafos Recorridos en anchura y en profundidad, árbo-
les recubridores mínimos, rutas más cortas, y su
complejidad espacio-temporal.

5. Metodología
El curso se imparte en modalidad presencial. Se usa la plataforma institucional Mediación
Virtual para colocar los documentos del curso. Otras comunicaciones se realizan por medio
de Telegram.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 3 de 7


Se usa la metodología de clase invertida: en vez de usar la clase para instrucción, se
usa para el desarrollo de actividades posinstrucción. La instrucción, en cambio, se realiza
mediante lecciones pregrabadas disponibles en línea (en el canal acamachoestructuras de
YouTube). Se evacúan las dudas mediante consultas y sesiones de preguntas en clase.

6. Evaluación
Los elementos de evaluación y su ponderación son los siguientes:
Exámenes cortos (15) 15 %
Exámenes parciales (3) 45 %
Tareas (2) 40 %
El plagio y la deshonestidad no son tolerados en ninguna de las evaluaciones del curso y
son castigados con la anulación de la evaluación, aún cuando el plagio se dé en solo una
parte de ella. (Por ejemplo, si hay plagio en una de las parte de una tarea, los estudiantes
involucrados reciben un cero como nota en toda la tarea). A continuación se detalla cada
uno de los elementos de evaluación.

Exámenes cortos. El objetivo de los exámenes cortos es promover que el estudiante


esté al día con la materia y familiarizado con el tipo de problemas que se resuelven en
los exámenes parciales. En general, se realizan todas las clases, excepto cuando alguna
razón lo impida. Se hacen al menos quince, pero se consideran solo los quince mejores. Los
exámenes cortos no realizados se reponen con el promedio de los exámenes parciales, el cual
reemplaza también la calificación de los exámenes cortos que estén por debajo de él. Los
exámenes cortos se pueden realizar con lápiz o bolígrafo, y en ambos casos se tiene derecho
a reclamo dentro de los cinco días hábiles siguientes a la devolución. (Los exámenes son
escaneados antes de su devolución, lo que permite identificar alteraciones). No se permite
el uso de dispositivos electrónicos, excepto relojes de pulsera.

Exámenes parciales. El objetivo de los exámenes parciales es evaluar la capacidad del


estudiante de dominar gran cantidad de conocimiento y aplicarlo a la resolución de pro-
blemas. Los exámenes se pueden realizar con lápiz o bolígrafo, y en ambos casos se tiene
derecho a reclamo (ver apartado anterior). No se permite el uso de dispositivos electrónicos,
excepto relojes de pulsera.

Tareas. El objetivo de las tareas es que el estudiantado ponga en práctica el conocimiento


adquirido, especialmente en cuanto a la implementación, evaluación y comparación de la
eficiencia de los algoritmos y las estructuras de datos. Las tareas son largas, por lo que se
solicitan dos entregas. (El propósito es que el estudiante equilibre su trabajo y no deje todo
para el final). En general, no se aceptan tareas después de tres (3) días de la fecha límite, y
la calificación recibida por tareas entregadas tardíamente no será más alta que la calificación
recibida por cualquiera de los estudiantes que haya entregado la tarea a tiempo, esto por
cuanto los estudiantes que entregan la tarea a tiempo podrían reclamar, con mucha razón,

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 4 de 7


que de haber tenido más tiempo podrían haber realizado un mejor trabajo y recibido una
mejor calificación.

7. Cronograma
El cuadro 2 muestra el cronograma del curso.

Cuadro 2: Cronograma del curso.


Sem. Lunes Jueves
1 15 ago. Feriado. 18 ago. Lectura de Carta al estudian-
te. Motivación del curso (cap. 1). Or-
denamiento por selección. (Videos I.1
a I.5).
2 22 ago. Pruebas de correctitud de al- 25 ago. Ordenamiento por inserción
goritmos. (sec. 2.1). (Videos I.6 a I.8). (secs. 2.1-2).
3 29 ago. Análisis asintótico de algorit- 1 set. Divide y vencerás (sec. 2.3). Or-
mos (cap. 3). (Videos I.9 a I.23). denamiento por mezcla (secs. 2.3-4).
(Videos I.24 a I.28).
4 5 set. Recurrencias (cap. 4). Solu- 8 set. Solución de recurrencias por el
ción de recurrencias por sustitución método maestro (cap. 4). (Videos I.32
(cap. 4). (Videos I.29 a I.31). a I.40).
5 12 set. Montículos (cap. 6). Ordena- 15 set. Feriado.
miento usando montículos (cap. 6).
Colas de prioridad (cap. 6). (Videos
I.41 a I.54).
6 19 set. Ordenamiento rápido (cap. 7). 22 set. Ordenamiento por conteo
Cota inferior de ordenamientos por (sec. 8.2) y por residuos (sec. 8.3). (Vi-
comparación (sec. 8.1). (Videos I.55 a deos I.71 a I.88).
I.70). Tarea 1: I parte.

7 26 set. Pilas y colas (cap. 10). Listas 29 set. Árboles de búsqueda binarios
enlazadas y árboles (cap. 10). (Videos (cap. 12). (Videos II.33 a II.48).
II.13 a II.32).
8 3 oct. Repaso. 6 oct. I examen parcial (hasta or-
denamiento por residuos, inclusive; vi-
deos de lista I).
9 10 oct. Árboles rojinegros: I parte 13 oct. Árboles rojinegros: II parte
(cap. 13). (Videos II.49 a II.58). Ta- (cap. 13). (Videos II.59 a II.69).
rea 1: II parte.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 5 de 7


Cuadro 2: Cronograma del curso (continuación).
Sem. Lunes Jueves

10 17 oct. Tablas de dispersión (cap. 11). 20 oct. Estructuras de datos para


(Videos II.83 a II.94). conjuntos disjuntos (cap. 21). (Videos
IV.4 a IV.18).
11 24 oct. Representación de grafos 27 oct. Recorrido de grafos en pro-
(sec. 22.1). Recorrido de grafos en fundidad (sec. 22.3). (Videos IV.38 a
anchura (sec. 22.2). (Videos IV.19 a IV.42). Tarea 2: I parte.
IV.37).
12 31 oct. Repaso. 3 nov. II examen parcial (hasta ta-
blas de dispersión, inclusive; videos de
lista II).
13 7 nov. Ordenamiento topológico 10 nov. Búsqueda exhaustiva y al-
(sec. 22.4). Componentes fuertemente goritmos ávidos. Árboles recubrido-
conexos (sec. 22.5). (Videos IV.43 a res mínimos (cap. 23). (Videos IV.49
IV.48). a IV.54).
14 14 nov. Rutas más cortas desde una 17 nov. Programación dinámica. Ru-
fuente (sec. 24.0). Algoritmo de Dijks- tas más cortas entre todo par de vér-
tra (sec. 24.3). (Videos IV.55 a IV.61). tices (sec. 25.0). Algoritmo de Floyd
Tarea 2: II parte. y Warshall (sec 25.2). (Videos IV.61 a
IV.70)
15 21 nov. Repaso. 24 nov. III examen parcial
16 28 nov. 1 dic.
ee. ff. 5 dic. 8 dic.
12 dic. Examen de ampliación. 15 dic.

8. Bibliografía
Cormen, T. H., Leiserson, C. E., Rivest, R. L. y Stein, C. Introduction to Algo-
rithms, III ed. MIT Press, 2009.

Aho, A. V., Ullman, J. D. y Hopcroft, J. E. Estructuras de Datos y Algoritmos.


Addison-Wesley Iberoamericana, 1988.

9. Recursos estudiantiles
Para información sobre recursos estudiantiles disponibles en la UCR, incluyendo el Siste-
ma de bibliotecas y la normativa universitaria vigente, visitar la página https://www.ecci

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 6 de 7


.ucr.ac.cr/vida-estudiantil/servicios-institucionales-para-estudiantes/guia-de
-recursos-estudiantiles-de-la-ucr.

Teléfono: 2511-8000 Fax: 2511-3663 http://www.ecci.ucr.ac.cr ecci@ecci.ucr.ac.cr 7 de 7

También podría gustarte