Programa semanal 1. Introducción a algoritmos: variables, condiciones y repeticiones; pseudocódigo 2. Matemáticas de algoritmos; lógica computacional 3. Modelos formales de computación: autómatas y máquinas 4. Análisis asintótico de algoritmos 5. Problemas de decisión y su complejidad computacional; problema de satisfacción 6. Problemas de optimización y su complejidad computacional; problema de la mochila 7. Recursión como herramienta en resolución de problemas computacionales 8. Representación y manipulación de listas: algoritmos de búsqueda y ordenamiento 9. Representación y manipulación de estructuras lineales dinámicas; tablas de dispersión 10. Representación y manipulación de árboles: búsqueda y recorrido 11. Representación y manipulación de grafos: caminos, expansión, cortes y flujos 12. Estratégias clásicas de diseño algorítmico; algoritmo euclidiano y distancia de edición 13. Manipulación de secuencias y textos: búsqueda de patrones y bioinformática 14. Algoritmos de aproximación; problema del viajante y cobertura con vértices 15. Algoritmos aleatorizados: probabilidad en computación 16. Algoritmos heurísticos: búsqueda local y algoritmos evolutivos Información general! http://it.ciidit.uanl.mx/~elisa/teaching/comp/alg/! elisa.schaeffer@uanl.edu.mx! asesoría gral los martes v2 & v3 (12:50-14:30) @ auditorio de edificio 4! estancia los jueves m5 (10:20-11:10) @ CIDET, 3er piso, oficina 23! vía telefónica en el mismo horario ext. 1637! vía chat en el mismo horario! elisa.schaeffer@gmail.com (preferido)! elisaschaeffer@hotmail.com (alternativo) Lista de correos! Para registrarse en la lista de correos, envíen un correo a elisa.schaeffer@uanl.edu.mx especificando el correo que quieren utilizar para recibir comunicaciones durante el curso durante esta primera semana del semestre! Al recibir un mensaje de respuesta el lunes, estarán correctamente inscritos a la lista de correos! Es necesario que chequen regularmente esa cuenta de correo para mantenerse informados Portafolio de evidencia! Elijan cada uno el servicio de blog de su preferencia siempre y cuando permita a los lectores dejar comentarios! Crean antes de la siguiente clase su blog para esta unidad o una sección dedicada a esta unidad en un blog general! Envien por correo electrónico a la lista de correos de los grupos de Elisa la URL de su blog el lunes al haber recibido el mensaje de bienvenida a la lista
Algoritmos simples Introducción a algoritmos Introducción a algoritmos: variables, condiciones y repeticiones; pseudocódigo Matemáticas de algoritmos; lógica computacional Modelos formales de computación: autómatas y máquinas Computación Variable 010000110010011. Procesamiento CPU Almacenaje RAM Variables Bit Byte Puntero
Asignaciones! Asignaciones de valores a variables! Aritmética entre constantes y variables! Condiciones lógicas: comparasiones! Repeticiones cíclicas b = 4; a = b; c = 3; b = 2; a = b = c; Impriman la tarjeta de referencia ANSI-C http://refcards.com/docs/silvermanj/ansi-c/ansi-c-refcard-a4.pdf Dirección de lectura Aritmética + sumar - restar * multiplicar / dividir % módulo Asignaciones y aritmética Código a b c a = 7; 7 sin def. sin def. b = a * 2; igual 14 sin def. c = a - 3; igual igual 4 c = c / 2; igual igual 2 a = b % c; 0 igual igual c = b / 3; igual igual 4
Tipos de datos Condiciones! Para cada variable, o se define el tipo de dato de manera explícita o se determina de manera ímplicita según reglas específicas al lenguaje de programación! Este determina la presición y el rango de valores posibles! El resultado de una operación aritmética depende de los tipos de datos involucrados! Al asignar el resultado a una variable, también su tipo puede provocar diferencias en el resultado en sí y el valor guardado en la variable Sí A X? No B Comparasiones Repeticiones < menor que > mayor que == igual a!= no igual a <= menor o igual a >= mayor o igual a Haz Y mientras X. Mientras X, haz Y.
Pseudocódigo Diagramas de flujo pot = 1 rep = 1 pot = 1 rep = 1 Acción mientras rep < 13 while rep <= 12 haz do imprime rep : pot pot = 2 * pot print rep : pot pot *= 2 Alternativa A Alternativa B rep = rep + 1 rep++ hecho done Fin Raptor Problema de práctica! Instalado en muchos de los laboratorios en la FIME! Disponible gratuitamente para su descarga! Funciona bien solamente en Windows Hay que generar la siguiente secuencia de números 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...! Para ver cómo se usa, chequen videos en YouTube http://www.youtube.com/watch?v=jnlmbpq2hho