Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Algoritmos y ED III
Horario de clases
Mircoles de 17:30 a 19:45 (2,25 HR) Viernes de 14:15 a 17:15 (3HR)
POR FAVOR LLEGAR A HORA A LA CLASE. Los alumnos sin DEF deben asistir al menos el 75% de las clases. Consultas extra-clase
Sin problemas, va correo electrnico Coordinando una visita a la oficina del profesor. Local: Laboratorio de Computacin Cientfica y Aplicada de la FPUNA. Bloque 3 del exCET (bloque de la FPUNA), en la entrada del campus sobre la Avda. Mcal. Lopez. Telfono: 021-573643
2
Donde ubicarme
(Usualmente de 8:00 a 18:00 hs, aunque mejor confirmar por mail )
Algoritmos y ED III
Qu haremos en el curso?
Estudiar algoritmos conocidos y de gran influencia Estructura de datos (ED) avanzadas. Examinar mtodos para analizar el rendimiento (eficiencia) de algoritmos Aplicar criterios para seleccin de algoritmos y ED segn la naturaleza del problema a resolver. Construir cdigo claro, depurable y documentado (aunque no sea un curso de programacin ni de ingeniera de software)
4
Algoritmos y ED III
Cul es el contenido del curso? 1. Java (como herramienta auxiliar y transversal ) 2. Anlisis de algoritmos (unos de los temas ms importantes y de carcter transversal) 3. Ordenacin y bsqueda
rboles binarios (no balanceados (BST) y balanceados (AVL, Rojinegros, etc) ) Tablas de dispersin Ordenacin interna (##Sort basados o no en comparacin) Ordenacin externa (ej: B-Arboles)
4. 5. 6. 7.
8.
Bsqueda de patrones en cadenas ( KMP, Boyer-Moore, Rabin-Karp) Grafos (ED y Algoritmos ms relevantes: barrido, bsqueda, cubrimiento, etc) Tcnicas de diseo de algoritmos : Divide y vencers, Algoritmos greedy, Prog. Dinmica, Backtracking. Algoritmos aleatorizados o probabilsticos ( anlisis probabilstico, ED con base aleatoria) Lmites a la computacin: tratabilidad de problemas, clasificacin de problemas ( problemas P, NP, NP-Completos, NP-Hard ), demostraciones NP y NP-Completo
5
Qu veremos?
Estudiaremos fundamentalmente Anlisis de Algoritmos (es el estudio terico del rendimiento de programas y el uso de recursos) Otros factores, son tambin muy importantes:
Modularidad Correctitud Mantenibilidad Seguridad - Funcionalidad - Robustez - Usabilidad - Simplicidad - Extensibilidad - Escalabilidad - Confiabilidad
Algoritmos y ED III
Cules son las reglas del curso? (1)
El curso ser terico/prctico. Mucha programacin Se tendrn tareas (casi semanales) El puntaje parcial (100%) ser dividido de la siguiente forma:
60% Examen (en el 2do parcial ser 65%) 35% 05% Laboratorio (no hay en el 2do parcial)
E Primer Parcial
E Segundo Parcial
Si no rinde el primer o segundo parcial, el puntaje de tareas y laboratorio correspondiente a ese parcial se suman al tercer parcial. Si rinde ambos exmenes y no consigui derecho, el tercer examen parcial es 100%. El TPF se entregar luego del 1er. parcial y se entregar luego del 2do. Parcial. Su peso es de 30% del PP (promedio ponderado)
PP = PdP(Promedio de parciales) = 70% + TP = 30% Recordar que el PdP es el que se utiliza para el derecho a examen final Recordar que : PF (Puntaje final) = PP * 0.4 + EF (Examen Final) * 0.6
7
Algoritmos y ED III
Cules son las reglas del curso? (2)
El nro. de tareas ser de aprox. 10 distribuidas en todo el curso. Muchas de ellas son de programacin (esencialmente en Java), aunque tambin habr mucha teora. Las tareas se entregan por grupo de 2 personas (excepcionalmente 1 persona) va EDUCA (www.educa.una.py/politecnica). Favor colocar una foto actual en su perfil de EDUCA. Enviar el nombre de los integrantes del grupo va el foro FAQs del curso en EDUCA (hasta el viernes 3/ago). La clave de acceso es bca2013_2S sin las comillas. Los documentos, ejercitarios, presentaciones, etc, se mantienen en el sitio de EDUCA. Los exmenes sern SIN material.
Algoritmos y ED III
Recomendaciones
Dedicarle al menos 5 horas a la semana para estudiar, leer y practicar. Leer por anticipado, para ello tiene a mano el plan semestral con las referencias de lectura. Use el Plan Semestral. Participar y consultar en clase. Usar EDUCA para discutir temas que no quedaron claros o relacionados a los temas del curso.
El profesor podra requerir algn tiempo en dar la respuesta, en caso de que no tenga la respuesta a mano.
9
16/OCT y 18/OCT
23/OCT 25/OCT 28/OCT 9/NOV
10 (Tec. Diseo)
Tareas: 7,8,9,10
11/NOV 15/NOV
16/NOV 30/NOV 02/DIC 17/DIC
10
Algoritmos y ED III
Bibliografa: Estructura de Datos en Java, Mark Allen Weiss. 1998.[WEIS2000] Data structures and algorithm analysis. Edition 3.2 Java Edition. Clifford A. Shaffer. 2013. [Shaffer2013] (disponible en lnea) http://people.cs.vt.edu/~shaffer/Book/JAVA3elatest.pdf Introduction to Algorithm. Cormen, Leiserson, Rivest & Stein. 2nd Edition. 2001. [CLRS2001] o 3rd. Edition. 2009. Data Structures and Algorithm Analysis in Java. Mark. A. Weiss. 3rd. Edition. Pearson. 2012. The introduction to the design and analysis of algorithms. 2nd Edition. Anany Levitin. 2007. The algorithm Design Manual. Steven Skiena. 2nd edition. 2008. Springer Algorithm Design. Jon Kleinberg & Eva Tardos. 1th Edition. 2006. Pearson Education. Estructura de datos y algoritmos. Aho, HopCroft & Ullman. Addison-Wesley. 1988 Algoritmos y estructura de datos. Niklaus Wirth. Prentice-Hall. 1987 Estructura de datos y algoritmos. Mark Allen Weiss. Addison-Wesley. 1995 Artculos y documentos adicionales entregados por el profesor (ver Referencias en EDUCA).
11
Algoritmos y ED III
Trabajo prctico final
Contenido
Problema real + al menos 4 tcnicas que lo resuelven.
Temas:
Sern definidos por el profesor y entregados a cada grupo en forma aleatoria.
12
15
Algoritmo - Origen: del nombre del matemtico y astrnomo rabeAbu Ja'far Mohammed ibn Musa alKhowarizmi (825) (Padre de Ja'far, Mohammed, hijo de Moiss, natural de Khowarizm). Escribi el clebre libro Kitab al jabr w'al-muqabala (Reglas de restauracin y reduccin -- > algebra)
Solucin de problemas
Modelo matemtico
Estructura de Datos
Algoritmo informal
Algoritmo completo
Programa
17
19
20
TAREA #1 (INDIVIDUAL)
Resumir en no ms de 5 (cinco) pginas el primer captulo de [Shaffer2013]. Presentarlo a mano, NO impreso. Resolver el problema planteado HOY en lenguaje C, generar los valores aleatorios y testar con los parmetros indicados. Incluir cdigo y resultado de las pruebas en una hoja con su nombre (Resultado = tiempo en ms)
Preguntas/Comentarios?
22