11 de mayo - 17 de mayo
Perfilado de sección
-
-
Estructuras de Datos: Listas, Tuplas, Diccionarios y Conjuntos
De la variable individual al dato organizado: cuatro estructuras, una idea unificadora (el TAD) y un primer asomo a procesos y threads
-
Esta semana estudiamos las cuatro estructuras de datos integradas en el núcleo de Python: la lista (
list), la tupla (tuple), el diccionario (dict) y el conjunto (set). No son cuatro nombres diferentes para lo mismo: cada una resuelve un problema distinto, tiene una representación interna distinta y exhibe un perfil de complejidad distinto para sus operaciones. La elección entre ellas es una decisión técnica que afecta la corrección y la eficiencia del programa.Detrás de las cuatro estructuras hay una idea conceptual más general : el tipo abstracto de datos (TAD). Un TAD describe qué hace una estructura —qué operaciones expone, qué garantiza cada una— sin comprometerse con cómo está implementada por dentro. Es la separación entre interfaz e implementación, una de las ideas fundacionales de la ciencia de la computación.
Cierran esta semana dos conceptos del sistema operativo que vamos a presentar como anticipo de la Semana 11. La pregunta motivadora es: cuando ejecutamos un programa Python —por ejemplo, un script que usa nuestras estructuras de datos—, ¿qué ofrece el SO para que ese programa se ejecute en paralelo con otros, sin interferir con ellos? La respuesta involucra dos abstracciones: el proceso y el thread.
-
Visualizador interactivo de estructuras internas de Python: listas como arrays dinámicos y diccionarios como hash tables
-
Los problemas de esta semana ejercitan las cuatro estructuras de datos integradas de Python —list, tuple, dict y set— en sus aplicaciones canónicas. El eje temático es la elección de estructura: cada problema admite múltiples soluciones funcionalmente correctas, pero solo una o dos son adecuadas en términos de complejidad asintótica y legibilidad. La «elección correcta» no es opinión: surge de un análisis previo del perfil de operaciones que el problema requiere y de las complejidades que ofrece cada estructura.
Los siete problemas están organizados en tres bloques con conexiones deliberadas: el Bloque A construye los cimientos —listas, tuplas, matrices y la primera trampa del aliasing—; el Bloque B ataca las dos estructuras hash —diccionarios y conjuntos— en sus aplicaciones más frecuentes y revisita explícitamente el problema de tabla de frecuencias de la Semana 6 para apreciar empíricamente cuánto cambia la solución; y el Bloque C cierra con tres ejercicios de naturaleza distinta: comprensiones aplicadas a un grafo, materialización del concepto de TAD con dos implementaciones equivalentes, y análisis crítico de cinco soluciones generadas por IA generativa con errores comunes. Se agrega una sección de Desafíos extracurriculares grupales con cuatro propuestas que profundizan temas introducidos conceptualmente en la teoría pero no implementados en los problemas obligatorios (mini-implementación de hash table, similaridad de Jaccard, detección de anagramas con clave canónica, modelado de inventario distribuido).
-
Esta autoevaluación recorre los temas trabajados en la clase teórica y la lectura de la Semana 10: listas, tuplas, diccionarios y conjuntos, el modelo de tabla hash que está debajo de los diccionarios y los conjuntos, las comprensiones (de listas, diccionarios y conjuntos), la noción de Tipo Abstracto de Datos (TAD) con sus contratos, y un cierre holístico sobre concurrencia (procesos, threads y el GIL de CPython).
¿Qué vas a encontrar?
45 preguntas de elección múltiple. En algunas preguntas hay una sola opción correcta; en otras hay más de una. El propio enunciado lo aclara con expresiones como «¿cuál de las siguientes…?» (una) o «¿cuáles de las siguientes…?» (varias).
Cómo se puntúan tus respuestas
Si una pregunta tiene N opciones válidas:
• cada opción válida que marques suma 100/N % del valor total de la pregunta;
• cada opción inválida que marques resta 100/(2N) %, es decir, la mitad del valor positivo de una válida;
• el mínimo por pregunta es 0: las restas nunca producen puntaje negativo en una pregunta.
Por eso marcar al azar todas las opciones no es buena estrategia: el saldo esperado de marcar de más se vuelve negativo. Si dudás entre dos opciones, conviene reflexionar (releer la teoría, hacer una pequeña prueba en el intérprete) antes de elegir.
Intentos y plazo
Podés hacer todos los intentos que quieras dentro del plazo. Tu nota final es la más alta entre todos. No hay límite de tiempo dentro de cada intento: tomate el que necesites para razonar las respuestas.
Cómo aprovechar mejor esta autoevaluación
1. Antes del primer intento, leé el documento teórico 10_Listas_Tuplas_Diccionarios_Conjuntos.html completo y experimentá en el intérprete los ejemplos. Las preguntas presuponen contacto previo con el material, no improvisación.
2. Después de cada intento, revisá la retroalimentación de cada pregunta, incluso las que respondiste bien: el texto del feedback explica el porqué de cada opción y muchas veces aporta matices que la pregunta sola no muestra. Recién después intentá de nuevo. El ciclo intento → revisión → reintento es donde se produce el aprendizaje, no en el puntaje aislado.
3. Si una pregunta te sigue confundiendo después de dos intentos y la lectura de la retroalimentación, traela al foro de la semana. Las dudas mejor formuladas son las que ya pasaron por tu propia revisión: contá qué entendés, qué probaste y dónde se rompe tu razonamiento. Eso permite al docente y a los compañeros responder con precisión y le sirve también a quien después tenga la misma duda.
Esta autoevaluación no decide tu nota del curso. Es una herramienta para que vos mismo/a detectes qué entendiste con claridad y qué necesita una segunda pasada. Usala con esa intención.
El plazo para realizar la autoevaluación finaliza el sábado 23 a las 23:59.
-