Trimestres anteriores‎ > ‎2017-O‎ > ‎

1151042 - Algoritmos y Estructuras de Datos

Instructor: Rodrigo Alexander Castro Campos.
Trimestre: 2017-O.

Grupo: CSI02.
Horario: Martes y jueves de 9:15 a 11:30.
Salón: E-309 .
Contenido oficial del curso:
  • Tipos de datos abstractos y estructuras dinámicas.
  • Recursividad y eficiencia.
  • Estructuras para listas.
  • Estructuras para árboles.
  • Estructuras para gráficas.
  • Algoritmos de búsqueda interna.
  • Algoritmos de ordenamiento interno.
Calificación:

Habrán ocho tareas con un valor de 10 puntos cada una y cuatro exámenes con un valor de 5 puntos cada uno. No habrá evaluación terminal. El curso se impartirá en los lenguajes C y C++.

Las tareas consistirán en programas escritos para la plataforma OmegaUp que resuelvan el problema de programación indicado para la evaluación. Su matrícula y nombre de usuario en OmegaUp deberán ser enviados a mi correo electrónico a más tardar en la fecha de la primera entregaNo se calificarán programas de ninguna otra forma. Cada tarea estará disponible con al menos una semana de anticipación con respecto a la fecha de entrega.

Los exámenes serán escritos y consistirán en la implementación de subrutinas en lenguaje C o C++ que implementen correctamente el o los algoritmos solicitados en el examen. Los exámenes se llevarán a cabo de manera presencial en tiempo de clase y tendrán una duración máxima de 15 minutos. La fecha de cada examen se anunciará con al menos una semana de anticipación.

La calificación final se obtiene de la suma de los puntajes de las tareas resueltas al 100% según OmegaUp, más la suma de las calificaciones obtenidas en los exámenes. Es requisito para aprobar el curso obtener al menos 15 puntos provenientes de exámenes y resolver correctamente todos los problemas de la prueba diagnóstica durante las primeras dos semanas de clases. La escala de calificación en acta es:
  • Al menos 60 puntos para acreditar con S.
  • Al menos 73 puntos para acreditar con B.
  • Al menos 87 puntos para acreditar con MB.

De acuerdo al Reglamento de Alumnos de la UAM, es falta de los alumnos en contra de la institución el suplantar o permitir ser suplantado en la realización de actividades académicas y se impondrá desde amonestación escrita hasta suspensión por dos trimestres.

Calendario: El siguiente calendario es tentativo y podrá cambiar a lo largo del curso. Los códigos escritos en cada una de las sesiones del curso podrán encontrarlos en la parte de abajo de esta página.

  • 12/09: Programación estructurada, algoritmia y eficiencia. Problemas 1, 2 y 3 de diagnóstico, entrega el 10/10.
  • 14/09: Conceptos básicos del lenguaje de programación C++.
  • 19/09: Representación de datos en memoria. Propiedades de tipos enteros en C y C++.
  • 03/10: Paso de parámetros, referencias y apuntadores.
  • 05/10: Apuntadores, arreglos y secuencias.
  • 10/10: Algoritmos sobre secuencias y paso de predicados. Tarea 1 para entrega el 19/10. Envíos aceptados.
  • 12/10: Día de descanso obligatorio. Resultados de la prueba diagnóstica.
  • 17/10: Algoritmos iterativos y recursivos.
  • 19/10: Búsquedas lineal y binaria. Primer examen parcial. Tarea 2 para entrega el 26/10. Envíos aceptados.
  • 24/10: Ordenamiento y búsquedas de cotas inferiores y superiores..
  • 26/10: Ordenamiento de elementos y de secuencias. Tarea 3 para entrega el 02/11. Envíos aceptados.
  • 31/10: Ordenamiento de secuencias mediante comparaciones y ordenamiento sin comparaciones.
  • 02/11: Día de descanso obligatorio.
  • 07/11: Arreglos dinámicos y redimensionables. Segundo examen parcial. Tarea 4 para entrega el 14/11. Envíos aceptados.
  • 09/11: Pilas, colas y dobles colas. Tarea 5 para el 21/11. Envíos aceptados.
  • 14/11: Listas enlazadas y aplicaciones. Tarea 6 para el 23/11. Envíos aceptados.
  • 16/11: Colas de prioridad y montículos. Operaciones en iteradores.
  • 21/11: Árboles binarios de búsqueda y recorridos sobre árboles.
  • 23/11: Árboles binarios balanceados y autobalanceados de búsqueda. Tarea 7 para el 14/12. Envíos aceptados.
  • 28/11: Gráficas y representaciones y aplicaciones.
  • 30/11: Aplicaciones de gráficas. Tercer examen parcial.
  • 05/12: Búsqueda en amplitud y búsqueda en profundidad. Tarea 8 para el 14/12. Envíos aceptados.
  • 07/12: Componentes conexas y caminos más cortos.
  • 12/12: Árboles abarcadores. Cuarto examen parcial.
  • Calificaciones finales. El acta la subiré el viernes.
    Bibliografía:
    • Aho A., Ullman J., Hopcroft J., "Estructuras de datos y algoritmos", Pearson.
    • Kernighan B., Ritchie D., "El lenguaje de programación C", Pearson.
    • Knuth D., "The Art of Computer Programming: Vol. 3 Sorting and Searching", Addison Wesley.
    • Llana L., et al., "Ejercicios de programación creativos y recreativos en C++", Prentice Hall, 2002.
    • Sedgewick R., "Algoritmos en C++", Pearson.
    • Stroustrup, B., "The C++ Programming Language", Addison-Wesley, 2013.