Trimestres anteriores‎ > ‎2021-I‎ > ‎

1151041 - Almacenamiento y Estructuras de Archivos

Instructor: Rodrigo Alexander Castro Campos.
Trimestre: 2021-I.

Grupo: CSI01.
Horario: Lunes, miércoles y viernes de 8:30 a 10:00.
Salón: Página de Facebook (clases en stream).

Contenido oficial del curso:
  • Algoritmos de procesamiento de cadenas.
  • Operaciones fundamentales de archivos.
  • Sistemas de archivos.
  • Organización de datos.
  • Almacenamiento secundario y terciario.
  • Compresión y compactación de archivos.
  • Ordenamiento externo.
  • Índices.
  • Árboles B y B+.
  • Dispersión y dispersión extendida.
Calificación:

Habrán diez tareas con un valor de 10 puntos cada una. El curso se impartirá en el lenguaje C++. Las tareas consistirán en escribir programas para la plataforma omegaUp que resuelvan el problema de programación indicado para la evaluación. Sus datos  deberán enviarse mediante este formulario antes de la entrega de la primera tarea. No 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. No habrá evaluación terminal.

Una tarea sólo cuenta si aparece resuelta al 100% según omegaUp. La calificación final se obtiene de sumar los puntos provenientes de las tareas. 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.  Adicionalmente, los alumnos que incurran en esta falta no tendrán derecho a aprobar el curso.

Calendario: El siguiente calendario es tentativo y podrá cambiar a lo largo del curso.

Cuando exista más de una versión para una tarea, basta con que resuelvan una de ellas. No se otorgarán puntos adicionales por resolver varias versiones. 

Pueden consultar esta lista de problemas de "Programación Estructurada" para que practiquen.
Pueden consultar esta lista de problemas de "Algoritmos y Estructuras de Datos" para que practiquen.
Pueden consultar esta lista de problemas de "Almacenamiento y Estructuras de Archivos" para que practiquen.

Calendario: El siguiente calendario es tentativo y podrá cambiar a lo largo del curso.
  • 29/03: Presentación del curso. Introducción a omegaUp  123. Prueba diagnóstica.
  • 31/03: La brecha entre el procesador y la memoria. Benchmark de memoria.
  • 02/04: Día de descanso obligatorio.
  • 05/04: Almacenamiento primario, niveles de caché y líneas de coherencia. Tarea 1 para el 14/04. Envíos aceptados.
  • 07/04: Tablas de dispersión y funciones de dispersión.
  • 09/04: Tablas de dispersión con direccionamiento abierto y encadenamiento separado. Tarea 2 para el 19/04. Envíos aceptados.
  • 12/04: Archivos lógicos y físicos. Flujos estándar.
  • 14/04: Entrada y salida con formato. Fin de archivo.
  • 16/04: Entrada y salida sin formato. Tarea 3 para el 23/04. Envíos aceptados.
  • 19/04: Apertura de archivos persistentes. Archivos binarios.
  • 21/04: Búferes de la biblioteca estándar y del sistema de archivos.
  • 23/04: Posicionamiento en archivos. Benchmark de lectura.
  • 26/04: Bloques del sistema de archivos y fragmentación. Tarea 4 para el 07/05. Envíos aceptados.
  • 28/04: Almacenamiento secundario: discos magnéticos y de estado sólido. Tarea 5 para el 10/05. Envíos aceptados.
  • 30/04: Almacenamiento terciario: discos ópticos y cintas magnéticas. Benchmark de acceso al medio.
  • 03/05: Ordenamiento externo sin archivos temporales. Ejemplo de montículos. Tarea 6 para el 17/05. Envíos aceptados.
  • 05/05: Día de descanso obligatorio.
  • 07/05: Ordenamiento externo con archivos temporales.
  • 10/05: Día de descanso obligatorio.
  • 12/05: Búsqueda lineal y búsqueda binaria en archivos.
  • 14/05: Multibúsqueda en archivos. Ejemplo de códigoTarea 7 para el 28/05. Envíos aceptados.
  • 17/05: Alfabetos y representación de cadenas.
  • 19/05: Compresión de cadenas sin pérdida.
  • 21/05: Compresión de cadenas sin pérdida mediante tablas. Tarea 8 para el 14/06. Casos de prueba. Envíos aceptados.
  • 24/05: Compresión con pérdida. 
  • 26/05: Ordenamiento de cadenas y búsqueda de prefijos. Ejemplo de código 1, 2.
  • 28/05: Búsqueda de subcadenas. Tarea 9 para el 14/06. Envíos aceptados.
  • 31/05: Serialización de registros. Representación de secuencias de longitud fija y variable.
  • 02/06: Encabezados de archivos.
  • 04/06: Mantenimiento de registros y compactación.
  • 07/06: Índices primarios. Ejemplo de código. Tarea 10 para el 16/06. Envíos aceptados.
  • 09/06: Índices secundarios y árboles B y B+.
  • 11/06: Dispersión extendida.
  • Calificaciones finales.
Entornos de programación que pueden usar localmente:
Entornos de programación que pueden usar en línea:
Enlaces de interés:
Bibliografía:
  • Castro Campos. Notas de curso (se irán actualizando conforme avance el trimestre).
  • Folk, Zoellick y Riccardi. File Structures: An Object-oriented Approach with C++. Addison Wesley.
  • Knuth. The Art of Computer Programming: Vol. 3 Sorting and Searching. Addison Wesley.
  • Pate. UNIX File Systems: Evolution, Design, and Implementation. Wiley.
  • Salomon. A Concise Introduction to Data Compression. Springer.
  • Sedgewick. Algoritmos en C++. Pearson.
  • Tharp. File Organization and Processing. Wiley.