Main Content

Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Escribir evaluaciones para soluciones de estudiantes basadas en funciones

Para soluciones basadas en funciones, puede escribir código de MATLAB® utilizando las funciones incorporadas que comprueban la igualdad de las variables y la presencia de palabras clave o de funciones:

  • assessVariableEqual: comprueba si una variable en la solución de su estudiante es igual a un valor especificado dentro de la tolerancia.

  • assessFunctionPresence: comprueba la presencia de funciones específicas o palabras clave en la solución de su estudiante.

  • assessFunctionAbsence: comprueba que determinadas funciones o palabras clave no están presentes en la solución de su estudiante.

Modelo de ejecución

  • Cada modelo que escribe para una solución basada en funciones suele incluir una llamada a la solución de su estudiante. Puede proporcionar entradas a la función y evaluar cualquier valor devuelto. También puede llamar a la solución de referencia para comparar su salida con la salida de la solución de su estudiante.

  • Cada evaluación se ejecuta de manera secuencial e independiente de las otras evaluaciones. Si una evaluación no es superada, las evaluaciones posteriores se siguen ejecutando.

  • Las variables creadas en una evaluación no están disponibles en la siguiente. Defina todas las variables requeridas en cada evaluación.

  • Si el código finaliza sin errores, el resultado de la evaluación se muestra como superado. De lo contrario, los resultados de las evaluaciones se muestran como no superados.

    Si la prueba es una prueba previa, su estudiante puede ver información sobre la prueba de evaluación haciendo clic en la flecha a la izquierda del nombre de la prueba, independientemente de si la prueba está superada o no.

  • Cuando utilice assessVariableEqual con problemas basados en funciones, utilice el mismo nombre para cualquier variable de salida creada cuando llame a la función de su estudiante, igual que lo utilizaría en la declaración de función de su estudiante. Los mensajes con comentarios predeterminados hacen referencia al nombre de la variable de salida creado en la evaluación y es posible que su estudiante no reconozca la variable de salida si no coincide con la declaración.

Llamar a la solución de su estudiante en la evaluación

Para evaluar una función que su estudiante envía como una solución, cada evaluación llama a la solución de su estudiante.

Una evaluación de ejemplo para una función triangleArea podría ser:

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = 7.5;
assessVariableEqual('area',areaCorrect)

Cuando su estudiante hace clic en Enviar, esta evaluación llama a la versión de triangleArea de su estudiante.

Utilizar una solución de referencia para evaluar la solución de su estudiante

Para comparar la solución de su estudiante con la solución de referencia, llame a ambas funciones.

  • Para llamar a la solución de su estudiante, utilice la sintaxis myFunction.

  • Para llamar a la solución de referencia, utilice la sintaxis reference.myFunction.

En ambos casos, reemplace myFunction con el nombre de la función que está utilizando en la plantilla de la solución.

Una evaluación de ejemplo para una función triangleArea podría ser:

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = reference.triangleArea(b,h);
assessVariableEqual('area',areaCorrect)

Ejemplos

Invertir un vector

Su estudiante debe escribir una función denominada flipIt que invierte un vector de entrada, revirtiendo el orden de los valores del vector. Su estudiante no debería utilizar la función flip.

Solución de referencia

function w = flipIt(v)
    w = v(end:-1:1);
end

Pruebas de evaluación.  Llame a la solución de su estudiante con un vector de entrada [1 2 3 4]. Compruebe que la solución de su estudiante coincide con la solución de referencia y que evita utilizar flip:

v = [1 2 3 4];
w = flipIt(v)
w_correct = reference.flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Llame a la solución de su estudiante de nuevo, esta vez con vector de entrada [4]:

v = [4];
w = flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

Temas relacionados