1151042 Algoritmos y Estructuras de Datos
Trimestre 2020 Otoño
Instructor: Dr. Francisco Javier Zaragoza
Martínez.
Inicio y fin del curso:
lunes 7 de diciembre de 2020 a viernes 5 de marzo de 2021.
Grupos: CSI82 y CSAI81
(lunes, miércoles y viernes de 15:00 a 16:00).
Asesorías: lunes, miércoles
y viernes de 16:00 a 17:00 y por correo electrónico a través de
cuentas institucionales.
Lugar: Google Meet (PEER).
Cupo: 70+25 alumnos.
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.
- 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.
Evaluación
La primera semana habrá una evaluación diagnóstico de programación
estructurada. De la segunda 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 que se enviarán a omegaUp.
Considerando un máximo de 100 puntos, se requieren al menos 70
puntos para obtener S, al menos 80 puntos para obtener B y al menos
90 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 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 (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: 30 de noviembre a 6 de diciembre
Las instrucciones generales para
todos los alumnos aparecieron en el sitio de de
la UAM Azcapotzalco. Abajo aclaro algunas de ellas.
- 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 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 Octavio Ramírez
(al2132001731@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 AED 2020 Otoño
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 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: 7 de diciembre a 11 de diciembre
Esta semana cubriremos el Tema 2: Recursividad y eficiencia.
- 7 de diciembre: Presentación del curso (15:00-16:00 para CSI82
y 16:00-17:00 para CSAI81).
- 9 y 11 de diciembre: Clase (15:00-16:00) y asesoría
(16:00-17:00).
- Material de estudio: Eficiencia.
Recursión.
- Material de consulta (en inglés): Recursión.
Análisis
elemental de algoritmos.
- Tarea
0 (Diagnóstico, 10 puntos): Del 7 de diciembre a las 14:30
al 11 de diciembre a las 14:30. Si no aprendiste C o C++ antes o
si consideras que tuviste problemas con este diagnóstico, te
invito a que leas estas notas
y aproveches el curso de programación
en C++ de omegaUp.
Semana 2: 14 de diciembre a 18 de diciembre
Esta semana cubriremos el Tema 7: Algoritmos de ordenamiento
interno.
Semana 3: 4 de enero a 8 de enero
Esta semana cubriremos el Tema 6: Algoritmos de búsqueda interna e
iniciaremos el Tema 1: Tipos de datos abstractos y estructuras
dinámicas.
Semana 4: 11 de enero a 15 de enero
Esta semana terminaremos el Tema 1: Tipos de datos abstractos y
estructuras dinámicas.
Semana 5: 18 de enero a 22 de enero
Esta semana iniciaremos el Tema 3: Estructuras para listas.
Semana 6: 25 de enero a 29 de enero
Esta semana terminaremos el Tema 3: Estructuras para listas.
Semana 7: 1 de febrero a 5 de febrero
Esta semana iniciaremos el Tema 4: Estructuras para árboles.
Semana 8: 8 de febrero a 12 de febrero
Esta semana terminaremos el Tema 4: Estructuras para árboles.
Semana 9: 15 de febrero a 19 de febrero
Esta semana iniciaremos el Tema 5: Estructuras para gráficas.
Semana 10: 22 de febrero a 26 de febrero
Esta semana terminaremos el Tema 5: Estructuras para gráficas.
Semana 11: 1 de marzo a 5 de marzo
Hemos terminado de cubrir el material del curso.
- Tarea
11 (Tema 5, 10 puntos): Del 26 de febrero a las 14:30 al 5
de marzo a las 14:30.
Entrega de actas y evaluación de recuperación: 8 a 24 de marzo
Estos días ocurrirán las evaluaciones de recuperación.
- 8 a 12 de marzo: La entrega de actas globales ocurrió el 11 de
marzo.
- 17 de marzo: Evaluación de recuperación I82 de las 16:00 a las
19:00.
- 18 de marzo: Evaluación de recuperación S51 de las 19:00 a las
22:00 (sólo con autorización SAI).
- 19 a 24 de marzo: Entrega de actas de recuperación.
Bibliografía
- Castro Campos. Algoritmos
y estructuras de datos. UAM Azcapotzalco.
- Kernighan y Ritchie. El lenguaje de programación C. Pearson.
- Llana, et al. Ejercicios
de programación creativos y recreativos en C++. Prentice
Hall.
- Morin. Open
Data Structures in C++. Athabasca University Press.
- Parlante. Stanford
CS Education Library.
- Sedgewick y Wayne. Algorithms.
Pearson.
- Sedgewick y Wayne. Computer
Science: An Interdisciplinary Approach. Pearson.