UAM


1151064 Taller de Análisis y Diseño de Algoritmos
Trimestre 2021 Invierno


Profesor
: Dr. Francisco Javier Zaragoza Martínez.PEER
Inicio y fin del curso: lunes 29 de marzo de 2021 a viernes 11 de junio de 2021.
Grupo: CSI81 (martes de 14:30 a 17:30).
Asesorías: Por correo electrónico a través de cuentas institucionales.
Lugar: Correo electrónico (PEER).
Cupo: 20.

Contenido

Se cubrirá el contenido oficial del curso (el cual se detalla abajo). Es posible que el temario se cubra en un orden distinto al allí mencionado.
  1. Aplicaciones de ordenamiento y búsqueda.
  2. Algoritmos para problemas de cadenas.
  3. Algoritmos para problemas aritméticos.
  4. Algoritmos para problemas combinatorios.
  5. Algoritmos para problemas de gráficas.
  6. Algoritmos para problemas geométricos.

Evaluación

De la primera a la última semana habrá una evaluación semanal (valor máximo de 10 puntos cada una). Todas estas evaluaciones serán programas en C, C++ o cualquier otro lenguaje aceptado por omegaUp. Considerando un máximo de 100 puntos, se requieren al menos 60 puntos para obtener S, al menos 73 puntos para obtener B y al menos 87 puntos para obtener MB.

Consideraré cualquier copia o plagio de cualquier evaluación (ya sea programa o no) de forma automática como NA para todos los involucrados. Reportaré los casos que se presenten a las autoridades correspondientes. No copies. No pases la tarea. No plagies.

Recuerden que, de acuerdo al Reglamento del Alumnado de la UAM, es falta del alumnado en contra de la Institución el suplantar o permitir ser suplantado en la realización de actividades académicas (Artículo 9) y se impondrá desde amonestación escrita hasta suspensión por dos trimestres (Artículo 13).

Calendario

El calendario que muestro abajo es tentativo e irá apareciendo paulatinamente. Allí colocaré el material de estudio y de consulta.

Preparativos: 8 a 26 de marzo

Las instrucciones generales para el alumnado aparecieron en el sitio de contingencia de la UAM Azcapotzalco. Abajo aclaro algunas de ellas.

  1. Asegúrate de tener disponible una computadora con internet en la que puedas editar, compilar y ejecutar programas en C, C++ o cualquier otro lenguaje aceptado por omegaUp. Si tienes alguna distribución de Linux es probable que ya tengas gcc y algún editor de texto instalado. Otra posibilidad es instalar Code::Blocks. En Windows instala la versión 17.12 para 32 bits o la 20.03 para 32 o 64 bits o bien instala Dev-C++. Para Mac OS X la versión más reciente de Code::Blocks es la 13.12 o instala Xcode. En Android instala Coding C y en iOS instala Mobile C. Como último recurso, existen compiladores de C en línea (repl.it, tio.run y onlinegdb).
  2. Usaremos exclusivamente el correo institucional. Si no tienes el tuyo, actívalo con la Coordinación de Servicios de Cómputo (CSC).
  3. Usaremos la plataforma omegaUp de forma extensiva. Crea una cuenta usando tu correo institucional, tu usuario deberá ser tu nombre y los cuatro últimos dígitos de tu matrícula (ejemplo: FranciscoZaragoza1234). En tu perfil debes anotar tu nombre completo y como escuela UAM Azcapotzalco. Mira el tutorial de omegaUp.
  4. Envía un correo a mi ayudante Octavio Ramírez (octarr@azc.uam.mx) desde tu correo institucional con esta información: tu nombre completo, tu número de matrícula, tu carrera y tu usuario de omegaUp. Una vez que le envíes este correo, él te registrará en el curso TADA 2021 Invierno de omegaUp.

Si tienes alguna duda acerca de estos preparativos, envía un correo a mi ayudante desde tu correo institucional. No lo dejes para el último momento. Las reglas de cortesía para cuando usemos Google Meet son: Aceptar la invitación. Ingresar desde su cuenta institucional. No grabar la sesión. Usar el chat o el micrófono para participar o hacer preguntas. El resto del tiempo mantener apagados el micrófono y la cámara. Leer el material de estudio antes de la clase.

Semana 1: 29 de marzo a 2 de abril

Tarea 1 del 30 de marzo a las 14:30 al 3 de abril a las 14:30. Presentación del curso el 30 de marzo a las 15:00.

Semana 2: 5 de abril a 9 de abril

Tarea 2 del 6 de abril a las 14:30 al 10 de abril a las 14:30.

Semana 3: 12 de abril a 16 de abril

Tarea 3 del 13 de abril a las 14:30 al 17 de abril a las 14:30.

Semana 4: 19 de abril a 23 de abril

Tarea 4 del 20 de abril a las 14:30 al 24 de abril a las 14:30.

Semana 5: 26 de abril a 30 de abril

Tarea 5 del 27 de abril a las 14:30 al 1 de mayo a las 14:30.

Semana 6: 3 de mayo a 7 de mayo

Tarea 6 del 4 de mayo a las 14:30 al 8 de mayo a las 14:30.

Semana 7: 10 de mayo a 14 de mayo

Tarea 7 del 11 de mayo a las 14:30 al 15 de mayo a las 14:30.

Semana 8: 17 de mayo a 21 de mayo

Tarea 8 del 18 de mayo a las 14:30 al 22 de mayo a las 14:30.

Semana 9: 24 de mayo a 28 de mayo

Tarea 9 del 25 de mayo a las 14:30 al 29 de mayo a las 14:30.

Semana 10: 31 de mayo a 4 de junio

Tarea 10 del 1 de junio a las 14:30 al 5 de junio a las 14:30.

Semana 11: 7 de junio a 11 de junio

Tarea 11 del 8 de junio a las 14:30 al 11 de junio a las 14:30.

Bibliografía

  1. Castro Campos. Algoritmos y estructuras de datos. UAM Azcapotzalco.
  2. Cormen, Leiserson, Rivest y Stein. Introduction to Algorithms. MIT Press.
  3. Knuth. The Art of Computer Programming. Addison-Wesley.
  4. Llana, et al. Ejercicios de programación creativos y recreativos en C++. Prentice Hall.
  5. Morin. Open Data Structures in C++. Athabasca University Press.
  6. Parberry y Gasarch. Problems on Algorithms. Prentice Hall.
  7. Sedgewick y Wayne. Algorithms. Pearson.
  8. Skiena. The Algorithm Design Manual. Springer.
  9. Skiena y Revilla. Programming Challenges. Springer.