Approccio di apprendimento intensivo STEM

Esistono molti corsi eccellenti nel mondo della formazione ingegneristica, ma spesso il curriculum costruito attorno ad essi soffre di un grave difetto: la mancanza di coerenza tra i vari argomenti. Si potrebbe obiettare: come è possibile ciò?

Quando si forma un percorso formativo, per ciascun corso vengono indicati i prerequisiti e un ordine chiaro in cui le discipline devono essere studiate. Ad esempio, per costruire e programmare un robot mobile primitivo, è necessario conoscere un po' di meccanica per crearne la struttura fisica; nozioni di base sull'elettricità a livello delle leggi di Ohm/Kirchhoff, rappresentazione dei segnali digitali e analogici; operazioni con vettori e matrici per descrivere sistemi di coordinate e movimenti del robot nello spazio; nozioni di base della programmazione a livello di presentazione dei dati, algoritmi semplici e strutture di trasferimento del controllo, ecc. per descrivere il comportamento.

Tutto questo è previsto nei corsi universitari? Naturalmente sì. Tuttavia con le leggi di Ohm/Kirchhoff otteniamo la termodinamica e la teoria dei campi; oltre alle operazioni con matrici e vettori, bisogna occuparsi delle forme di Jordan; nella programmazione, studia il polimorfismo: argomenti che non sono sempre necessari per risolvere un semplice problema pratico.

L'istruzione universitaria è ampia: lo studente va su un fronte ampio e spesso non vede il significato e il significato pratico della conoscenza che riceve. Abbiamo deciso di trasformare il paradigma della formazione universitaria in STEM (dalle parole Scienza, Tecnologia, Ingegneria, Matematica) e creare un programma che si basi sulla coerenza delle conoscenze, consentendo in futuro un aumento della completezza, cioè implica una padronanza intensiva delle materie.

L’apprendimento di una nuova area tematica può essere paragonato all’esplorazione di un’area locale. E qui le opzioni sono due: o abbiamo una mappa molto dettagliata con un'enorme quantità di dettagli che devono essere studiati (e questo richiede molto tempo) per capire dove sono i principali punti di riferimento e come si relazionano tra loro ; oppure puoi utilizzare una pianta primitiva, sulla quale sono indicati solo i punti principali e le loro relative posizioni: una mappa del genere è sufficiente per iniziare immediatamente a muoversi nella giusta direzione, chiarendo man mano i dettagli.

Abbiamo testato l'approccio intensivo di apprendimento STEM in una scuola invernale, che abbiamo tenuto insieme agli studenti del MIT con il supporto di Ricerca JetBrains.

Preparazione del materiale


La prima parte del programma scolastico prevedeva una settimana di lezioni nelle aree principali, che includevano algebra, circuiti elettrici, architettura dei computer, programmazione Python e un'introduzione al ROS (Robot Operating System).

Le direzioni non sono state scelte per caso: completandosi a vicenda, avrebbero dovuto aiutare gli studenti a vedere a prima vista la connessione tra cose apparentemente diverse: matematica, elettronica e programmazione.

Naturalmente, l'obiettivo principale non era quello di tenere molte lezioni, ma di dare agli studenti l'opportunità di applicare nella pratica le conoscenze appena acquisite.

Nella sezione di algebra, gli studenti potevano esercitarsi con le operazioni sulle matrici e nella risoluzione di sistemi di equazioni, utili nello studio dei circuiti elettrici. Dopo aver appreso la struttura di un transistor e gli elementi logici costruiti sulla sua base, gli studenti hanno potuto vedere il loro utilizzo in un dispositivo processore e, dopo aver appreso le basi del linguaggio Python, scrivere al suo interno un programma per un vero robot.

Approccio di apprendimento intensivo STEM

Duckietown


Uno degli obiettivi della scuola era ridurre al minimo il lavoro con i simulatori, ove possibile. Pertanto, è stata preparata un'ampia serie di circuiti elettronici, che gli studenti hanno dovuto assemblare su una breadboard da componenti reali e testarli nella pratica, e Duckietown è stata scelta come base per i progetti.

Duckietown è un progetto open source che coinvolge piccoli robot autonomi chiamati Duckiebots e le reti di strade su cui viaggiano. Duckiebot è una piattaforma su ruote dotata di un microcomputer Raspberry Pi e di una singola fotocamera.

Sulla base di ciò, abbiamo preparato una serie di possibili compiti, come costruire una mappa stradale, cercare oggetti e fermarsi accanto ad essi, e molti altri. Gli studenti potrebbero anche proporre il proprio problema e non solo scrivere un programma per risolverlo, ma anche eseguirlo immediatamente su un vero robot.

insegnamento


Durante la lezione, gli insegnanti hanno presentato il materiale utilizzando presentazioni già predisposte. Alcune lezioni sono state registrate in video in modo che gli studenti potessero guardarle a casa. Durante le lezioni, gli studenti utilizzavano materiali sui loro computer, facevano domande e risolvevano problemi insieme e in modo indipendente, a volte alla lavagna. Sulla base dei risultati del lavoro, la valutazione di ciascuno studente è stata calcolata separatamente in diverse materie.

Approccio di apprendimento intensivo STEM

Consideriamo più in dettaglio lo svolgimento delle lezioni in ciascuna materia. Il primo argomento era l'algebra lineare. Gli studenti hanno trascorso una giornata studiando vettori e matrici, sistemi di equazioni lineari, ecc. I compiti pratici sono stati strutturati in modo interattivo: i problemi proposti sono stati risolti individualmente e l'insegnante e gli altri studenti hanno fornito commenti e suggerimenti.

Approccio di apprendimento intensivo STEM

Il secondo argomento riguarda l'elettricità e i circuiti semplici. Gli studenti hanno appreso le basi dell'elettrodinamica: tensione, corrente, resistenza, legge di Ohm e leggi di Kirchhoff. Le attività pratiche sono state in parte svolte nel simulatore o completate sulla scheda, ma è stato dedicato più tempo alla costruzione di circuiti reali come circuiti logici, circuiti oscillanti, ecc.

Approccio di apprendimento intensivo STEM

Il prossimo argomento è l'architettura del computer: in un certo senso, un ponte che collega fisica e programmazione. Gli studenti hanno studiato le basi fondamentali, il cui significato è più teorico che pratico. Come pratica, gli studenti hanno progettato in modo indipendente circuiti aritmetici e logici nel simulatore e hanno ricevuto punti per le attività completate.

Il quarto giorno è il primo giorno di programmazione. Python 2 è stato scelto come linguaggio di programmazione perché è quello utilizzato nella programmazione ROS. Questa giornata è stata strutturata come segue: gli insegnanti hanno presentato il materiale, fornito esempi di risoluzione dei problemi, mentre gli studenti li ascoltavano, seduti ai computer, e ripetevano ciò che l'insegnante aveva scritto alla lavagna o sulla diapositiva. Successivamente gli studenti hanno risolto da soli problemi simili e le soluzioni sono state successivamente valutate dagli insegnanti.

Il quinto giorno è stato dedicato a ROS: i ragazzi hanno imparato a programmare i robot. Per tutta la giornata scolastica, gli studenti sedevano al computer, eseguendo il codice del programma di cui parlava l'insegnante. Erano in grado di gestire da soli le unità ROS di base e furono anche introdotti al progetto Duckietown. Al termine di questa giornata, gli studenti erano pronti per iniziare la parte progettuale della scuola, risolvendo problemi pratici.

Approccio di apprendimento intensivo STEM

Descrizione dei progetti selezionati

Agli studenti è stato chiesto di formare squadre di tre e scegliere un argomento del progetto. Di conseguenza, sono stati adottati i seguenti progetti:

1. Calibrazione del colore. Duckiebot deve calibrare la fotocamera quando le condizioni di illuminazione cambiano, quindi esiste un'attività di calibrazione automatica. Il problema è che le gamme cromatiche sono molto sensibili alla luce. I partecipanti hanno implementato un'utilità che evidenziava i colori richiesti in una cornice (rosso, bianco e giallo) e creava gamme per ciascun colore in formato HSV.

2. Taxi anatra. L'idea di questo progetto è che Duckiebot possa fermarsi vicino a un oggetto, raccoglierlo e seguire un determinato percorso. Come oggetto è stata scelta un'anatra giallo brillante.

Approccio di apprendimento intensivo STEM

3. Costruzione di un grafo stradale. C'è il compito di costruire un grafico di strade e intersezioni. L'obiettivo di questo progetto è costruire un grafo stradale senza fornire a priori dati ambientali a Duckiebot, basandosi solo sui dati della telecamera.

4. Auto di pattuglia. Questo progetto è stato inventato dagli studenti stessi. Proposero di insegnare a un Duckiebot, una “pattuglia”, a inseguirne un altro, un “violatore”. A questo scopo è stato utilizzato il meccanismo di riconoscimento del target mediante il marcatore ArUco. Non appena completato il riconoscimento, viene inviato un segnale all '"intruso" per completare l'opera.

Approccio di apprendimento intensivo STEM

Calibrazione del colore

L'obiettivo del progetto Color Calibration era adattare la gamma di colori di marcatura riconoscibili alle nuove condizioni di illuminazione. Senza tali adeguamenti, il riconoscimento delle fermate, dei separatori di corsia e dei confini stradali diventava errato. I partecipanti hanno proposto una soluzione basata sulla preelaborazione dei modelli di colore di markup: rosso, giallo e bianco.

Ciascuno di questi colori ha un intervallo preimpostato di valori HSV o RGB. Utilizzando questo intervallo, vengono trovate tutte le aree della cornice contenenti i colori adatti e viene selezionata quella più grande. Quest'area è considerata il colore che deve essere ricordato. Formule statistiche come il calcolo della media e della deviazione standard vengono quindi utilizzate per stimare la nuova gamma di colori.

Questo intervallo viene registrato nei file di configurazione della fotocamera di Duckiebot e può essere utilizzato in seguito. L'approccio descritto è stato applicato a tutti e tre i colori, formando infine intervalli per ciascuno dei colori di markup.

I test hanno mostrato un riconoscimento quasi perfetto delle linee di marcatura, tranne nei casi in cui i materiali di marcatura utilizzavano nastro lucido, che riflette le sorgenti luminose così fortemente che dall'angolo di visione della fotocamera le marcature apparivano bianche, indipendentemente dal colore originale.

Approccio di apprendimento intensivo STEM

Taxi dell'anatra

Il progetto Duck Taxi prevedeva la creazione di un algoritmo per cercare un passeggero papero in città e quindi trasportarlo al punto richiesto. I partecipanti hanno diviso questo problema in due: rilevamento e movimento lungo il grafico.

Gli studenti hanno effettuato il rilevamento dell'anatra partendo dal presupposto che un'anatra è qualsiasi area nell'inquadratura che può essere riconosciuta come gialla, con un triangolo rosso (becco) su di essa. Non appena viene rilevata tale area nel fotogramma successivo, il robot dovrebbe avvicinarsi ad essa e poi fermarsi per alcuni secondi, simulando l'atterraggio di un passeggero.

Quindi, avendo in memoria il grafico stradale dell'intera duckietown e la posizione del bot, e ricevendo anche la destinazione come input, i partecipanti costruiscono un percorso dal punto di partenza al punto di arrivo, utilizzando l'algoritmo di Dijkstra per trovare percorsi nel grafico . L'output è presentato come una serie di comandi: svolta in ciascuna delle seguenti intersezioni.

Approccio di apprendimento intensivo STEM

Grafico delle strade

L'obiettivo di questo progetto era costruire un grafico: una rete di strade a Duckietown. I nodi del grafico risultante sono intersezioni e gli archi sono strade. Per fare ciò, Duckiebot deve esplorare la città e analizzarne il percorso.

Durante il lavoro sul progetto è stata considerata, ma poi scartata, l’idea di creare un grafico ponderato, in cui il costo di un bordo è determinato dalla distanza (tempo di percorrenza) tra le intersezioni. L'attuazione di questa idea si è rivelata troppo laboriosa e non c'era abbastanza tempo all'interno della scuola.

Quando Duckiebot arriva all'incrocio successivo, sceglie la strada che porta fuori dall'incrocio che non ha ancora preso. Una volta superate tutte le strade a tutti gli incroci, l'elenco generato delle adiacenze degli incroci rimane nella memoria del bot, che viene convertito in un'immagine utilizzando la libreria Graphviz.

L'algoritmo proposto dai partecipanti non era adatto per una Duckietown casuale, ma funzionava bene per una piccola città di quattro incroci utilizzata all'interno della scuola. L'idea era quella di aggiungere un indicatore ArUco a ciascuna intersezione contenente un identificatore di incrocio per tracciare l'ordine in cui sono state percorse le intersezioni.
Lo schema dell'algoritmo sviluppato dai partecipanti è mostrato in figura.

Approccio di apprendimento intensivo STEM

Auto di pattuglia

L'obiettivo di questo progetto è cercare, perseguire e detenere un bot violento nella città di Duckietown. Un robot di pattuglia deve spostarsi lungo l'anello esterno di una strada cittadina, alla ricerca di un robot intruso noto. Dopo aver rilevato un intruso, il robot di pattuglia deve seguirlo e costringerlo a fermarsi.

Il lavoro è iniziato con la ricerca di un'idea per rilevare un bot in un frame e riconoscere un intruso al suo interno. Il team ha proposto di dotare ogni robot della città di un contrassegno univoco sul retro, proprio come le auto vere hanno numeri di registrazione statale. A questo scopo sono stati scelti i marcatori ArUco. Sono stati utilizzati in precedenza in Duckietown poiché sono facili da utilizzare e consentono di determinare l'orientamento del segnalino nello spazio e la distanza da esso.

Successivamente, era necessario garantire che il robot di pattuglia si muovesse rigorosamente nel cerchio esterno senza fermarsi agli incroci. Per impostazione predefinita, Duckiebot si muove lungo una corsia e si ferma alla linea di stop. Quindi, con l'aiuto della segnaletica stradale, determina la configurazione dell'intersezione e sceglie la direzione di passaggio dell'intersezione. Per ciascuna delle fasi descritte è responsabile uno degli stati della macchina a stati finiti del robot. Per eliminare le fermate all'incrocio, il team ha cambiato la macchina a stati in modo che quando si avvicina alla linea di fermata, il bot passa immediatamente allo stato di guida dritto attraverso l'incrocio.

Il passo successivo è stato risolvere il problema di fermare il bot intruso. Il team ha ipotizzato che il bot di pattuglia potesse avere accesso SSH a ciascuno dei bot in città, ovvero avere alcune informazioni su quali dati di autorizzazione e quale ID ha ciascun bot. Pertanto, dopo aver rilevato l’intruso, il bot di pattuglia ha iniziato a connettersi tramite SSH al bot dell’intruso e a spegnerne il sistema.

Dopo aver confermato che il comando di spegnimento è stato completato, anche il robot di pattuglia si è fermato.
L'algoritmo operativo di un robot di pattuglia può essere rappresentato come il seguente diagramma:

Approccio di apprendimento intensivo STEM

Lavorare su progetti

Il lavoro è stato organizzato in un formato simile a Scrum: ogni mattina gli studenti pianificavano i compiti per la giornata corrente e la sera riferivano sul lavoro svolto.

Nel primo e nell'ultimo giorno gli studenti hanno preparato delle presentazioni che descrivono il compito e come risolverlo. Per aiutare gli studenti a seguire i piani scelti, nelle stanze in cui si svolgevano i lavori sui progetti erano costantemente presenti insegnanti provenienti dalla Russia e dall'America, che rispondevano alle domande. La comunicazione è avvenuta principalmente in 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 parlato di ciò che hanno imparato in questa scuola, quali sono state le lezioni più importanti che hanno imparato, cosa gli è piaciuto e cosa non gli è piaciuto. Successivamente ogni squadra ha presentato il proprio progetto. Tutte le squadre hanno completato i loro compiti.

Il team che ha implementato la calibrazione del colore ha completato il progetto più velocemente degli altri, quindi ha avuto anche il tempo di preparare la documentazione per il proprio programma. E il team che lavorava al grafo stradale, anche l'ultimo giorno prima della dimostrazione del progetto, ha cercato di affinare e correggere i propri algoritmi.

Approccio di apprendimento intensivo STEM

conclusione

Dopo aver completato la scuola, abbiamo chiesto agli studenti di valutare le attività passate e di rispondere a domande su quanto la scuola soddisfaceva le loro aspettative, quali competenze avevano acquisito, ecc. Tutti gli studenti hanno notato di aver imparato a lavorare in gruppo, a distribuire i compiti e a pianificare il proprio tempo.

Agli studenti è stato inoltre chiesto di valutare l'utilità e la difficoltà dei corsi seguiti. E qui si sono formati due gruppi di valutazioni: per alcuni i corsi non hanno presentato grandi difficoltà, per altri li hanno giudicati estremamente difficili.

Ciò significa che la scuola ha preso la posizione giusta rimanendo accessibile ai principianti in un particolare campo, ma fornendo anche materiali per la ripetizione e il consolidamento da parte degli studenti esperti. Va notato che il corso di programmazione (Python) è stato notato da quasi tutti come semplice ma utile. Secondo gli studenti, il corso più difficile è stato “Architettura informatica”.

Quando agli studenti è stato chiesto quali fossero i punti di forza e di debolezza della scuola, molti hanno risposto che gli piaceva lo stile di insegnamento scelto, in cui gli insegnanti fornivano assistenza tempestiva e personale e rispondevano alle domande.

Gli studenti hanno anche notato che gli piaceva lavorare pianificando quotidianamente i propri compiti e fissando le proprie scadenze. Come svantaggi, gli studenti hanno notato la mancanza di conoscenza fornita, necessaria quando si lavora con il bot: durante la connessione, comprendere le basi e i principi del suo funzionamento.

Quasi tutti gli studenti hanno notato che la scuola ha superato le loro aspettative, e questo indica la giusta direzione per organizzare la scuola. Pertanto, i principi generali dovrebbero essere mantenuti nell'organizzazione della prossima scuola, tenendo conto e, se possibile, eliminando le carenze rilevate da studenti e insegnanti, eventualmente modificando l'elenco dei corsi o i tempi del loro insegnamento.

Autori dell'articolo: squadra laboratorio di algoritmi di robot mobili в Ricerca JetBrains.

PS Il nostro blog aziendale ha un nuovo nome. Ora sarà dedicato ai progetti educativi di JetBrains.

Fonte: habr.com

Aggiungi un commento