STEM-i intensiivne õppimisviis

Insenerihariduse maailmas on palju suurepäraseid kursusi, kuid sageli kannatab nende ümber ehitatud õppekavas üks tõsine viga - erinevate teemade hea sidususe puudumine. Võib vastu vaielda: kuidas see nii saab?

Koolitusprogrammi koostamisel märgitakse iga kursuse kohta eeldused ja selge järjekord, milles erialasid tuleb õppida. Näiteks primitiivse mobiilse roboti ehitamiseks ja programmeerimiseks peate tundma veidi mehaanikat selle füüsilise struktuuri loomiseks; elektri põhitõed Ohmi/Kirchhoffi seaduste tasemel, digitaal- ja analoogsignaalide esitus; toimingud vektorite ja maatriksitega, et kirjeldada koordinaatsüsteeme ja roboti liikumisi ruumis; programmeerimise alused andmete esitamise tasemel, lihtsad algoritmid ja juhtimisülekande struktuurid jne. käitumise kirjeldamiseks.

Kas seda kõike käsitletakse ülikoolikursustel? Muidugi on. Ohmi/Kirchhoffi seadustega saame aga termodünaamika ja väljateooria; lisaks tehtetele maatriksite ja vektoritega tuleb tegeleda Jordani vormidega; programmeerimises uuri polümorfismi – teemasid, mida lihtsa praktilise ülesande lahendamiseks alati vaja ei lähe.

Ülikooliharidus on mahukas – üliõpilane läheb laiale rindele ega näe sageli saadud teadmiste mõtet ja praktilist tähendust. Otsustasime pöörata STEM-i (sõnadest Science, Technology, Engineering, Math) ülikoolihariduse paradigma ja luua programmi, mis põhineb teadmiste sidususel, võimaldades tulevikus suurendada terviklikkust, st. eeldab ainete intensiivset valdamist.

Uue ainevaldkonna õppimist võib võrrelda kohaliku piirkonna uurimisega. Ja siin on kaks võimalust: kas meil on väga detailne kaart tohutu hulga detailidega, mida tuleb uurida (ja see võtab palju aega), et mõista, kus peamised maamärgid asuvad ja kuidas need omavahel seotud on. ; või võite kasutada primitiivset plaani, millel on märgitud ainult põhipunktid ja nende suhtelised asukohad - sellisest kaardist piisab, et alustada kohe õiges suunas liikumist, täpsustades üksikasju.

Testisime intensiivset STEM-õppe lähenemist talvekoolis, mille viisime läbi koos MIT-i tudengitega. JetBrainsi uurimine.

Materjali ettevalmistamine


Kooliprogrammi esimene osa oli põhialade tundide nädal, mis hõlmas algebrat, elektriskeeme, arvutiarhitektuuri, Pythoni programmeerimist ja ROS-i (Robot Operating System) tutvustust.

Suunad ei valitud juhuslikult: üksteist täiendades pidid need aitama õpilastel näha seost esmapilgul näiliselt erinevate asjade - matemaatika, elektroonika ja programmeerimise vahel.

Loomulikult ei olnud põhieesmärk mitte palju loenguid pidada, vaid anda tudengitele võimalus värskelt omandatud teadmisi ka ise praktikas rakendada.

Algebra osas said õpilased harjutada maatrikstehteid ja võrrandisüsteemide lahendamist, millest oli kasu elektriahelate uurimisel. Õppinud tundma transistori ehitust ja selle baasil üles ehitatud loogilisi elemente, said õpilased näha nende kasutamist protsessorseadmes ning peale Pythoni keele põhitõdede omandamist kirjutada sinna programm päris roboti jaoks.

STEM-i intensiivne õppimisviis

Duckietown


Kooli üks eesmärke oli võimalusel minimeerida simulaatoritega töötamist. Seetõttu valmis suur komplekt elektroonikalülitusi, mille õpilased pidid päris komponentidest leivalauale kokku panema ja praktikas katsetama ning projektide aluseks valiti Duckietown.

Duckietown on avatud lähtekoodiga projekt, mis hõlmab väikseid autonoomseid roboteid nimega Duckiebots ja teedevõrke, mida mööda nad liiguvad. Duckiebot on ratastega platvorm, mis on varustatud Raspberry Pi mikroarvuti ja ühe kaameraga.

Selle põhjal oleme koostanud võimalike ülesannete komplekti, nagu teekaardi koostamine, objektide otsimine ja nende kõrval peatumine ning hulk muid. Õpilased said ka oma probleemi välja pakkuda ja mitte ainult selle lahendamiseks programmi kirjutada, vaid ka kohe päris robotil käivitada.

Õpetamine


Loengu käigus esitasid õpetajad materjali kasutades eelnevalt ettevalmistatud esitlusi. Mõned tunnid salvestati videole, et õpilased saaksid neid kodus vaadata. Loengute ajal kasutasid üliõpilased arvutis materjale, esitasid küsimusi ja lahendasid ülesandeid koos ja iseseisvalt, mõnikord ka tahvli ääres. Töö tulemuste põhjal arvutati iga õpilase hinne erinevates õppeainetes eraldi.

STEM-i intensiivne õppimisviis

Vaatleme üksikasjalikumalt iga aine tundide läbiviimist. Esimene õppeaine oli lineaaralgebra. Õpilased õppisid ühe päeva vektoreid ja maatrikseid, lineaarvõrrandisüsteeme jne. Praktilised ülesanded olid üles ehitatud interaktiivselt: pakutud ülesandeid lahendati individuaalselt, õpetaja ja teised õpilased andsid kommentaare ja näpunäiteid.

STEM-i intensiivne õppimisviis

Teine teema on elekter ja lihtahelad. Õpilased õppisid elektrodünaamika põhitõdesid: pinge, voolutugevus, takistus, Ohmi seadus ja Kirchhoffi seadused. Praktilisi ülesandeid tehti osaliselt simulaatoris või täideti tahvlil, kuid rohkem aega kulus reaalsete ahelate ehitamisele nagu loogikalülitused, võnkeahelad jne.

STEM-i intensiivne õppimisviis

Järgmine teema on Arvutiarhitektuur – teatud mõttes füüsikat ja programmeerimist ühendav sild. Õpilased õppisid põhialuseid, mille olulisus on pigem teoreetiline kui praktiline. Praktikas kujundasid õpilased iseseisvalt simulaatoris aritmeetika- ja loogikaahelaid ning said täidetud ülesannete eest punkte.

Neljas päev on programmeerimise esimene päev. Programmeerimiskeeleks valiti Python 2, kuna seda kasutatakse ROS-i programmeerimises. See päev oli üles ehitatud järgmiselt: õpetajad tutvustasid materjali, tõid näiteid ülesannete lahendamisest, samal ajal kui õpilased kuulasid neid arvuti taga istudes ja kordasid õpetaja tahvlile või slaidile kirjutatut. Seejärel lahendasid õpilased sarnaseid ülesandeid iseseisvalt ja seejärel hindasid lahendusi õpetajad.

Viies päev oli pühendatud ROS-ile: poisid õppisid robotite programmeerimist. Terve koolipäeva istusid õpilased arvutite taga ja ajasid programmi koodi, millest õpetaja rääkis. Nad said ROS-i põhiüksusi iseseisvalt käivitada ja neile tutvustati ka Duckietowni projekti. Selle päeva lõpus olid õpilased valmis alustama kooli projektiosaga – praktiliste ülesannete lahendamist.

STEM-i intensiivne õppimisviis

Valitud projektide kirjeldus

Õpilastel paluti moodustada kolmeliikmelised meeskonnad ja valida projekti teema. Selle tulemusena võeti vastu järgmised projektid:

1. Värvi kalibreerimine. Duckiebot peab valgustingimuste muutumisel kaamera kalibreerima, seega on automaatne kalibreerimisülesanne. Probleem on selles, et värvivahemikud on valguse suhtes väga tundlikud. Osalejad rakendasid utiliidi, mis tõstaks raamis esile vajalikud värvid (punane, valge ja kollane) ja koostaks iga värvi jaoks HSV-vormingus vahemikud.

2. Parditakso. Selle projekti idee seisneb selles, et Duckiebot saaks objekti lähedal peatuda, selle üles võtta ja teatud marsruuti järgida. Objektiks valiti erekollane part.

STEM-i intensiivne õppimisviis

3. Teegraafiku koostamine. Seal on ülesanne koostada teede ja ristmike graafik. Selle projekti eesmärk on koostada teegraafik ilma Duckiebotile a priori keskkonnaandmeid esitamata, tuginedes ainult kaameraandmetele.

4. Patrullauto. Selle projekti mõtlesid välja õpilased ise. Nad tegid ettepaneku õpetada ühte Duckiebot, "patrulli", jälitama teist, "rikkujat". Sel eesmärgil kasutati ArUco markeri abil sihtmärgi tuvastamise mehhanismi. Niipea kui tuvastamine on lõpetatud, saadetakse "sissetungijale" signaal töö lõpetamiseks.

STEM-i intensiivne õppimisviis

Värvide kalibreerimine

Color Calibration projekti eesmärk oli kohandada äratuntavate märgistusvärvide vahemik uute valgustingimustega. Ilma selliste seadistusteta muutus peatusjoonte, sõiduradade eraldajate ja teepiiride äratundmine ebaõigeks. Osalejad pakkusid välja lahenduse, mis põhineb eeltöötlusel märgistusvärvi mustritel: punane, kollane ja valge.

Igal neist värvidest on eelseadistatud HSV või RGB väärtuste vahemik. Seda vahemikku kasutades leitakse kõik sobivaid värve sisaldavad raami alad ja neist valitakse suurim. Seda piirkonda peetakse värviks, mida tuleb meeles pidada. Seejärel kasutatakse uue värvivahemiku hindamiseks statistilisi valemeid, nagu keskmise ja standardhälbe arvutamine.

See vahemik on salvestatud Duckieboti kaamera konfiguratsioonifailidesse ja seda saab hiljem kasutada. Kirjeldatud lähenemisviisi rakendati kõigi kolme värvi puhul, moodustades lõpuks iga märgistusvärvi vahemiku.

Testid näitasid märgistusjoonte peaaegu täiuslikku äratundmist, välja arvatud juhtudel, kui märgistusmaterjalides kasutati läikivat teipi, mis peegeldab valgusallikaid nii tugevalt, et kaamera vaatenurgast tundusid märgised valged, olenemata selle algsest värvist.

STEM-i intensiivne õppimisviis

Pardi takso

Parditakso projekt hõlmas algoritmi koostamist pardireisija otsimiseks linnas ja seejärel transportimist vajalikku punkti. Osalejad jagasid selle probleemi kaheks: tuvastamine ja liikumine piki graafikut.

Õpilased viisid pardituvastuse läbi eeldusel, et part on mis tahes ala kaadris, mille saab ära tunda kollaseks ja millel on punane kolmnurk (nokk). Niipea, kui järgmises kaadris selline ala tuvastatakse, peaks robot sellele lähenema ja seejärel mõneks sekundiks peatuma, simuleerides reisija maandumist.

Seejärel, kui kogu duckietowni teegraafik ja roboti asukoht on eelnevalt mällu salvestatud ning saavad sisendiks ka sihtkoha, loovad osalejad tee lähtepunktist saabumispunkti, kasutades Dijkstra algoritmi graafikult teede leidmiseks. . Väljund esitatakse käskude komplektina – pöörded igal järgneval ristmikul.

STEM-i intensiivne õppimisviis

Teede graafik

Selle projekti eesmärk oli luua graafik – Duckietowni teedevõrk. Saadud graafiku sõlmed on ristmikud ja kaared on teed. Selleks peab Duckiebot linna uurima ja selle marsruuti analüüsima.

Projekti kallal töötamise ajal kaaluti kaalutud graafiku loomise ideed, kuid jäeti seejärel kõrvale, kus serva maksumuse määrab ristmike vaheline kaugus (sõiduaeg). Selle idee elluviimine osutus liiga töömahukaks ning koolisiseselt ei jätkunud selleks aega.

Kui Duckiebot jõuab järgmisele ristmikule, valib ta tee, mis viib ristmikult välja, mida ta pole veel läbinud. Kui kõik teed kõikidel ristmikel on läbitud, jääb loodud ristmike külgnemiste loend roboti mällu, mis teisendatakse Graphvizi teegi abil pildiks.

Osalejate pakutud algoritm ei sobinud juhusliku Duckietowni jaoks, kuid töötas hästi koolis kasutatava nelja ristmikuga väikelinna jaoks. Idee oli lisada igale ristmikule ArUco marker, mis sisaldab ristmiku identifikaatorit, et jälgida ristmike sõidu järjekorda.
Osalejate koostatud algoritmi skeem on näidatud joonisel.

STEM-i intensiivne õppimisviis

Patrullauto

Selle projekti eesmärk on otsida, jälitada ja kinni pidada rikkuvat robotit Duckietowni linnas. Patrullbot peab liikuma mööda linnatee välisringi, otsides teadaolevat sissetungijat. Pärast sissetungija avastamist peab patrullbot järgnema sissetungijale ja sundima teda peatuma.

Töö algas idee otsimisega kaadris oleva roboti tuvastamiseks ja sissetungija äratundmiseks. Meeskond tegi ettepaneku varustada iga linna robot tagaküljel ainulaadse markeriga – nagu päris autodel on riiklikud registreerimisnumbrid. Selleks valiti ArUco markerid. Neid on duckietownis varem kasutatud, kuna nendega on lihtne töötada ja need võimaldavad teil määrata markeri orientatsiooni ruumis ja kaugust selleni.

Järgmiseks oli vaja jälgida, et patrullbot liiguks rangelt välisringil ilma ristmikel peatumata. Vaikimisi liigub Duckiebot sõidurajal ja peatub stoppjoonel. Seejärel määrab ta liiklusmärkide abil ristmiku konfiguratsiooni ja teeb valiku ristmiku läbimise suuna kohta. Iga kirjeldatud etapi eest vastutab üks roboti lõpliku oleku masina olekutest. Et ristmikul peatustest lahti saada, muutis meeskond olekumasinat nii, et peatusjoonele lähenedes lülitus bot kohe ristmikul otse läbi sõitmise olekusse.

Järgmise sammuna tuli lahendada sissetungiva roboti peatamise probleem. Meeskond oletas, et patrullrotil võib olla SSH-juurdepääs igale linna robotile, see tähendab, et tal on teave selle kohta, millised autoriseerimisandmed ja ID-d igal robotil on. Seega hakkas patrullbot pärast sissetungija tuvastamist SSH-i kaudu ühendust looma sissetungijabotiga ja sulges selle süsteemi.

Pärast sulgemiskäskluse lõpetamise kinnitamist peatus ka patrullbot.
Patrullroboti tööalgoritmi saab kujutada järgmise diagrammina:

STEM-i intensiivne õppimisviis

Projektide kallal töötamine

Töö oli korraldatud Scrumile sarnases formaadis: igal hommikul planeerisid õpilased jooksva päeva ülesandeid ning õhtul raporteerisid tehtud töödest.

Esimesel ja viimasel päeval koostasid õpilased ettekanded, milles kirjeldasid ülesannet ja selle lahendamist. Et aidata õpilastel valitud plaane järgida, olid ruumides, kus toimus projektide kallal töö, pidevalt kohal õpetajad Venemaalt ja Ameerikast, kes vastasid küsimustele. Suhtlemine toimus peamiselt inglise keeles.

Tulemused ja nende demonstreerimine

Töö projektide kallal kestis nädala, seejärel tutvustasid õpilased oma tulemusi. Kõik koostasid ettekanded, milles rääkisid sellest, mida nad selles koolis õppisid, millised olid kõige olulisemad õppetunnid, mis neile meeldis või ei meeldinud. Pärast seda esitles iga meeskond oma projekti. Kõik meeskonnad täitsid oma ülesanded.

Värvikalibreerimist teostav meeskond lõpetas projekti teistest kiiremini, nii et neil oli aega ka oma programmi dokumentatsiooni ettevalmistamiseks. Ja teegraafiku kallal töötav meeskond püüdis isegi viimasel päeval enne projekti tutvustamist oma algoritme täpsustada ja parandada.

STEM-i intensiivne õppimisviis

Järeldus

Pärast kooli lõpetamist palusime õpilastel hinnata varasemaid tegevusi ja vastata küsimustele, kui hästi kool vastas nende ootustele, milliseid oskusi nad omandasid jne. Kõik õpilased märkisid, et õppisid töötama meeskonnas, jagama ülesandeid ja planeerima oma aega.

Samuti paluti õpilastel hinnata läbitud kursuste kasulikkust ja raskust. Ja siin moodustus kaks hindamisgruppi: mõne jaoks ei valmistanud kursused erilist raskust, teised hindasid need ülirasketeks.

See tähendab, et kool on võtnud õige positsiooni, jäädes kättesaadavaks konkreetse valdkonna algajatele, kuid pakkudes materjale kordamiseks ja kinnistamiseks ka kogenud õpilastele. Tuleb märkida, et programmeerimiskursust (Python) märkisid peaaegu kõik kui lihtsat, kuid kasulikku. Õpilaste hinnangul oli kõige raskem kursus “Arvutiarhitektuur”.

Kui õpilastelt küsiti kooli tugevate ja nõrkade külgede kohta, vastasid paljud, et neile meeldis valitud õpetamisstiil, mille puhul õpetajad osutasid kiiret ja personaalset abi ning vastasid küsimustele.

Samuti märkisid õpilased, et neile meeldis töötada igapäevase tööülesannete planeerimise ja oma tähtaegade seadmise režiimis. Puudustena tõid õpilased välja pakutavate teadmiste puudumise, mida oli vaja robotiga töötamisel: ühendamisel selle töö põhitõdede ja põhimõtete mõistmist.

Peaaegu kõik õpilased märkisid, et kool ületas nende ootusi ja see viitab koolikorralduse õigele suunale. Seega tuleks järgmise kooli korraldamisel järgida üldpõhimõtteid, arvestada ja võimalusel kõrvaldada õpilaste ja õpetajate poolt märgitud puudused, võib-olla muuta kursuste loetelu või nende õpetamise ajastust.

Artikli autorid: meeskond mobiilsete robotite algoritmide labor в JetBrainsi uurimine.

PS Meie ettevõtte blogil on uus nimi. Nüüd on see pühendatud JetBrainsi haridusprojektidele.

Allikas: www.habr.com

Lisa kommentaar