Вы находитесь на странице: 1из 15

Anlisis y diseo de

algoritmos Clase 1
Contenido

Introduccin
Contenido del curso
Metodologa de trabajo
Evaluacin y cronograma del semestre
Bibliografa

Material elaborado por: Julin Moreno


Facultad de Minas, Departamento de Ciencias de la Computacin y la Decisin

Objetivo del curso (oficial)


Cualquiera con una experiencia mnima en algoritmos y
programacin sabe que para un mismo problema pueden
existir innumerables algoritmos de solucin. Tales
soluciones pueden variar en diversos aspectos, siendo de
particular inters la eficiencia en trminos de su costo
computacional.
En el contexto de dicha eficiencia se puede hablar de
algoritmos "mejores" que otros, siendo el objetivo principal
de esta asignatura brindarle elementos al estudiante para
analizar y disear algoritmos eficientes.

Objetivos del curso (extra-oficial)

Ofertar una asignatura dentro del componente disciplinar de


Ingeniera de Sistemas, y del componente electivo de los
dems programas, en la lnea de Ciencias de la Computacin
Brindar un espacio para que los estudiantes gomosos de la
programacin mejoren sus habilidades
Preparar a los estudiantes para participar en el circuito
colombiano de maratones de programacin y llevar a la Sede
Medelln a los primeros lugares
Mejorar las probabilidades de vinculacin laboral en empresas
de tecnologa importantes, o por qu no, de creacin de
nuevas empresas
Why study algorithms? [extrado del curso - algorithms design and analysis part 1, Stanford]

Pre-requisitos del curso


Oficiales
Estructura de datos (3007741)
Recursividad
Pilas y colas
rboles binarios
Montculos binarios
Extraoficiales
Conocimientos de matemticas y estadstica
Excelentes bases de programacin
Buen manejo de al menos un lenguaje imperativo
objetual (Java o C++)

Metodologa
Clases magistrales, 2 veces por semana.

No hay prctica y este no es un curso de


programacin.
Evaluacin
o Talleres prcticos, individuales y continuos con 4
fechas de corte, de 5% cada uno
Calificacin = 5*(ejercicios realizados/ejercicios propuestos)

o 4 parciales de 20% cada uno

Dedicacin horaria
Un crdito es la unidad que mide el tiempo que el estudiante
requiere para cumplir a cabalidad los objetivos de formacin de cada
asignatura y equivale a 48 horas de trabajo del estudiante. ste
incluir las actividades presenciales que se desarrollan en las aulas
con el profesor, las actividades con orientacin docente realizadas
fuera de las aulas y las actividades autnomas llevadas a cabo por el
estudiante, adems de prcticas, preparacin de exmenes y todas
aquellas que sean necesarias para alcanzar las metas de
aprendizaje.
Art. 6, Acuerdo CSU 033 de 2007
48 x 3 = 144 horas totales de dedicacin al curso
15 x 4 = 60 horas presenciales
144 60 = 84 horas de trabajo personal como mnimo

Temas gruesos en el mundo de los algoritmos


Introduction to
algorithms, Cormen
et al.

Algorithms,
Dasgupta et al.

Algorithm design,
Kleinberg and
Tardos

Semana

Fecha inicial

Fecha final

01-febrero

06-febrero

08-febrero

13-febrero

15-febrero

20-febrero

22-febrero

27-febrero

29-febrero

05-marzo

07-marzo

12-marzo

14-marzo

19-marzo

21-marzo

26-marzo

28-marzo

02-abril

10

04-abril

09-abril

11

11-abril

16-abril

12

18-abril

23-abril

13

25-abril

30-abril

14

02-mayo

07-mayo

Sesin
1
2
3
4
5
6
7
7
7
8
9
10
11
12
12
12
12
12
13
14
15
16
17
17
17
18
19
20

15

09-mayo

14-mayo

16

16-mayo

21-mayo

17

23-mayo

28-mayo

18

30-mayo

04-junio

21
22
#REF!
#REF!
23
24

Contenido
Introduccin al curso
Orden de complejidad de algoritmos, Notacin "Big Oh", Tips & Tricks
para mejorar la eficiencia de cdigo
Bsqueda exhaustiva, Problema suma 15, Coloreado de mapas
TSP, Problema de las 8 reinas, Reduccin del espacio de bsqueda
Algoritmos vorces, Planificacin de tareas, Seleccin de actividades
Programacion de actividades unitarias, Cambio de monedas, Cacheo
offline
Cdigo de Huffman
Taller 1
Quiz 1
MergeSort, Divide y vencers (divide & conquer), Mtodo maestro
QuickSort
Cantidad de inversiones de un arreglo, Pares ms cercanos
Mximo sub-arreglo, Multiplicacin de Karatusuba, Multiplicacin de
matrices de Strassen
Estadstico de orden k, Potenciacin recursiva, Fibonacci O(log(n))
Semana Santa
Semana Santa
Taller 2
Quiz 2
Fibonacci en O(n), Conjuntos independientes en grafos lineales,
Programacin dinmica
Problema de corte de cable, Problema Knapsack
Alineacion de secuencias, Mayor subsecuencia comn
Multiplicacion en cadena de matrices
Arboles binarios de busqueda optimos
Taller 3
Quiz 3
Grafos, Bsqueda: BFS vs. DFS, Cantidad mnima de saltos,
Ordenamiento topolgico
Componentes fuertemente conectados en grafos dirigidos,
Componentes conectados en grafos no dirigidos
Caminos ms cortos desde un nico punto, Algoritmo de Dijkstra,
Algoritmo de Bellman-Ford
rboles de mnima expansion, Algoritmo de Prim
Algoritmo de FloydWarshall
Taller 4
Quiz 4
Comodn
Comodn
Reporte de notas

Estadsticas
Cancelaciones o
abandonos
(~45%)

Aprobaciones
(~52,5%)
Reprobaciones
(~2.5%)

Bibliografa
Cursos en lnea:
Standford - Algorithms design and analysis part 1 and 2
https://www.coursera.org
MIT Introduction to algorithms
http://ocw.mit.edu/courses
Libros (todos fcilmente accesibles en internet):
Introduction to algorithms
Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein,
Clifford. MIT Press, 2009
Algorithms
Dasgupta, S.; Papadimitriou, C. H.; Vazirani, U. V. McGrawHill, 2006
Algorithm design
Kleinberg, J; Tardos, E. Pearson, 2005
Art of programming Contest
Shamsul Arefin, Ahmed. ACM, 2006
Mathematics for Computer Science
Lehman, Eric; Leighton, F. Thomson; Meyer, Albert R. MIT
Press, 2004

Consideraciones importantes
La motivacin para tomar este curso debera ser una sola: aprender
Relacin de confianza profesor-estudiante
El profesor no se las sabe todas
Casi nada del contenido del curso es original
Las ayudas del curso son para aprovecharlas: monitor, foro,
asesoras, etc.

Haremos uso de conceptos, teoremas, y mtodos probados, ms no


nos vamos a concentrar necesariamente en su demostracin
Este curso es un punto de partida, el perfeccionamiento de las
habilidades de programacin depende de cada uno. De hecho, an
quedaran muchos temas por cubrir

Pgina del curso


https://ticademia.guiame.org/

Horarios de asesora
Julin Moreno: Martes 10am -12m
Oficina M8A-311
jmoreno1@unal.edu.co

Programacin competitiva
Uva Online Judge

Codeforces

TopCoder

HackerRank

CCPL

http://uva.onlinejudge.org/

http://codeforces.com/

http://www.topcoder.com/

https://www.hackerrank.com/

http://www.programmingleague.org/

Tareas
1. Leer el captulo 1.1 de Introduction to algorithms

Вам также может понравиться