Post mortem corso rust 2023
Riflessioni su come è stato svolto il corso, criticità e come migliorare per un eventuale versione successiva.
Queste sono cose che dovremmo considerare per migliorare, per chi legge questa issue, commentate se sono punti validi, o se avete altre criticità.
-
Una cosa di cui mi sono accorto, soprattutto tra il secondo e terzo giorno, è che spesso venivano introdotti argomenti che sarebbero stati approfonditi successivamente, per esempio nel secondo giorno era troppo implicito il significato di cosa erano i lifetime senza effettivamente spiegare cosa sono e perchè sono necessari (per via di RAII), o nella terza giornata l'uso delle derive macro -
Questo si collega con il punto precedente, abbiamo seguito troppo la struttura del libro ufficiale. Il motivo per cui questo è un male è perchè in un libro (soprattutto se online) puoi saltare avanti e indietro tra gli argomenti, per esempio nell'introduzione ai lifetime viene linkata la pagina dove se ne parla in maniera più approfondita, ma questo non lo possiamo fare per come è strutturato il corso. Urge quindi rivedere come è strutturato il corso. - La prima giornata penso vada più o meno bene, ma sposterei gli array e le tuple qui, giusto per finire i tipi base e ribilanciare meglio la durata delle giornate, la prima giornata ha relativamente poco e se non ricordo male è durata solo 1 ora. Ma andrebbe confermato
- La seconda giornata la farei a tema gestione della memoria, ripasso di cosa è heap e stack, ripasso di come si alloca memoria in C messo a confronto con
Box
(và spiegato cosa è, poi dopo, quando si parla di smart pointers, si dice "Ah comunqueBox
è uno smart pointer") eVec
, come si dealloca memoria in C, in C++, in Rust con incluso una spiegazione molto dettagliata di cosa è RAII. E solo dopo questo si parla di ownership e borrowing, degli slice e delle reference - In base a quello che resta, lo distribuiamo se c'è tempo un po' nella seconda, e un po' nella terza e quarta
-
C'erano meno domande di quel che mi aspettavo, questo secondo me perchè la gente non ha messo abbastanza mano sul linguaggio, quando viene spiegato qualcosa sembra tutto semplice ma quando ci metti effettivamente le mani sopra incontri vari tipi di errori. - Potremmo fare sessioni di qualche minuto stile rustlings su: "Perchè il codice non funziona", qua e là nel corso, dà anche un po' di tempo per lo speaker di prepararsi per le slide successive e dà l'opportunità di fare una pausa per le domande. Il problema è che prenderemmo molto più tempo quindi rischiamo di sforare con gli orari, e visto che già abbiamo sforato con alcune giornate la vedo dura da implementare.
- In alternativa si potrebbero proporre quegli esercizi da fare nel tempo libero tra una giornata e un'altra, nel caso qualcuno può fare domande anche prima che la lezione della giornata inizi. Il contro è che quasi nessuno le farebbe probabilmente in quanto visto come extra e "compiti a casa"
-
Questo è un consiglio un po' generale per tutti i corsi, ma andrebbe testata l'acustica dell'aula con il microfono ambientale e se si sentono le persone che fanno domande prima che inizi il corso, idealmente poco dopo che vengono assegnate le aule, qualcuno và a fare test dopo le lezioni, oltre che testare il suono del nostro microfono (controlliamo solo che non peaka ma non verifichiamo mai che si sente bene) -
Bisogna avere una procedura di disaster recovery nel caso qualcosa si rompe (la rete, il proiettore, niente microfoni, niente webex, ecc.) -
Converrebbe che ci siano più di due persone a sapere il linguaggio abbstanza approfonditamente, o almeno che abbiano completato il libro e o rustlings, per esempio c'erano 3 persone per ciascuna delle prime due giornate ma solo una persona per ciascuna della terza e quarta -
E' un corso di cinque giornate quindi andrebbe 1. essere proposto all'inizio del semestre, idealmente nel secondo semestre dopo che quelli del primo anno hanno avuto esperienza con C e 2. si deve cominciare a lavorare alle slide prima di qualche settimana prima, idealmente un mese e mezzo prima, in modo tale da avere più feedback possibile, preferibilmente in presenza in sede così si riescono a capire meglio le domande che si pone la gente quando legge le slide, prima del corso vero e proprio. Fortunatamente gran parte delle slide sono fatte, quindi un po' meno tempo di anticipo dovrebbe andare bene, ma come minimo un mese di anticipo.
Per ora non mi viene altro, se siete arrivati fino in fondo ricordo di commentare e proporre altri consigli/criticità per il corso