1151041 Almacenamiento y Estructuras de Archivos
Trimestre 2023 Primavera
Profesor: Dr. Francisco Javier Zaragoza
Martínez.
Inicio y fin del curso:
lunes 7 de agosto de 2023 a miércoles 18 de octubre de 2023.
Grupo: CSI81 (lunes,
miércoles y viernes de 14:30 a 16:00).
Asesorías: por correo
electrónico a través de cuentas institucionales.
Lugar: G206.
Cupo: 36.
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.
- 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.
Evaluación
Habrá once tareas semanales (valor máximo de 100 puntos cada una, sí
habrá puntos parciales). Todas estas evaluaciones serán programas en
C que se enviarán a omegaUp. Para acreditar el curso se
requieren al menos:
- 650 puntos en la tareas para obtener S,
- 750 puntos en la tareas para obtener B y
- 850 puntos en la tareas 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.
Transparencias.
Preparativos: 30 de junio a 31 de julio
- Asegúrate de tener disponible una computadora con internet en
la que puedas editar, compilar y ejecutar programas en C. 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 (tutorial)
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).
- Usaremos exclusivamente el correo institucional. Si
no tienes el tuyo, actívalo
con la Coordinación de Servicios de Cómputo (CSC).
- Usaremos la plataforma 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.
- Envía un correo a mi ayudante Samuel Hernández
(rshs@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 AEA 2023 Primavera
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.
Semana 1: 7 de agosto a 11 de agosto
Esta semana iniciaremos el Tema 1: Algoritmos de procesamiento de
cadenas.
- 7 de agosto: Presentación del curso.
- 9 de agosto: Representación de caracteres y cadenas.
- 11 de agosto: Búsqueda de subcadenas.
- Material de consulta: Búsqueda por fuerza
bruta. Algoritmo de Knuth,
Morris y Pratt.
- Tarea 0 (Diagnóstico, 100 puntos): Del 6 de agosto a las 16:00
al 12 de agosto a las 16:00. Si no aprendiste algoritmos y
estructuras de datos antes o si consideras que tuviste problemas
con este diagnóstico, te invito a que leas estas notas y aproveches los cursos de introducción a algoritmos I e introducción
a algoritmos II de omegaUp. Si quieres practicar más,
también puedes aprovechar el curso de solución
de problemas en omegaUp.
Semana 2: 14 de agosto a 18 de agosto
Esta semana terminaremos el Tema 1: Algoritmos de procesamiento
de cadenas y cubriremos el Tema 6: Compresión y compactación de
archivos.
- 14 de agosto: Ordenamiento de cadenas (radix sort). Búsqueda
de cadenas (tries).
- 16 de agosto: Compresión de cadenas (RLE).
- 18 de agosto: Compresión de cadenas (Huffman).
- Material de consulta: Compresión de imágenes JPEG.
- Tarea 1 (Tema 1, 100 puntos): Del 13 de agosto a las 16:00 al
19 de agosto a las 16:00.
Semana 3: 21 de agosto a 25 de agosto
Esta semana cubriremos el Tema 5: Almacenamiento secundario y
terciario.
Semana 4: 28 de agosto a 1 de septiembre
Esta semana cubriremos el Tema 2: Operaciones fundamentales de
archivos.
- 28 de agosto: Objetivos de las estructuras de archivos.
- 30 de agosto: Operaciones fundamentales de archivos.
- 1 de septiembre: Acceso secuencial y arbitrario.
- Tarea 3 (Tema 5, 100 puntos): Del 27 de agosto a las 16:00 al
2 de septiembre a las 16:00.
Semana 5: 4 de septiembre a 8 de septiembre
Esta semana cubriremos el Tema 3: Sistemas de archivos e
iniciaremos el Tema 4: Organización de datos.
- 4 de septiembre: Archivos y el sistema operativo.
- 6 de septiembre: Manejo de buffers.
- 8 de septiembre: Persistencia de datos, campos y registros.
- Tarea 4 (Tema 2, 100 puntos): Del 3 de septiembre a las 16:00
al 9 de septiembre a las 16:00.
Semana 6: 11 de septiembre a 15 de septiembre
Esta semana terminaremos el Tema 4: Organización de datos.
- 11 de septiembre: Acceso a registros.
- 13 de septiembre: Estructura de registros.
- 15 de septiembre: Día feriado.
- Tarea 5 (Tema 3, 100 puntos): Del 10 de septiembre a las 16:00
al 16 de septiembre a las 16:00.
Semana 7: 18 de septiembre a 22 de septiembre
Esta semana cubriremos el Tema 8: Índices.
- 18 de septiembre: Índices sencillos.
- 20 de septiembre: Índices secundarios.
- 22 de septiembre: Atado.
- Tarea 6 (Tema 4, 100 puntos): Del 17 de septiembre a las 16:00
al 23 de septiembre a las 16:00.
Semana 8: 25 de septiembre a 29 de septiembre
Esta semana cubriremos el Tema 7: Ordenamiento externo.
- 25 de septiembre: Ordenamiento interno vs externo.
- 27 de septiembre: Procesos cosecuenciales.
- 29 de septiembre: Ordenamiento externo en discos.
- Tarea 7 (Tema 8, 100 puntos): Del 24 de septiembre a las 16:00
al 30 de septiembre a las 16:00.
Semana 9: 2 de octubre a 6 de octubre
Esta semana cubriremos el Tema 9: Árboles B y B+.
- 2 de octubre: Índices en árboles.
- 4 de octubre: Árboles B.
- 6 de octubre: Árboles B+.
- Tarea 8 (Tema 7, 100 puntos): Del 1 de octubre a las 16:00 al
7 de octubre a las 16:00.
Semana 10: 9 de octubre a 13 de octubre
Esta semana cubriremos el Tema 10: Dispersión y dispersión
extendida.
- 9 de octubre: Funciones de dispersión.
- 11 de octubre: Tablas de dispersión.
- 13 de octubre: Dispersión extendida.
- Tarea 9 (Tema 9, 100 puntos): Del 8 de octubre a las 16:00 al
14 de octubre a las 16:00.
Semana 11: 16 de octubre a 18 de octubre
De ser necesario, esta semana terminaremos el Tema 10: Dispersión
y dispersión extendida.
- 16 de octubre: Dispersión y dispersión extendida.
- 18 de octubre: Dispersión y dispersión extendida.
- Tarea 10 (Tema 10, 100 puntos): Del 12 de octubre a las 16:00
al 21 de octubre a las 16:00.
Entrega de actas y evaluación de recuperación: 19 de octubre a 8
de noviembre
Estos días ocurrirán las evaluaciones de recuperación.
- 19 a 25 de octubre: Entrega de actas de evaluación global.
- 30 de octubre: Inscripción a evaluación de recuperación.
- 3 a 7 de noviembre: Evaluación de recuperación.
- 6 a 8 de noviembre: Entrega de actas de evaluación de
recuperación.
Bibliografía
-
Byers. Care
and Handling of CDs and DVDs: A Guide for Librarians and
Archivists. NIST.
- Castro Campos. Almacenamiento y estructuras de
archivos. UAM Azcapotzalco.
-
Charras y Lecroq. Exact
String Matching Algorithms. Université de Rouen.
-
Folk, Zoellick y Riccardi.
File
Structures: An Object-oriented Approach with C++. Addison
Wesley.
-
Hutchinson. Solid-State
Revolution. Ars technica.
- Kernighan y Ritchie. El lenguaje de programación C. Pearson.
-
Knuth.
The
Art of Computer Programming: Vol. 3 Sorting and Searching.
Addison Wesley.
-
Loomis. Data Management and File Structures. Prentice Hall.
-
O'Kelly. Reference
Guide for Optical Media. Memorex.
-
Pate. UNIX File Systems: Evolution, Design, and Implementation.
Wiley.
-
Salomon. A Concise Introduction to Data Compression. Springer.
- Sedgewick y Wayne. Algorithms.
Pearson.
- Standard C++
Library Reference. Cplusplus.com.
-
Tharp. File
Organization and Processing. Wiley.