Come possiamo valutare le prestazioni degli studenti nei corsi di scienze computazionali?


10

Come qualcuno che deve insegnare corsi di scienze computazionali, mi trovo di fronte alla domanda secolare: come posso valutare la capacità degli studenti di apprendere una materia che dipende da applicazioni che sono difficili da testare con metodi di test "standard" ( esami scritti o orali)? Parte del corso dipende dalla comprensione della teoria e dei metodi a livello astratto, e per questo, mi piacerebbe continuare a usare una prova scritta per questi concetti. Tuttavia, testare la comprensione dell'uso pratico di questi metodi richiede un approccio diverso

Date le sfide naturali associate non solo alla proliferazione di piattaforme diverse (per MATLAB, Modelica, Mathematica e altre lingue) ma anche alla connettività Internet e alla sicurezza dei test, sarei interessato a metodi nuovi o originali per valutare praticamente la comprensione degli studenti metodi numerici. (Le funzionalità che promuovono la sicurezza dei test sono particolarmente desiderabili.)

EDIT: dovrei anche menzionare che la classe che sto insegnando è un corso di livello introduttivo, quindi gli studenti hanno una base di conoscenza relativamente piccola su cui lavorare.


1
Consentire loro di lavorare su un (mini?) Progetto di loro scelta, modificando / rivedendo criticamente i codici open source come PLASMA / MAGMA / LAPACK / ScaLAPACK? Sto parlando dal punto di vista di uno studente.
Inquiry

Grazie per il commento - mi ha ricordato che ho dimenticato di menzionare che si tratta di un corso introduttivo, quindi non dovrei introdurre concetti come la programmazione parallela e l'ottimizzazione delle prestazioni - solo un focus sui metodi numerici di base e sugli algoritmi.
Aeismail

Risposte:


5

Ecco cosa ho visto come studente e assistente di insegnamento:

  • I progetti in termini di programmazione e metodi numerici sono stati positivi in ​​termini di unione di molti concetti e costringendo me e altri studenti a essere creativi. Tuttavia, con progetti computazionali, probabilmente vale la pena dedicare un po 'di tempo alla carpenteria softwareabilità in modo che gli studenti scrivano codice più organizzato. Quando ero un laureando e non sapevo niente di meglio, avevo tagliato e incolla il codice degli spaghetti che probabilmente era l'inferno per i selezionatori. Potresti voler evitare quel destino insegnando loro alcune buone pratiche. Inoltre, se dai a tutti progetti abbastanza simili (ad esempio, calcolare tutte le proprietà termodinamiche in un determinato elenco per un insieme di composti era un progetto lungo un periodo in una classe di termodinamica universitaria; in seguito, è stato un compito a casa di una settimana nella termodinamica dei laureati), in pratica si aspettano che si copino praticamente l'uno dall'altro e si debugano reciprocamente il codice.
  • I compiti a casa , settimanali o bisettimanali, erano il miglior metodo a breve termine per l'apprendimento di nuovi metodi e concetti. È più facile programmare qualcosa, data una settimana per farlo. Ancora una volta, aspettati che si copiano più o meno l'un l'altro e eseguano il debug del codice reciproco.
  • I quiz non erano davvero validi per nient'altro che un paio di metodi brevi o domande di analisi. Non è possibile eseguire alcuna programmazione sui quiz, ma ci dovrebbe essere anche una minore collaborazione, intendo, la frode . Puoi anche testare la codifica su carta e matita nei quiz, il che è buono per i concetti di base, ma probabilmente ingiusto per i concetti avanzati o qualsiasi cosa che richieda comandi molto specializzati, perché gli studenti avrebbero accesso alla documentazione se scrivessero su un computer.
  • Gli esami erano più o meno gli stessi dei quiz, se venivano impartiti in classe, ma più lunghi e più difficili. Ho avuto lezioni per fare esami da portare a casa nel lavoro computazionale, nel qual caso puoi porre domande più orientate al calcolo e aspettarti che programmino per risolvere i problemi. Tuttavia, gli esami da portare a casa hanno lo stesso tipo di problemi dei compiti a casa e dei progetti di tipo universitario, nel qual caso, probabilmente è meglio se si stabilisce una politica di collaborazione più draconiana per gli esami da portare a casa. Ho fatto degli ottimi esami da portare a casa, quindi penso che possano funzionare bene se l'istruttore è sufficientemente creativo.
  • I Computational Labs sono meno efficaci degli analoghi laboratori umidi delle lezioni di scienze, perché con un computer di fronte a te è molto più facile scherzare. C'erano alcuni ragazzi nelle mie classi che passavano sempre del tempo nei laboratori di calcolo giocando a poker online. Questi laboratori sono probabilmente più efficaci come dimostrazioni o come lezioni supervisionate sulle abilità pratiche nella scienza computazionale se hai abbastanza assistenti di insegnamento per vagare nel laboratorio e assicurarti che le persone ricevano aiuto e nessuno si stia cacciando online.

5

Ho tenuto lezioni, insegnato o assistito in una varietà di corsi relativi ai metodi numerici e computazionali, dal livello universitario di livello superiore al livello avanzato di laurea. Ecco gli elementi che ho trovato utili come istruttore:

Progetti di ricerca

Per le classi avanzate, un progetto di ricerca (che comprende la ricerca numerica, di solito un po 'di sviluppo di software e una scrittura) è un modo molto carino per gli studenti di legare la loro ricerca con i loro corsi accademici. Penso che un progetto dovrebbe essere obbligatorio nei corsi di laurea, ma per gli studenti universitari sono meglio sostituiti con un lavoro più diretto.

Programmazione di compiti a casa

Il nucleo di ogni classe di scienze computazionali sono i compiti di programmazione accessibili. Per gli studenti senza esperienza di programmazione è necessario eseguire il backup dei compiti con alcune sessioni introduttive nell'ambiente di programmazione e idealmente una sorta di "help room" offerta dal dipartimento o da un'organizzazione studentesca come SIAM. Consentire più framework e linguaggi di programmazione può essere difficile, ho accettato programmi scritti in qualsiasi lingua ma supportato solo un ambiente, di solito disponibile gratuitamente nei laboratori informatici dell'Università (sistema operativo, editor, shell, interprete, ecc ...)

quiz

Mi piacciono molto i brevi quiz in classe da 10-15 minuti una volta alla settimana o a settimane alterne. È un buon feedback a due vie: gli studenti vedono come stanno andando contro le mie aspettative e l'uno contro l'altro, e vedo quali concetti colpiscono e mancano. Questo stile di valutazione non è molto comunemente usato in Europa e penso che sia un peccato.

esami

Gli esami sono carta e matita, con analisi di algoritmi, frammenti di codice e tecniche matematiche. Non ho mai partecipato a un esame di laboratorio informatico, né come studente né come istruttore / valutatore. Penso che la cosa più vicina che ho visto sia richiedere a uno studente di dimostrare i compiti o il progetto, nonché di rispondere a domande su progettazione o implementazione.

Il vincolo della disonestà

Sia come studente che come istruttore, ho visto abbastanza disonestà nel sistema accademico da evitare di fare affidamento sull'onore per oltre il 50% del voto di uno studente. Ciò significa che valutazioni come progetti e compiti a casa, in cui l'accesso a risorse esterne potrebbero portare a disonestà accademica, non contribuiscono a oltre il 50% del voto del corso.


Penso che il punto finale sia particolarmente importante: avrò ancora un esame scritto in classe per coprire i punti che sono verificabili in quel formato. Saranno almeno i due terzi del voto, credo. Farò anche in modo che ci sia una scrittura che accompagna il progetto fuori classe, in modo che gli studenti debbano trascorrere almeno un po 'di tempo impegnandosi con il materiale. Potrei anche fare un po 'di randomizzazione degli input e cambiare il problema per ridurre la tentazione e la capacità di imbrogliare.
Aeismail

@AronAhmadia: i quiz settimanali sono standard nelle università tedesche di tutti i dipartimenti nonostante la loro completa indipendenza.
Deathbreath

@aeismail: gli americani hanno una comprensione molto ristretta (al limite del ridicolo in alcuni casi) del plagio. Il primo anno potresti essere in grado di impedire agli studenti di collaborare, ma negli anni successivi la Fachschaft avrà catalogato i tuoi compiti e diventerà progressivamente più difficile porre problemi che non sono stati risolti in misura sostanziale negli anni precedenti.
Deathbreath

@Deathbreath: (ad Aron) I quiz settimanali non sono standard qui ad Aquisgrana, almeno non nell'ingegneria meccanica. Non so nemmeno se mi è permesso dare loro. (Non che vorrei.)
Eismail

@Deathbreath: (per me) Se gli studenti usano gli esami passati per imparare la metodologia, sono felice di lasciarli usare. Sono più preoccupato che imparino come usare gli strumenti. Detto questo, sto cambiando il contenuto del corso di anno in anno, quindi chiunque ottenga un punteggio perfetto nella vecchia roba e un uovo d'oca nella nuova roba probabilmente sospetta in qualche modo di fare troppo affidamento sulla Fachschaft .
Aeismail

5

Alcune delle altre risposte suggeriscono progetti personalizzati. Lo sto facendo nella mia classe di software agli elementi finiti ed è molto divertente; Credo che sia anche molto istruttivo per gli studenti. Allo stesso tempo, richiede anche molto tempo: l'ultima volta ho avuto 18 studenti ed è stato praticamente un lavoro a tempo pieno per l'intero semestre a supervisionare questi progetti. Quindi si deve avere una classe abbastanza piccola per farlo funzionare con successo.


Per la cronaca, ho scritto le mie esperienze al riguardo nella pubblicazione n. 39 su math.tamu.edu/~bangerth/publications.html#x-reviewed
Wolfgang Bangerth,

2

Secondo la mia sincera opinione, penso che il test finale sia quello di applicare le tue conoscenze in un territorio sconosciuto. Proporrei progetti applicati progettati per testare la capacità di uno studente di selezionare modelli efficaci, discretizzazione, metodi di approssimazione / risoluzione, parallelismo sfruttabile, stime di errore e analisi numerica, nonché metodi di visualizzazione per descrivere un particolare fenomeno fisico di interesse computazionale. Vorrei andare oltre per chiedere agli studenti di giustificare ogni scelta in base alla dimensione del problema / accuratezza prevista. La chiave è sapere quali metodi sono appropriati sotto i vincoli dei fenomeni in esame. Gli studenti possono scegliere di selezionare un fenomeno di loro scelta. Ma se vuoi renderlo ancora più stimolante, assegna a ogni studente un progetto computazionale in un campo non correlato alla sua ricerca di tesi.


I miei studenti sono studenti universitari del secondo anno, quindi sono molto lontani dall'avere un campo della loro ricerca di tesi. :-) Ma il pensiero è sicuramente apprezzato.
Aeismail
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.