Saltar al contenido

Nombre: ______________________________

Fecha: ____________________

Semana 6

Depuración y confiabilidad

Averigua por qué un robot se porta mal (por lo mecánico, por la programación o por los sensores) y demuestra que funciona una y otra vez.

70 a 85 minutos

Ideas clave

Qué es depurar en realidad

Cada vez que ejecutas un programa tienes dos resultados en la cabeza: el esperado (lo que DEBERÍA pasar) y el real (lo que SÍ pasó). Cuando coinciden, el robot está funcionando. Cuando no, hay un error, y depurar es el trabajo detectivesco de averiguar por qué difieren.

Las tres familias de errores

Los errores vienen en tres familias, y nombrar la familia ya es media solución. Un error mecánico es un problema físico del cuerpo del robot: una rueda floja, un cable arrastrándose por el piso, un engrane que patina. Un error de programación es una equivocación en las instrucciones: un número equivocado, un bloque faltante o bloques en el orden incorrecto. Un error de sensor es un problema al percibir: una lectura mala, un umbral puesto en el valor equivocado o un sensor que necesita calibrarse.

Variables y contadores: guardar y llevar la cuenta de valores

A veces un programa necesita recordar un número. Una variable es una cajita con nombre que guarda un valor, y ese valor puede cambiar mientras el programa se ejecuta. Un contador es una variable especial que se usa para contar: empieza en cero y sube de uno en uno cada vez que pasa algo, como cada vez que el robot esquiva un obstáculo.

Confiabilidad: demostrarla con ensayos repetidos

Un robot que funciona una vez tal vez solo tuvo suerte. Confiabilidad significa hacer el mismo trabajo correctamente una y otra vez, y no puedes afirmarlo sin pruebas. La prueba es un ensayo de confiabilidad: ejecutas la misma tarea varias veces, con el mismo caso de prueba en cada corrida, y anotas el resultado esperado y el real en cada una.

Palabras que hay que saber

Depuración:
El trabajo de averiguar por qué el resultado real de un robot es distinto del resultado esperado, y luego corregirlo.
Variable:
Un lugar con nombre dentro de un programa que guarda un valor que puede cambiar mientras el programa se ejecuta.
Contador:
Una variable que se usa para contar: empieza en un número y sube de uno en uno cada vez que pasa algo.
Valor guardado:
Un número o un dato que un programa conserva en una variable para poder usarlo o cambiarlo después.
Valor de calibración:
Un número que mides y guardas para que las lecturas de un sensor signifiquen lo correcto, como el nivel de luz de un piso blanco.
Resultado esperado:
Lo que DEBERÍA pasar cuando el programa funciona bien, o sea lo que predices antes de probar.
Resultado real:
Lo que SÍ pasó cuando de verdad ejecutaste el robot, y que observas y anotas.
Caso de prueba:
Una situación específica que preparas a propósito para probar, como "una pared a exactamente 15 cm".
Error mecánico:
Un problema físico del cuerpo del robot, como una rueda floja, un cable que se arrastra o un engrane atascado.
Error de programación:
Una equivocación en las instrucciones: un bloque o un número equivocado, faltante o fuera de orden.
Error de sensor:
Un problema al percibir: una lectura mala, un umbral equivocado o un sensor que necesita calibrarse.
Confiabilidad:
Qué tan bien hace un robot el mismo trabajo correctamente una y otra vez, demostrado con ensayos repetidos.

Tu actividad

Misiones de Detective de errores

Meta: Diagnosticar un robot que se porta mal: decidir si el error es mecánico, de programación o de sensor, y luego corregirlo.

  1. En cada misión, primero escribe el resultado esperado y el resultado real. La diferencia entre los dos es el síntoma que estás investigando.
  2. Hazte la pregunta de las tres familias: ¿esto es físico (mecánico), de instrucciones (programación) o un problema al percibir (sensor)? Usa el síntoma para adivinar antes de tocar nada.
  3. Cambia UNA sola cosa a la vez, vuelve a ejecutar y anota si el resultado real ya coincide con el esperado.

Escribe qué pasó:

Ensayo de confiabilidad de tres corridas

Meta: Demostrar que un robot es confiable ejecutando la misma tarea tres veces y comparando el resultado esperado con el real en cada corrida.

  1. Elige una tarea bien definida y un caso de prueba (exactamente la misma preparación en cada corrida). Escribe el resultado esperado una sola vez: es el mismo para las tres corridas.
  2. Ejecuta la tarea tres veces SIN cambiar nada entre corrida y corrida. Anota el resultado real y marca ¿Coincide? (sí o no) en cada una.
  3. Tres coincidencias significan confiable para ese caso de prueba. Cualquier diferencia es un error que hay que cazar con los pasos del Detective de errores.

Escribe qué pasó:

Contador de obstáculos

Meta: Usar una variable como contador que suma uno cada vez que el robot esquiva un obstáculo, y luego leer el valor guardado.

  1. Pon una variable contador en 0 al principio. Cada vez que el robot detecte y esquive un obstáculo, súmale 1 al contador.
  2. Ese es un valor guardado: el contador recuerda cuántos obstáculos se atendieron, y puedes revisarlo al final.
  3. Predice cuántos obstáculos hay en la pista y luego compara tu predicción con el valor final del contador.

Escribe qué pasó:

Predice

Escribe tu conjetura antes de probar.

Antes de tu ensayo de confiabilidad de tres corridas, predice cuál corrida (si es que alguna) no va a coincidir con el resultado esperado, y por qué.

Mira el síntoma del Detective de errores antes de tocar el robot: predice a qué familia pertenece el error, si mecánica, de programación o de sensor.

Para el contador de obstáculos, predice el valor guardado final antes de recorrer la pista.

Prueba y registra

Prueba de confiabilidad de tres corridas

Elige una tarea y un caso de prueba. Escribe el resultado esperado una sola vez, y luego ejecuta la misma tarea tres veces sin cambiar nada. Anota el resultado real y si coincidió en cada corrida.

Registra: Si el resultado real coincidió con el esperado en cada una de las tres corridas

RunResultado esperadoResultado real¿Coincide? (S/N)
    
    
    

Registro de diagnóstico de errores

En cada misión de depuración, anota el síntoma, la familia de error que sospechas, el único cambio que probaste y si eso corrigió la diferencia.

Registra: Qué familia de error era la responsable y si un solo cambio dirigido la corrigió

SíntomaFamilia sospechosaÚnico cambio probado¿Corregido? (S/N)
    
    
    

Comprobación de conocimientos

Responde cada pregunta. En las de opciones, encierra en un círculo la mejor respuesta.

  1. Diagnostica el tipo de error más probable.

    Un robot seguidor de línea funcionaba ayer. Hoy se pasa de largo la línea todas las veces, aunque el código no ha cambiado. Hoy el cuarto está mucho más iluminado.

    • A.Un error de programación
    • B.Un error de sensor que necesita recalibración
    • C.Un error mecánico
    • D.El robot ya se descompuso para siempre
  2. ¿Qué es depurar?

    • A.Hacer que el robot vaya más rápido
    • B.Averiguar por qué el resultado real es distinto del esperado, y luego corregirlo
    • C.Borrar todo el programa y empezar de cero
    • D.Ponerle más sensores al robot
  3. Un robot iba derecho la semana pasada. Su programa no ha cambiado, pero ahora se curva hacia un lado en cada corrida. ¿Qué familia de error es la más probable?

    • A.Un error de programación
    • B.Un error de sensor
    • C.Un error mecánico
    • D.No hay ningún error
  4. ¿Qué es un contador?

    • A.Un sensor que mide distancias
    • B.Una variable que empieza en un número y sube de uno en uno cada vez que pasa algo
    • C.Un bloque que detiene al robot
    • D.El nivel de batería del robot
  5. En un ensayo de confiabilidad, ¿qué es el "resultado esperado"?

    • A.Lo que pasó en realidad cuando ejecutaste el robot
    • B.Lo que DEBERÍA pasar si el programa funciona bien
    • C.La cantidad de sensores que tiene el robot
    • D.El tiempo más rápido posible
  6. ¿Por qué se ejecuta la misma tarea tres veces en un ensayo de confiabilidad?

    • A.Para demostrar que el robot funciona una y otra vez, y no solo una vez por suerte
    • B.Porque las dos primeras corridas son solo de práctica
    • C.Para acabarse la batería más rápido
    • D.Porque una sola corrida va contra las reglas

Reflexiona

¿Qué cambiaste por haberlo probado, en lugar de por adivinar?

¿Qué te hizo saber sobre tu robot ejecutar la tarea tres veces, comparado con ejecutarla una sola vez?

¿Por qué cambiar una sola cosa a la vez hace más fácil depurar? ¿Qué te salió mal (o bien) cuando lo intentaste?