1151041 - Almacenamiento y Estructuras de Archivos
Institución: Universidad Autónoma Metropolitana, Azcapotzalco.
Instructor: Rodrigo Alexander Castro Campos.
Trimestre: 2025-I.
Grupo: CSI01.
Horario: Lunes, miércoles y viernes de 7:00 a 8:30.
Salón: E-309.
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á diez tareas con un valor de 11 puntos cada una y tres exámenes. Las tareas consistirán en escribir programas para la plataforma omegaUp que resuelvan al 100% el problema de programación indicado para la evaluación. Sus datos de registro deberán enviarse mediante este formulario antes de la entrega de la primera tarea. No se calificarán tareas 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 programas o subrutinas en lenguaje C o C++ que resuelvan el o los problemas especificados. Los exámenes se llevarán a cabo de manera presencial en tiempo de clase y no se permitirá la consulta de ningún material impreso ni electrónico. Los exámenes tendrán una duración máxima de 25 minutos y se requiere asistencia puntual al mismo. La fecha de cada examen se anunciará con al menos una clase de anticipación. Cada examen presentado se calificará en una escala de 0 a 10 y un examen no presentado se calificará con 0. No habrá evaluación terminal. El curso se impartirá en el lenguaje C++.
Es requisito para aprobar el curso obtener una calificación promedio de exámenes mayor o igual a 6. Cumpliendo eso, la calificación en acta se obtiene como sigue tras sumar los puntos provenientes de las tareas:
- 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. Los alumnos que incurran en esta falta, o que envíen programas cuya escritura haya sido asistida mediante herramientas de inteligencia artificial generativa, no tendrán derecho a aprobar el curso.
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.
Cambio en los criterios de evaluación derivado del paro estudiantil.
Calendario: El calendario es tentativo y podrá cambiar. Pueden consultar programas de ejemplo de los temas del curso.
- 10/02: Presentación del curso. Introducción a omegaUp.
- 12/02: La brecha entre el procesador y la memoria.
- 14/02: Almacenamiento primario, niveles de caché y líneas de coherencia. Tarea 1 para entrega el 26/02. Envíos aceptados.
- 17/02: Conjuntos no ordenados. Funciones de dispersión y tablas de dispersión.
- 19/02: Tablas de dispersión, funciones de dispersión y colisiones.
- 21/02: Tablas de dispersión con encadenamiento separado y direccionamiento abierto. Tarea 2 para entrega el 05/03. Envíos aceptados.
- 24/02: Archivos lógicos y físicos. Flujos estándar.
- 26/02: Entrada y salida con formato.
- 28/02: Entrada y salida sin formato. Tarea 3 para entrega el 10/03. Envíos aceptados.
- 03/03: Apertura de archivos persistentes.
- 05/03: Búferes de escritura. Examen 1.
- 07/03: Configuración de búferes. Optimización de escritura.
- 10/03: Búferes de lectura. Optimización de lectura.
- 12/03: Posicionamiento en archivos. Tarea 4 para entrega el 04/04. Envíos aceptados.
- 14/03: Bloques del sistema de archivos y fragmentación. Tarea 5 para entrega el 31/03. Envíos aceptados.
- 17/03: Almacenamiento secundario. Rendimiento de acceso secuencial y arbitrario.
- 19/03: Almacenamiento terciario.
- 21/03: Día de descanso obligatorio.
- 24/03: Ordenamiento externo sin archivos temporales.
- 26/03: Ordenamiento externo con archivos temporales. Tarea 6 para entrega el 15/04. Envíos aceptados.
- 28/03: Búsqueda lineal y búsqueda binaria en archivos.
- 31/03: Alfabetos y representación de cadenas. Examen 2.
- 02/04: Compresión de cadenas sin pérdida.
- 04/04: Operadores de manipulación de bits. Tarea 7 para entrega el 08/05. Casos de ejemplo. Envíos aceptados.
- 07/04: Compresión de cadenas sin pérdida mediante tablas de decodificación. Compresión con pérdida.
- 09/04: Ordenamiento de cadenas.
- 11/04: Árboles de prefijos.
- 14/04: Búsqueda de subcadenas. Tarea 8 para entrega el 08/05. Envíos aceptados.
- 16/04: Serialización de registros. Ejercicio previo al examen 3.
- 18/04: Día de descanso obligatorio.
- 21/04: Serialización de secuencias de longitud fija y variable. Tarea 9 opcional para entrega el 15/05. Envíos aceptados.
- El calendario se reprogramó por al paro. Cambio en los criterios de evaluación derivado del paro estudiantil.
- 07/05: Indices primarios y secundarios. Árboles B y B+. Tarea 10 opcional
para entrega el 15/05. Envíos aceptados.
- Calificaciones finales.
Entornos de programación que pueden usar localmente:
Entornos de programación que pueden usar en línea:
Bibliografía:
- Castro Campos. Notas de curso.
- 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.
Enlaces de interés: