Contenu principal

Tester les solutions des apprenants

Lorsque vous créez des éléments d’évaluation dans MATLAB® Grader™, définissez des tests qui évaluent si la solution de l’apprenant répond à vos critères de réussite.

Définir des tests

Pour définir des tests, vous pouvez utiliser les tests prédéfinis disponibles dans la liste Test Type ou bien écrire votre propre code MATLAB. Les options de test prédéfini sont les suivantes :

  • Variable Equals Reference Solution – Vérifier l’existence, le type de données, la taille et la valeur d’une variable. Cette option est uniquement disponible dans la liste Test Type des éléments d’évaluation de type script. Une tolérance par défaut de 1e-4 s’applique aux valeurs numériques.

  • Function or Keyword is Present – Vérifier la présence des fonctions ou mots-clés spécifiés.

  • Function or Keyword is Absent – Vérifier que les solutions des apprenants ne contiennent pas les fonctions ou mots-clés spécifiés.

Par exemple, si vous voulez que les apprenants utilisent la fonction taylor pour calculer l’approximation par série de Taylor d’une fonction donnée, spécifiez les options suivantes :

  • Dans la liste Test Type, sélectionnez Function or Keyword is Present.

  • Spécifiez la fonction taylor comme étant celle que l’apprenant doit utiliser.

  • Si vous le souhaitez, indiquez des commentaires supplémentaires à afficher pour l’apprenant s’il n’utilise pas la fonction attendue.

Test options shows boxes for the title, test type, functions and keywords, and feedback. The test type option Function or Keyword Is Present is selected.

Pour un élément d’évaluation de type script, vous pouvez évaluer une variable avec le type de test prédéfini Variable Equals Reference Solution. Par exemple, évaluez si une variable est de la bonne taille et contient les valeurs et le type de données attendus en la comparant à la variable du même nom dans votre solution de référence.

Test options shows boxes for the title, test type, variable name to compare, functions and keywords, and feedback. The test type option Variable Equals Reference Solution is selected and V is specified as the variable name to compare.

Vous pouvez également écrire du code MATLAB en sélectionnant l’option MATLAB Code dans la liste Test Type. Procédez comme suit :

  • Évaluer l’exactitude – Vous pouvez utiliser des fonctions correspondant aux types de tests prédéfinis : assessVariableEqual, assessFunctionPresence et assessFunctionAbsence. Vous pouvez également écrire un test personnalisé qui renvoie une erreur en cas de résultat incorrect.

  • Noms de variables dans les éléments d’évaluation de type script – Pour faire référence à des variables de votre solution de référence, ajoutez le préfixe referenceVariables, par exemple referenceVariables.myvar. Pour faire référence aux variables de l’apprenant, utilisez le nom de la variable.

  • Noms de fonctions dans les éléments d’évaluation de type fonction – Pour appeler la fonction de votre solution de référence, ajoutez le préfixe reference, par exemple reference.myfunction. Pour appeler la fonction de l’apprenant, utilisez le nom de la fonction.

  • Portée des variables – Les variables que vous créez dans le code d’un test d’évaluation existent uniquement dans ce test.

Par exemple, supposons qu’un apprenant doive calculer la valeur d’une variable X pouvant varier au-delà de la tolérance par défaut. Pour comparer la valeur de la solution de l’apprenant à celle de votre solution de référence, spécifiez les variables et la tolérance en appelant la fonction assessVariableEqual.

The MATLAB code defines X_expected as referenceVariables.X. The code then calls the assessVariableEqual function with arguments 'X', X_expected, and AbsoluteTolerance=1e-2.

Pour tester des éléments d’évaluation de type fonction, appelez les fonctions de l’apprenant et de référence, avec une entrée test, puis comparez les sorties. Par exemple, le code suivant vérifie que la fonction nommée tempF2C d’un apprenant convertit correctement une température de degrés Fahrenheit à Celsius.

temp = 78;
tempC = tempF2C(temp);
expectedTemp = reference.tempF2C(temp); 
assessVariableEqual('tempC',expectedTemp);

Conseil

Le message d’erreur par défaut généré par la fonction assessVariableEqual mentionne le nom de la variable testée, à savoir X et tempC dans les exemples précédents. Pour les éléments d’évaluation de type fonction, cette variable se trouve dans le script du test d’évaluation et non dans le code de l’apprenant. Utilisez des noms de variables pertinents que l’apprenant peut reconnaître, par exemple une sortie figurant dans la déclaration de fonction.

Un même test d’évaluation peut contenir plusieurs tests. Par exemple, le code suivant vérifie que l’apprenant implémente une fonction nommée normsinc qui gère correctement les valeurs nulles et non nulles. Le cas nul comprend des commentaires supplémentaires provenant de l’argument nom-valeur Feedback de la fonction assessVariableEqual.

nonzero = 0.25*randi([1 3]);
y_nonzero = normsinc(nonzero);
expected_y_nonzero = reference.normsinc(nonzero); 
assessVariableEqual('y_nonzero',expected_y_nonzero);

y_zero = normsinc(0);
expected_y_zero = reference.normsinc(0); 
assessVariableEqual('y_zero',expected_y_zero, ...
   Feedback='Inputs of 0 should return 1. Consider an if-else statement or logical indexing.');

Accorder un crédit partiel

Par défaut, le software considère une solution comme correcte si tous les tests réussissent et comme incorrecte si l’un des tests échoue. Pour accorder un crédit partiel, attribuez des pondérations relatives aux tests en définissant Scoring Method à Weighted. MATLAB Grader calcule le pourcentage pour chaque test en fonction du total des pondérations relatives. Vous pouvez donc définir les pondérations sous forme de points ou de pourcentages.

Par exemple, si vous définissez la pondération relative à 1 pour tous les tests, chacun d’eux a le même poids. Si vous définissez la pondération à 2 pour certains tests, ceux-ci ont deux fois plus de poids que ceux définis à 1.

Four sample tests, two with a relative weight of 1 and two with a relative weight of 2. The corresponding percentages are 17% and 33%, for a total of 100%.

Il est également possible de saisir des pourcentages de pondération.

The same four sample tests show relative weights of 10, 15, 15, and 60 for a total of 100%

Spécifier des prétests

Les prétests sont des tests d’évaluation que les apprenants peuvent exécuter pour déterminer si leur solution est en bonne voie avant de la soumettre pour notation. Vous pouvez envisager d’utiliser un prétest pour guider les apprenants lorsque plusieurs approches sont correctes mais que votre test nécessite une approche particulière ou lorsque vous définissez un nombre limite de soumissions pour l’exercice.

Les prétests sont différents des tests d’évaluation normaux par les aspects suivants :

  • Les résultats des prétests ne sont pas enregistrés dans le carnet de notes avant la soumission.

  • L’exécution des prétests n’est pas comptabilisée dans la limite du nombre de soumissions.

  • Les apprenants peuvent afficher le code et les détails du prétest, y compris la sortie des tests en code MATLAB, que le test soit réussi ou non. Assurez-vous que le prétest ne contient pas la solution de l’élément d’évaluation.

Tout comme les tests d’évaluation normaux, les prétests s’exécutent quand les apprenants soumettent leurs solutions et ils contribuent à la note finale.

Par exemple, supposons que les apprenants doivent définir un système d’équations linéaires pouvant être organisées de différentes façons. Définissez un prétest pour vous assurer que la solution de l’apprenant respecte l’ordre prévu et contient les coefficients attendus.

The Pretest check box is selected at the bottom of the test details.

Si le test échoue, les apprenants voient un message d’erreur et peuvent modifier leur solution.

Pretest assessment results show an error message "Variable V has an incorrect value."

Contrôler l’affichage des erreurs pour un élément d’évaluation de type script

Dans un élément d’évaluation de type script, des erreurs peuvent découler d’une erreur initiale. Vous pouvez inciter l’apprenant à se concentrer d’abord sur l’erreur initiale.

Si vous sélectionnez l’option Only Show Feedback for Initial Error, des commentaires détaillés s’affichent pour l’erreur initiale mais les détails sont cachés par défaut pour les erreurs qui en découlent. L’apprenant peut afficher ces commentaires supplémentaires en cliquant sur Show Feedback.

Assessment test results show that 1 of 4 tests passed. An assessment test and error message are shown for the failed second test, and linked text "Show Feedback" appears above the hidden details of the failed third and fourth tests.

Voir aussi

Rubriques