Algoritmos y Computacion Numerica I *********************************** Objetivo general ................ (1) Que los estudiantes aprendan lo basico de un lenguaje contemporaneo de alto nivel y sobre la marcha un paquete como Mathematica/Matlab. (2) Que los estudiantes adquieran experiencia en el llevar a la practica de varios conceptos teoricos que vieron en calculo/algebra y que descubran problemas NUEVAS (numericas) implicadas. Asi para integrar mejor la teoria y las aplicaciones de los cursos de primer semestre como motivacion adicional y al mismo tiempo evitar que las materias de computacion tengan su propia vida/mundo, desconectadas de las demas. Contenido ......... Obligatorio: (0) Nociones de una cultura general de computo (redes/HTML/sistemas operativos/...) (1) Lenguaje de programacion (a) Estucturas de datos I * datos primitivos * arreglos/records * strings (b) Input/Output (c) Estructuras de control * estructuras iterativas/condicionales * funciones y mecanismo parametros Funciones recursivas (d) Estrategias y problemas especificos para el diseno de algoritmos: ("divide y venceras" y co.) (2) Mathematica/Matlab o algo similar (3) Computacion numerica (a) Graficacion de funciones, discretizacion (b) Eliminacion Gaussiana, un metodo de decomposicion y un metodo de iteracion (c) Un metodo para encontrar raices (por ejemplo Newton) (d) Integracion - diferenciacion: ejemplo regla trapezoide, cuadratura de Gauss, (por sincronizarse con Calculo I) (e) Un caso de estudio/proyecto Optativo: Matematicas discretas: elementos de maquinas finitas y lenguajes formales Algoritmos y Computacion Numerica II ************************************* (1) Matematicas discretas: Grafos/arboles (a) diferentes clases de grafos, uso en modelacion (b) trayectorias, vecindad, conectividad, ciclos (c) isomorfismos, "spanning trees", subgrafos Calculo de complejidad de un algoritmo (ecuaciones recursivas, O(), o(),...) (2) Lenguaje de programacion II (a) Estructuras dinamicas (colas, arboles, etc.) (3) Estrategias y problemas especificos para el diseno de algoritmos II: programacion dinamica ejemplos de busqueda y ordenamiento (4) Computacion numerica (a) proyecciones ortogonales/minimos cuadrados/aproximacion nolineal (b) interpolacion (b) valores propios (c) Optimizacion en n dimensiones (gradiente, gradiente conjugado, metodos estocasticos, ...) (d) Soluciones de ecuaciones diferenciales Estructuras de datos, algoritmos y programacion orientada a objetos, G. Heileman, McGraw Hill, 1998 Algorithms and Programming: problems and solving, Shen, Alexander, Birkhauser, 1997. Hughes, J.K., Mitchom, G.C. y Mitchom, J.I. "A Structured Approach to Programming". Prentice Hall, 1985 Introduction to Algorithms, Thomas Cormen, Charles Leiserson, Ronald Rivest, MIT Press, 1986. Wirth, N. "Algorithms + Data Structures = Programs". Prentice Hall, 1976