Unidad 5: Algoritmos y Simulaciones

Laboratorio 1: Algoritmos de búsqueda y eficiencia

Laboratorio 1, página 2: Problema vs. instancia de un problema
AAP-4.A.1
Laboratorio 1, página 2: Tiempo lineal vs. búsqueda lineal
Laboratorio 1, página 3: Búsqueda binaria
AAP-2.P.1, AAP-2.P.2

Un algoritmo de búsqueda binaria (binary search) comienza en medio de una lista ordenada y elimina repetidamente la mitad de la lista hasta que se encuentra el valor deseado o se han eliminado todos los elementos.

AAP-2.O.1
Aprendiste acerca de lista transpuesta en Unidad 2 Laboratorio 2 Página 3: Comprobación de cada respuesta del cuestionario.

La búsqueda lineal hace un recorrido completo de la lista. La búsqueda binaria ahorra tiempo al hacer un recorrido parcial de la lista.

Laboratorio 1, página 4: Eficiencia
AAP-4.A.3

La relación entre el tamaño de la entrada y el número de pasos requeridos para resolver un problema es la eficiencia (efficiency) del algoritmo utilizado para resolver el problema.

Laboratorio 1, página 5: Tiempo lineal, tiempo sublineal, tiempo constante y tiempo cuadrático
Laboratorio 1, página 5: Tiempo polinómico y tiempo exponencial
Laboratorio 1, página 6: Problema de decisión vs. problema de optimización 
AAP-4.A.2
Laboratorio 1, página 6: Problema resoluble vs. problema indecidible
AAP-4.B.1, AAP-4.B.2, AAP-4.B.3

Un problema resoluble (decidable) es un problema de decisión para el cual es posible escribir un algoritmo que dará una salida correcta para todas las entradas.

Un problema indecidible (undecidable) es lo opuesto.  No es posible escribir un algoritmo que dará una salida correcta para todas las entradas—aunque podría ser posible para algunos de ellos.

Laboratorio 1, página 8: Computación secuencial vs. computación en paralelo
CSN-2.A.1, CSN-2.A.2

Esta sección cubre dos modelos de computación:

Laboratorio 1, página 8: Computación distribuida
CSN-2.A.3

Computación distribuida (distributed computing) es una forma de computación paralela que utiliza múltiples computadoras (tal vez incluso se extienda por todo el mundo).

Laboratorio 1, página 8: Procesador

Un procesador (processor) es una pieza de circuitos dentro de una computadora que procesa las instrucciones de los programas de computación.

CPU

Créditos de la imagen: Wikipedia usuario Solipsist

Laboratorio 1, página 8: Aceleración
CSN-2.A.7

Los programadores se refieren a la aceleración (speedup) de la solución paralela para describir cuántas veces más rápido se compara la solución paralela con la solución secuencial:
\text{aceleración} = \frac{\text{tiempo secuencial}}{\text{tiemo paralelo}}

Laboratorio 2: Simulaciones

Laboratorio 2, página 1: Simulaciones
AAP-3.F.1, AAP-3.F.2

Las simulaciones (simulations) son representaciones por computadora de cosas o situaciones reales que varían con el tiempo. Una simulación es una abstracción diseñada para un propósito en particular.

Laboratorio 3: Transformar datos en información

Laboratorio 3, página 1: Datos vs. información
DAT-2.A.1
DAT-2.A.2
Los datos proporcionan oportunidades para identificar tendencias, establecer conexiones y abordar problemas. La información es el resultado del análisis de esos datos.
Laboratorio 3, página 1: Correlación

Una correlación (correlation) es un tipo particular de información, es decir, una dependencia entre dos variables en una situación. Por ejemplo, en la primera imagen aquí, mientras una variable sube, la otra baja. También es una correlación cuando una variable sube o baja y la otra cambia de la misma manera.

Un gráfico con un montón de puntos de datos, en el cual generalmente siguen una línea recta desde la parte superior izquierda hasta la parte inferior derecha
Un gráfico con un montón de puntos de datos, en el cual generalmente siguen una línea recta desde la parte inferior izquierda hasta la parte superior derecha
Un gráfico con un montón de puntos de datos dispersos por todas partes, sin seguir una línea
correlación negativa
correlación positiva 
no hay correlación
Laboratorio 3, página 1: Insight
DAT-2.E.4

Insight es una conclusión significativa extraída del análisis de la información.

Laboratorio 3, página 3: Registros, campos y columnas Animación de tres fotogramas del reporte del conjunto de datos de automóviles presentado como una tabla con columnas y filas; en el primer fotograma, se destaca la cuarta fila de la tabla y se etiqueta como 'registro (fila)'; en el segundo fotograma, se destaca la tercera columna de la tabla y se etiqueta como 'columna'; en el tercer fotograma, se destaca la celda en la cuarta fila y tercera columna y se etiqueta como 'campo'
Laboratorio 3, página 3: Limpieza de datos
DAT-2.C.4, DAT-2.E.2

Limpieza de datos (cleaning data) es el proceso de hacer los datos uniformes sin cambiar su significado (como el reemplazo de abreviaturas, ortografía y mayúsculas por la palabra deseada o la conversión de millas a kilómetros). Los programadores pueden utilizar programas para filtrar y limpiar los datos digitales, obteniendo así una mayor visión y conocimiento.

Laboratorio 3, página 5: Clasificar los datos
DAT-2.E.3 solamente clasificando

Clasificar los datos (classifying data) es extraer grupos de datos con una característica en común.

Laboratorio 3, página 5: Modo

El modo (mode) de un conjunto de datos es el valor que aparece con más frecuencia.

Laboratorio 3, página 6: Metadatos
DAT-2.B.1

Los metadatos (metadata) son datos sobre datos. Por ejemplo, el dato puede ser una imagen, mientras que los metadatos pueden incluir la fecha de creación o el tamaño del archivo de la imagen.

Laboratorio 4: Problemas irresolubles e indecidibles

Laboratorio 4, página 1: Prueba por contradicción

Una prueba por contradicción (proof by contradition) es una prueba de dos pasos para saber si algo es falso que se realiza:

  1. asumiendo que es verdad
  2. mostrando cómo eso es imposible (que crea una contradicción)
Laboratorio 4, página 1: Declaración indecidible vs. declaración autocontradictoria

Una declaración indecidible (undecidable) puede ser verdadera o falsa; no sabemos cuál.

Una declaración autocontradictoria (self-contradictory) no puede ser verdadera ni falsa.

Laboratorio 4, página 2: Bucle infinito, problema irresoluble y problema indecidible

Un bucle infinito (infinite loop) es una secuencia de instrucciones de computadora que se repite para siempre.

Un problema irresoluble (unsolvable problem) es aquel para el que nunca se puede escribir un algoritmo para encontrar la solución.

Un problema indecidible (undecidable problem) es aquel para el que nunca se puede escribir un algoritmo que siempre dé una decisión verdadero/falso correcta para cada valor de entrada. Los problemas indecidibles son una subcategoría de problemas irresolubles que incluyen solo problemas que deberían tener una respuesta sí/no (como: ¿mi código tiene un error?).