Approccio intensivo all'apprendimento STEM

Nel mondo dell'istruzione ingegneristica ci sono molti ottimi corsi, ma spesso il programma di studi costruito su di essi presenta un serio difetto: la mancanza di una buona coerenza tra i vari argomenti. Si potrebbe obiettare: come può essere?

Quando si forma un programma di studi, per ogni corso vengono indicati i prerequisiti e un chiaro ordine in cui è necessario studiare le discipline. Ad esempio, per assemblare e programmare un robot mobile primitivo, è necessario avere alcune nozioni di meccanica per creare la sua struttura fisica; fondamentali di elettricità a livello delle leggi di Ohm/Kirchhoff, rappresentazione di segnali digitali e analogici; operazioni con vettori e matrici per descrivere sistemi di coordinate e movimenti del robot nello spazio; nozioni di programmazione a livello di rappresentazione dei dati, algoritmi semplici e strutture di controllo, ecc. per descrivere il comportamento.

Ci sono tutte queste cose nei corsi universitari? Certamente. Tuttavia, per le leggi di Ohm/Kirchhoff si apprendono termodinamica e teoria dei campi; oltre alle operazioni con matrici e vettori, è necessario familiarizzare con le forme di Jordan; nello studio della programmazione si affronta il polimorfismo - temi che non sono sempre necessari per risolvere un semplice problema pratico.

L'istruzione universitaria è estensiva: lo studente affronta un ampio ventaglio di argomenti e spesso non percepisce il senso e il significato pratico delle conoscenze che acquisisce. Abbiamo deciso di rivoluzionare la nozione di istruzione universitaria STEM (dalle parole Scienza, Tecnologia, Ingegneria, Matematica) e di creare un programma che si basa sulla coerenza delle conoscenze, permettendo un ampliamento in futuro, nel senso di un apprendimento intensivo delle materie.

Studiare un nuovo campo di conoscenza può essere paragonato a esplorare un territorio. Ci sono due opzioni: o abbiamo una mappa molto dettagliata con un numero enorme di dettagli da studiare (il che richiede molto tempo) per comprendere dove si trovano i principali punti di riferimento e come si relazionano tra loro; oppure possiamo usare una mappa primitiva che segna solo i punti principali e la loro disposizione reciproca: tale mappa è sufficiente per cominciare a muoversi nella direzione giusta, specificando i dettagli lungo il cammino.

Abbiamo testato l'approccio intensivo all'insegnamento STEM durante la scuola invernale che abbiamo condotto insieme agli studenti del MIT con il supporto di JetBrains Research.

Preparazione del materiale


La prima parte del programma della scuola ha consistito in una settimana di lezioni sui principali argomenti, che comprendevano algebrèa, circuiti elettrici, architettura dei computer, programmazione in Python e introduzione a ROS (Robot Operating System).

Le aree di studio sono state scelte non a caso: integrandosi a vicenda, dovevano aiutare gli studenti a vedere il legame tra ciò che sembrava, a prima vista, molto diverso — matematica, elettronica e programmazione.

Naturalmente, l'obiettivo principale non era di tenere molte lezioni, ma di offrire agli studenti la possibilità di applicare praticamente le nuove conoscenze acquisite.

Nella sezione di algebra, gli studenti hanno potuto esercitarsi nelle operazioni con le matrici e nella risoluzione dei sistemi di equazioni, che si sono rivelate utili nello studio dei circuiti elettrici. Dopo aver appreso il funzionamento del transistor e degli elementi logici costruiti su di esso, gli studenti hanno potuto vedere la loro applicazione nella struttura del processore e, dopo aver studiato le basi del linguaggio Python, scrivere un programma per un robot reale.

Approccio intensivo all'apprendimento STEM

Duckietown


Uno degli obiettivi della scuola era di minimizzare l'uso dei simulatori dove possibile. Pertanto, è stato preparato un ampio set di circuiti elettronici che gli studenti dovevano assemblare su una scheda di prototipazione utilizzando componenti reali e testarli nella pratica, e Duckietown è stata scelta come base per i progetti.

Duckietown è un progetto aperto che comprende piccoli robot autonomi chiamati Duckiebot e una rete di strade lungo le quali si muovono. Duckiebot è una piattaforma su ruote dotata di un microcomputer Raspberry Pi e di una telecamera.

Sulla sua base abbiamo preparato una serie di compiti possibili, come la creazione di una mappa delle strade, la ricerca di oggetti e l'arresto vicino a essi, oltre ad altri. Inoltre, gli studenti potevano proporre un proprio problema e non solo scrivere un programma per risolverlo, ma anche avviarlo immediatamente su un robot reale.

Insegnamento


Durante la lezione, gli insegnanti presentavano il materiale utilizzando presentazioni pre-preparate. Alcuni corsi venivano registrati in video, in modo che gli studenti potessero guardarli a casa. Durante le lezioni, gli studenti utilizzavano i materiali sui propri computer, ponevano domande, risolvevano problemi insieme e singolarmente, a volte alla lavagna. Alla fine del lavoro, è stata calcolata una classifica per ogni studente separatamente in base a diverse materie.

Approccio intensivo all'apprendimento STEM

Esaminiamo più nel dettaglio lo svolgimento delle lezioni per ciascuna materia. La prima materia era algebra lineare. Gli studenti hanno studiato vettori e matrici, sistemi di equazioni lineari, ecc., nell'arco di una giornata. Gli esercizi pratici erano strutturati in modalità interattiva: i problemi proposti venivano risolti individualmente, mentre l'insegnante e gli altri studenti fornivano commenti e suggerimenti.

Approccio intensivo all'apprendimento STEM

La seconda materia è elettricità e circuiti semplici. Gli studenti hanno imparato le basi dell'elettrodinamica: tensione, corrente, resistenza, legge di Ohm e leggi di Kirchhoff. Gli esercizi pratici sono stati parzialmente svolti in un simulatore o eseguiti alla lavagna, ma si è dedicato più tempo alla costruzione di circuiti reali, come circuiti logici, circuiti oscillatori, ecc.

Approccio intensivo all'apprendimento STEM

Il tema successivo è l'Architettura dei Calcolatori, che rappresenta in un certo senso un ponte tra fisica e programmazione. Gli studenti hanno studiato le basi fondamentali, il cui significato è più teorico che pratico. Come pratica, hanno progettato autonomamente circuiti aritmetico-logici in un simulatore e hanno ricevuto punteggio per i compiti svolti.

Il quarto giorno è stato il primo giorno di programmazione. È stato scelto Python 2 come linguaggio di programmazione, poiché è quello utilizzato nella programmazione per ROS. Questo giorno è stato organizzato nel seguente modo: i docenti spiegavano il materiale, portando esempi di risoluzione dei problemi, mentre gli studenti li ascoltavano, seduti ai computer, e ripetevano quanto scritto dal docente sulla lavagna o sulla slide. Successivamente, gli studenti risolvevano problemi simili in autonomia, le cui soluzioni venivano poi valutate dai docenti.

Il quinto giorno è stato dedicato a ROS: i ragazzi si sono familiarizzati con la programmazione dei robot. Per l'intera giornata, gli studenti sono stati seduti ai computer, eseguendo il codice di programmazione di cui parlava il docente. Sono riusciti a eseguire autonomamente le unità principali di ROS e hanno anche conosciuto il progetto Duckietown. Al termine di questa giornata, gli studenti erano pronti a intraprendere la parte progettuale della scuola, risolvendo problemi pratici.

Approccio intensivo all'apprendimento STEM

Descrizione dei progetti scelti

Agli studenti è stato chiesto di unirsi in team di tre persone e di scegliere un tema per il progetto. Alla fine sono stati accettati i seguenti progetti:

1. Calibrazione dei colori. Il Duckiebot ha bisogno di calibrare la fotocamera in caso di cambiamento delle condizioni di illuminazione, quindi esiste la necessità di una calibrazione automatica. Il problema è che le gamme di colori sono molto sensibili all'illuminazione. I partecipanti hanno implementato un'utilità che avrebbe isolato i colori richiesti (rosso, bianco e giallo) nel frame e costruito le gamme per ciascun colore nel formato HSV.

2. Duck Taxi. L'idea di questo progetto è che il Duckiebot possa fermarsi vicino a un determinato oggetto, raccoglierlo e seguire un certo percorso. L'oggetto scelto era un brillante anatra gialla.

Approccio intensivo all'apprendimento STEM

3. Costruzione del grafo delle strade. Esiste la necessità di costruire un grafo delle strade e degli incroci. L'obiettivo di questo progetto è costruire un grafo delle strade senza fornire dati a priori sull'ambiente per il Duckiebot, basandosi solo sui dati provenienti dalla fotocamera.

4. Auto di pattuglia. Questo progetto è stato ideato dagli stessi studenti. Hanno proposto di insegnare a un Duckiebot, il "pattugliatore", a inseguire un altro - il "trasgressore". Per questo è stato utilizzato un meccanismo di riconoscimento dell'obiettivo tramite un marker ArUco. Una volta completato il riconoscimento, al "trasgressore" viene inviato un segnale di termine dell'operazione.

Approccio intensivo all'apprendimento STEM

Calibrazione dei Colori

L'obiettivo del progetto Color Calibration era quello di correggere la gamma di colori riconoscibili della segnaletica alle nuove condizioni di illuminazione. Senza tali correzioni, il riconoscimento delle linee di arresto, dei separatori di corsia e dei confini stradali diventava impreciso. I partecipanti hanno proposto una soluzione basata sulla pre-elaborazione dei modelli di colori della segnaletica: rosso, giallo e bianco.

Per ciascuno di questi colori è stato definito un intervallo preliminare di valori HSV o RGB. Utilizzando questo intervallo, vengono rilevate nell'immagine tutte le aree che contengono colori idonei, e tra queste viene selezionata quella più grande. Quest'area viene considerata il colore da memorizzare. Dopodiché, vengono utilizzate formule statistiche, come il calcolo della media e della deviazione standard, per valutare il nuovo intervallo di colore.

Questo intervallo viene salvato nei file di configurazione della telecamera Duckiebot e può essere utilizzato successivamente. L'approccio descritto è stato applicato a tutti e tre i colori, formando infine intervalli per ciascun colore della segnaletica.

I test hanno mostrato un riconoscimento quasi perfetto delle linee di segnaletica, tranne nei casi in cui i materiali di segnaletica utilizzati erano nastri lucidi, che riflettevano così fortemente le fonti di luce che, da un angolo di vista della telecamera, la segnaletica appariva bianca indipendentemente dal suo colore originale.

Approccio intensivo all'apprendimento STEM

Duck Taxi

Il progetto Duck Taxi prevedeva la creazione di un algoritmo di ricerca per individuare l'anatra passeggero in città e successivamente trasportarla nel punto desiderato. I partecipanti hanno suddiviso questo compito in due fasi: rilevamento e navigazione nel grafo.

Gli studenti hanno svolto il rilevamento dell'anatra, assumendo che un'anatra fosse qualsiasi area nell'immagine che poteva essere riconosciuta come gialla, con un triangolo rosso (becco) su di essa. Una volta che tale area viene rilevata in un'immagine successiva, il robot deve avvicinarsi ad essa e poi fermarsi per alcuni secondi, simulando l'atterraggio del passeggero.

Successivamente, avendo in memoria il grafo delle strade di tutto il duckietown e la posizione del robot, e ricevuto come input il punto di destinazione, i partecipanti costruiscono un percorso dal punto di partenza al punto di arrivo, utilizzando l'algoritmo di Dijkstra per la ricerca dei percorsi nel grafo. L'output è rappresentato come un insieme di comandi—svoltate ad ogni incrocio successivo.

Approccio intensivo all'apprendimento STEM

Grafo delle Strade

L'obiettivo di questo progetto era la costruzione di un grafo: una rete stradale in Duckietown. I nodi del grafo risultante sono gli incroci, e gli archi rappresentano le strade. Per fare ciò, Duckiebot deve esplorare la città e analizzare il proprio percorso.

Durante il lavoro sul progetto è stata presa in considerazione, ma poi scartata, l'idea di creare un grafo pesato, in cui il costo dell'arco è determinato dalla distanza (tempo di attraversamento) tra gli incroci. L'implementazione di questa idea si è rivelata troppo laboriosa e non ci sarebbe stato tempo a disposizione nell'ambito della scuola.

Quando Duckiebot arriva a un nuovo incrocio, sceglie una strada che esce dall'incrocio e che non ha ancora percorso. Quando tutte le strade a tutti gli incroci sono state percorse, nella memoria del robot rimane un elenco di adiacenza degli incroci, che viene trasformato in un'immagine utilizzando la libreria Graphviz.

L'algoritmo proposto dai partecipanti non è adatto per un Duckietown arbitrario, ma ha funzionato bene in una piccola città composta da quattro incroci, utilizzata nell'ambito della scuola. L'idea era di dotare ogni incrocio di un marcatore ArUco, contenente l'identificativo dell'incrocio, per monitorare l'ordine di attraversamento degli incroci.
Lo schema di funzionamento dell'algoritmo sviluppato dai partecipanti è mostrato nella figura.

Approccio intensivo all'apprendimento STEM

Patrol Car

L'obiettivo di questo progetto è la ricerca, il perseguimento e l'arresto di un robot trasgressore nella città di Duckietown. Il robot pattugliatore deve muoversi lungo il cerchio esterno della strada in città alla ricerca di un robot trasgressore noto in precedenza. Dopo aver individuato il trasgressore, il robot pattugliatore deve seguire il trasgressore e costringerlo a fermarsi.

Il lavoro è iniziato con la ricerca di un'idea per la rilevazione del robot nell'immagine e il riconoscimento del trasgressore in essa. Il team ha proposto di equipaggiare ogni robot nella città con un marcatore unico posizionato sul retro, proprio come le automobili reali hanno numeri di registrazione. Per questo sono stati scelti i marcatori ArUco. Erano già stati utilizzati in Duckietown, poiché sono facili da maneggiare e permettono di determinare l'orientamento del marcatore nello spazio e la distanza da esso.

Successivamente, è stato necessario fare in modo che il robot di pattuglia si muovesse rigorosamente lungo il cerchio esterno senza fermarsi agli incroci. Di default, il Duckiebot si muove nella corsia e si ferma alla linea di stop. Poi, grazie alla segnaletica stradale, determina la configurazione dell'incrocio e decide quale direzione prendere. Ogni fase descritta è controllata da uno degli stati dell'automa del robot. Per eliminare le soste agli incroci, il team ha modificato l'automa degli stati in modo che, avvicinandosi alla linea di stop, il robot passasse subito allo stato di attraversamento dell'incrocio dritto.

Il passo successivo è stato risolvere il problema dell'arresto del robot trasgressore. Il team ha ipotizzato che il robot di pattuglia potesse accedere tramite SSH a ciascuno dei robot in città, ovvero avere alcune informazioni su quali dati fossero necessari per l'autenticazione e quale ID avesse ciascun robot. Così, dopo aver individuato il trasgressore, il robot di pattuglia ha iniziato a connettersi tramite SSH al robot trasgressore e a spegnere il suo sistema.

Dopo aver confermato che il comando di spegnimento era stato eseguito, anche il robot di pattuglia si fermava.
L'algoritmo di funzionamento del robot di pattuglia può essere rappresentato nel seguente schema:

Approccio intensivo all'apprendimento STEM

Lavoro sui progetti

Il lavoro è stato organizzato in un formato simile allo Scrum: ogni mattina, gli studenti pianificavano le attività per la giornata, e la sera rendevano conto del lavoro svolto.

Nei primi e ultimi giorni, gli studenti hanno preparato delle presentazioni che descrivevano il compito assegnato e i modi per risolverlo. Per aiutare gli studenti a seguire i piani scelti, nelle stanze dove si svolgeva il lavoro sui progetti erano sempre presenti docenti provenienti dalla Russia e dagli Stati Uniti, che rispondevano alle domande. Le comunicazioni avvenivano prevalentemente in lingua inglese.

Risultati e loro dimostrazione

Il lavoro sui progetti è durato una settimana, al termine della quale gli studenti hanno presentato i loro risultati. Tutti hanno preparato delle presentazioni in cui hanno raccontato cosa hanno imparato in questa scuola, quali sono state le lezioni più importanti, cosa è piaciuto o non è piaciuto. Dopo di che, ogni team ha presentato il proprio progetto. Tutti i team hanno completato i compiti assegnati.

Il team che ha realizzato la calibrazione dei colori ha completato il progetto più rapidamente degli altri, quindi hanno avuto il tempo di preparare anche la documentazione per il loro programma. Il team che si occupava del grafo delle strade, anche l'ultimo giorno prima della dimostrazione del progetto, ha cercato di migliorare e correggere i propri algoritmi.

Approccio intensivo all'apprendimento STEM

Conclusione

Dopo il termine della scuola, abbiamo chiesto agli studenti di valutare le attività svolte e rispondere a domande su quanto la scuola fosse in linea con le loro aspettative, quali competenze avessero acquisito, ecc. Tutti gli studenti hanno sottolineato di aver imparato a lavorare in team, a suddividere i compiti e a pianificare il proprio tempo.

Agli studenti è stata anche richiesta la valutazione dell'utilità e della complessità dei corsi seguiti. E qui si sono formati due gruppi di valutazioni: per alcuni i corsi non hanno rappresentato grandi difficoltà, altri li hanno considerati estremamente complessi.

Questo significa che la scuola ha assunto la posizione corretta, rimanendo accessibile ai principianti in un campo o nell'altro, ma fornendo anche materiali per il ripasso e il consolidamento agli studenti più esperti. Va notato che il corso di programmazione (Python) è stato praticamente unanimemente valutato come non difficile, ma utile. Il corso più complesso, secondo gli studenti, si è rivelato essere quello di "Architettura delle macchine elettroniche".

Quando agli studenti è stato chiesto di indicare i difetti e i pregi della scuola, molti hanno risposto che gli è piaciuto lo stile di insegnamento scelto, nel quale gli insegnanti offrivano prontamente aiuto e rispondevano alle domande.

Inoltre, gli studenti hanno evidenziato che gli è piaciuto lavorare in modalità di pianificazione quotidiana delle proprie attività e stabilire autonomamente le scadenze. Come criticità, gli studenti hanno annotato la mancanza di conoscenze fornite che erano necessarie al lavoro col bot: riguardavano il collegamento, la comprensione delle basi e dei principi di funzionamento.

Quasi tutti gli studenti hanno sottolineato che la scuola ha superato le loro aspettative, il che indica che è stata scelta la direzione giusta per l'organizzazione della scuola. Pertanto, è importante mantenere i principi generali nell'organizzazione della prossima scuola, tenendo conto e cercando di eliminare, se possibile, le critiche evidenziate da studenti e insegnanti, eventualmente modificando l'elenco dei corsi o gli orari delle lezioni.

Autori dell'articolo: il team del laboratorio di algoritmi per robot mobili in JetBrains Research.

P.S. Il nostro blog aziendale ha un nuovo nome. Ora sarà dedicato ai progetti educativi dell'azienda JetBrains.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster