Soluzioni dei test da parte degli studenti
Quando si creano elementi di valutazione in MATLAB® Grader™, definire dei test che valutino se la soluzione dello studente soddisfa i criteri di riuscita.
Definizione dei test
Per definire i test, è possibile utilizzare i test predefiniti disponibili nell'elenco Test Type o scrivere il proprio codice MATLAB. Le opzioni di test predefinite comprendono:
Variable Equals Reference Solution: verifica l'esistenza, il tipo di dati, la dimensione e il valore di una variabile. Questa opzione è disponibile solo nell'elenco Test Type per gli elementi di valutazione dello script. Viene applicata una tolleranza predefinita di1e-4ai valori numerici.Function or Keyword is Present: verifica la presenza di funzioni o parole chiave specificate.Function or Keyword is Absent: verifica che le soluzioni dello studente non comprendano funzioni o parole chiave specificate.
Ad esempio, se si desidera che gli studenti utilizzino la funzione taylor per calcolare l'approssimazione della serie di Taylor di una data funzione, specificare queste opzioni:
Nell'elenco Test Type, selezionare
Function or Keyword is Present.Specificare la funzione
taylorcome funzione che lo studente deve utilizzare.Opzionalmente, specificare il feedback integrativo che lo studente riceve se non utilizza la funzione prevista.

Per un elemento di valutazione dello script, è possibile valutare una variabile utilizzando il tipo di test predefinito Variable Equals Reference Solution. Ad esempio, valutare se una variabile è della dimensione corretta e se presenta i valori e il tipo di dati previsti confrontandola con la variabile con lo stesso nome nella soluzione di riferimento.

È inoltre possibile scrivere codice MATLAB selezionando l'opzione MATLAB Code nell'elenco Test Type. Seguire queste linee guida:
Valutazione della correttezza: è possibile utilizzare funzioni che corrispondono ai tipi di test predefiniti, ossia
assessVariableEqual,assessFunctionPresenceeassessFunctionAbsence. In alternativa, è possibile scrivere un test personalizzato che restituisca un errore per i risultati non corretti.Nomi della variabile negli elementi di valutazione dello script: per fare riferimento alle variabili nella soluzione di riferimento, aggiungere il prefisso
referenceVariables, ad esempioreferenceVariables.. Per fare riferimento alle variabili dello studente, utilizzare il nome della variabile.myvarNomi della funzione negli elementi di valutazione della funzione: per richiamare la funzione nella soluzione di riferimento, aggiungere il prefisso
reference, ad esempioreference.. Per richiamare la soluzione dello studente, utilizzare il nome della funzione.myfunctionAmbito della variabile: le variabili create all'interno del codice del test esistono solo all'interno del test di valutazione.
Ad esempio, si supponga che uno studente debba calcolare un valore per la variabile X che può avere una variazione superiore alla tolleranza predefinita. Per confrontare il valore della soluzione dello studente con il valore della soluzione di riferimento, specificare le variabili e la tolleranza richiamando la funzione assessVariableEqual.

Per testare gli elementi di valutazione della funzione, richiamare le funzioni dello studente e quelle di riferimento con un input di test e confrontare gli output. Ad esempio, questo codice verifica che una funzione dello studente denominata tempF2C converta correttamente una temperatura da Fahrenheit a Celsius.
temp = 78;
tempC = tempF2C(temp);
expectedTemp = reference.tempF2C(temp);
assessVariableEqual('tempC',expectedTemp);
Suggerimento
Il messaggio di errore predefinito della funzione assessVariableEqual comprende il nome della variabile testata, come X e tempC negli esempi precedenti. Per gli elementi di valutazione della funzione, questa variabile si trova nello script del test di valutazione e non nel codice dello studente. Utilizzare nomi significativi che lo studente possa riconoscere, come ad esempio un output nella dichiarazione della funzione.
Un singolo test di valutazione può includere più test. Ad esempio, questo codice verifica che uno studente implementi una funzione denominata normsinc che gestisce correttamente sia i valori pari a zero che i valori diversi da zero. Il caso zero comprende un ulteriore feedback per gli studenti che utilizzano l'argomento nome-valore Feedback nella funzione 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.');
Assegnazione del credito parziale
Per impostazione predefinita, il software considera una soluzione corretta se tutti i test vengono superati e la considera non corretta se uno qualsiasi dei test non viene superato. Per assegnare un credito parziale, attribuire pesi relativi ai test modificando Scoring Method in Weighted. MATLAB Grader calcola la percentuale per ogni test in base al totale dei pesi relativi, in modo da poter definire i pesi come punti o percentuali.
Ad esempio, impostando il peso relativo di tutti i test su 1, si assegna lo stesso peso a ciascun test. Impostando alcuni pesi su 2 si assegna a quei test un peso doppio rispetto ai test con un peso impostato su 1.

In alternativa, è possibile inserire le percentuali per i pesi.

Specifica dei pretest
I pretest sono test di valutazione che gli studenti possono eseguire per determinare se la loro soluzione è indirizzata sulla strada giusta prima di inviarla per la valutazione. Si consideri la possibilità di utilizzare un pretest per guidare gli studenti quando più approcci sono corretti ma il test richiede un approccio particolare o quando si imposta un limite di presentazione per il compito.
I pretest si differenziano dai normali test di valutazione per i seguenti aspetti:
I risultati dei pretest non vengono registrati nel registro dei voti prima della presentazione.
L'esecuzione dei pretest non rientra nel limite delle presentazioni.
Gli studenti possono visualizzare il codice e i dettagli del pretest, compreso l'output dei test di codice MATLAB, indipendentemente dal fatto che il test sia stato superato o meno. Assicurarsi che un pretest non includa la soluzione del problema proposto nell'elemento di valutazione.
Come i test di valutazione normali, i pretest vengono eseguiti quando gli studenti inviano le loro soluzioni e contribuiscono al voto finale.
Ad esempio, si supponga che gli studenti debbano definire un sistema di equazioni lineari che può essere organizzato in modi diversi. Definire un pretest per assicurarsi che la soluzione dello studente presenti l'ordine e i coefficienti previsti.

Se il test non viene superato, gli studenti visualizzano un errore e possono quindi modificare la loro soluzione.

Controllo della visualizzazione degli errori in un elemento di valutazione dello script
In un elemento di valutazione dello script, un errore iniziale può comportare errori successivi. È possibile incoraggiare lo studente a concentrarsi prima sull'errore iniziale.
Selezionando l'opzione Only Show Feedback for Initial Error, viene mostrato un feedback dettagliato per l'errore iniziale, ma vengono nascosti i dettagli per gli errori successivi, per impostazione predefinita. Lo studente può visualizzare questo ulteriore feedback facendo clic su Show Feedback.
