A STEM intenzív tanulási megközelítése

Az mérnöki oktatás világában sok nagyszerű kurzus létezik, de a képzési programok gyakran egy komoly hiányossággal rendelkeznek: a különböző témák közötti jó összefüggés hiányával. Erre lehetne azt mondani: hogy lehet ez?

Amikor a képzési programot kialakítják, minden kurzushoz megadják a követelményeket és egy világos sorrendet, amelyben a tantárgyakat tanulmányozni kell. Például ahhoz, hogy összeállítsunk és programozzunk egy primitív mobil robotot, ismernünk kell egy kis mechanikát a fizikai szerkezetének elkészítéséhez; az Ohm/Kirchhoff törvények szintjén az elektromosság alapjait; a digitális és analóg jelek ábrázolását; vektorokkal és mátrixokkal végzett műveleteket a koordináta-rendszerek és a robot mozgásának leírásához; a programozás alapjait az adatok ábrázolásának, az egyszerű algoritmusoknak és az irányításátadás szerkezetének szintjén, stb., a viselkedés leírásához.

Van-e mindez az egyetemi kurzusokban? Természetesen van. Azonban az Ohm/Kirchhoff törvények mellett hőtan és mezőelmélet is rendelkezésünkre áll; a mátrixokkal és vektorokkal végzett műveletek mellett Jordan-formákkal is foglalkoznunk kell; a programozás terén a polimorfizmust tanulmányozni - olyan témák, amelyek nem mindig szükségesek egy egyszerű gyakorlati feladat megoldásához.

Az egyetemi oktatás kiterjedt - a tanuló széles fronton halad, és gyakran nem látja a tudásának értelmét és gyakorlati jelentőségét. Mi úgy döntöttünk, hogy megfordítjuk a STEM (tudomány, technológia, mérnöki tudomány, matematika) egyetemi oktatásának paradigmáját, és készítünk egy olyan programot, amely a tudás összefüggésére épít, lehetővé téve a jövőbeni teljesség növelését, vagyis intenzív tantárgyelsajátítást feltételez.

Egy új tárgyterület tanulmányozása összehasonlítható egy terület feltérképezésével. Itt két lehetőség van: vagy egy nagyon részletes térkép áll rendelkezésünkre, amely rengeteg részletet tartalmaz, amit meg kell tanulmányozni (ez sok időt igényel), hogy megértsük, hol találhatók a főbb támpontok és hogyan viszonyulnak egymáshoz; vagy pedig egy egyszerűsített tervet használhatunk, ami csak a legfontosabb pontokat és azok elhelyezkedését jelöli — ez a térkép elegendő ahhoz, hogy azonnal elinduljunk a megfelelő irányba, részleteket pedig menet közben pontosíthatunk.

A STEM intenzív tanulási megközelítésünket a téli iskolában teszteltük, amelyet az MIT hallgatóival együttműködve tartottunk. JetBrains Research.

Az anyag előkészítése


A nyári iskola programjának első része egy hét foglalkozásból állt, amely a főbb irányelveket tartalmazta, beleértve az algebrát, az elektromos áramköröket, a számítógép architektúráját, a Python programozást és a ROS (Robot Operating System) megismerését.

A tantárgyak nem véletlenszerűen lettek kiválasztva: kölcsönösen kiegészítve egymást, segíteniük kellett a hallgatóknak, hogy a látszólag különböző, első pillantásra eltérő dolgok — a matematika, az elektronika és a programozás — közötti kapcsolatokat lássák.

Természetesen a fő cél nem az volt, hogy sok előadást tartsunk, hanem lehetőséget adni a hallgatóknak, hogy a frissen megszerzett tudást gyakorlatban is alkalmazzák.

Az algebra szekcióban a hallgatók gyakorolhatták a mátrixokkal végzett műveleteket és az egyenletrendszerek megoldását, amelyek hasznosak voltak az elektromos áramkörök tanulmányozásakor. Miután megismerkedtek a tranzisztor felépítésével és az azon alapuló logikai elemekkel, a résztvevők láthatták alkalmazásukat a processzor felépítésében, majd a Python alapjainak elsajátítása után programot írhattak valós robotok számára.

A STEM intenzív tanulási megközelítése

Duckietown


A nyári iskola egyik feladata az volt, hogy minimalizálja a szimulátorok használatát, ahol csak lehetséges. Ezért egy nagy elektronikai áramkészletet állítottunk össze, amelyet a hallgatóknak valós alkatrészekből kellett összeszerelniük és gyakorlatban tesztelniük, a projektek alapjául pedig a Duckietown szolgált.

A Duckietown egy nyílt projekt, amely kicsi autonóm robotokat, Duckiebotokat foglal magában, valamint az azokat összekötő utakat. A Duckiebot egy kerekes platform, amely Raspberry Pi mikrocomputert és egy kamerát tartalmaz.

Ennek alapján felkészítettünk egy lehetséges feladatkészletet, például térképépítést, objektumkeresést és azokhoz való megállást, valamint számos egyéb feladatot. A hallgatók saját problémát is javasolhattak, és nemcsak programot írhattak a megoldására, hanem azonnal lefuttathatták azt egy valódi roboton is.

Tanítás


Az előadások során a tanárok előre elkészített bemutatókkal ismertették az anyagot. Néhány előadást videóra vettek, így a hallgatóknak lehetőségük volt azokat otthon megtekinteni. Az előadások alatt a hallgatók a saját számítógépeiken használták az anyagokat, kérdéseket tettek fel, közösen és egyedül oldották meg a feladatokat, néha a táblánál. A munka eredményei alapján minden hallgató külön rangsort kapott különböző tantárgyakban.

A STEM intenzív tanulási megközelítése

Nézzük meg részletesebben az egyes tantárgyak tanítását. Az első tantárgy a lineáris algebra volt. A hallgatók egy nap alatt tanulmányozták a vektorokat és mátrixokat, lineáris egyenletrendszereket stb. A gyakorlati feladatok interaktív módon zajlottak: a felvetett problémák egyénileg kerültek megoldásra, a tanár és más hallgatók kommentárokat és tippeket adtak.

A STEM intenzív tanulási megközelítése

A második tantárgy az áram és egyszerű áramkörök voltak. A hallgatók az elektrodinamika alapjait tanulmányozták: feszültség, áram, ellenállás, Ohm törvénye és Kirchhoff törvényei. A gyakorlati feladatokat részben szimulátorban végezték, vagy a táblán hajtották végre, de több időt szántak valós áramkörök építésére, mint például logikai áramkörök, rezgőkörök stb.

A STEM intenzív tanulási megközelítése

A következő téma az ÉVM architektúrája volt, amely bizonyos értelemben hidat képez a fizika és a programozás között. A hallgatók egy elméleti alapot tanulmányoztak, amely inkább elméleti, mint gyakorlati jelentőséggel bír. A gyakorlat keretében a hallgatók önállóan terveztek aritmetikai-logikai áramköröket a szimulátorban, és a feladatok elvégzéséért pontokat kaptak.

A negyedik nap — az első programozási nap. A programozási nyelv a Python 2 lett, mivel ezt használják a ROS programozásához. A napot a következőképpen építették fel: az oktatók anyagot adtak elő, példákkal illusztrálva a feladatok megoldását, miközben a diákok figyeltek, a számítógépeknél ülve, és a táblán vagy a dián írottakat ismételték. Ezt követően a tanulók hasonló feladatokat oldottak meg önállóan, amelyek megoldásait később az oktatók értékelték.

Az ötödik nap a ROS-nak volt szentelve: a fiúk megismerkedtek a robotprogramozással. Az egész tanítási nap alatt a diákok a számítógépek előtt ültek, a tanár által bemutatott kódot futtatták. Képesek voltak önállóan elindítani a ROS alapvető elemeit, valamint megismerték a Duckietown projektet. A nap végére a diákok készen álltak a iskola projekt részére - gyakorlati feladatok megoldására.

A STEM intenzív tanulási megközelítése

A kiválasztott projektek leírása

A diákoknak lehetőséget adtak, hogy háromfős csapatokat alkotva válasszanak projekt témát. Végül a következő projektek kerültek elfogadásra:

1. Színkalibrálás. A Duckiebot kamerájának kalibrálására van szükség a világítási körülmények változásakor, ezért létezik az automatikus kalibrálás feladata. A probléma az, hogy a színtartományok nagyon érzékenyek a világosságra. A résztvevők egy eszközt valósítottak meg, amely kiemelné a szükséges színeket (piros, fehér és sárga) a képen, és létrehozná a színek tartományait HSV formátumban.

2. Duck Taxi. A projekt ötlete az, hogy a Duckiebot meg tudjon állni egy adott objektum mellett, el tudja venni azt, és egy meghatározott útvonalon tudjon haladni. Az objektum egy fényes sárga kacsa lett.

A STEM intenzív tanulási megközelítése

3. Úthálózat grafikonjának felépítése. A feladat egy úthálózat és kereszteződések grafikonjának felépítése. E projekt célja, hogy grafikon kerüljön felépítésre priori környezeti adatok biztosítása nélkül a Duckiebot számára, csak a kamera által szolgáltatott adatokra támaszkodva.

4. Járőrautó. E projektet maguk a diákok találták ki. Javasolták, hogy egy Duckiebotot, a „járőrrendőr”, oktassanak meg követni egy másikat, a „törvényszegőt”. Ehhez ArUco-jelölőkkel célt elismerő mechanizmust használtak. Amint az azonosítás befejeződik, a „törvényszegőnek” jelet küldenek a munka befejezéséről.

A STEM intenzív tanulási megközelítése

Színkalibrálás

A Color Calibration projekt célja a felfestés színeinek észlelési tartományának korrigálása volt az új világítási viszonyokhoz. Ilyen korrekciók nélkül a megállító vonalak, sávelválasztók és útfelületek észlelése nem volt megfelelő. A résztvevők javasolták a festési színek: piros, sárga és fehér előfeldolgozására alapozó megoldást.

Minden színhez előre beállított HSV vagy RGB értéktartomány van megadva. E tartomány felhasználásával a képen minden olyan területet azonosítanak, amely megfelelő színeket tartalmaz, és ezek közül a legnagyobb területet választják ki. Ezt a területet a megjegyzendő színként fogadják el. Ezután statisztikai képleteket használnak, mint például az átlag és a szórás kiszámítása, hogy értékeljék az új színtartományt.

Ez a tartomány a Duckiebot kamera konfigurációs fájljaiba kerül, és később felhasználható. A leírt megközelítést mindhárom színre alkalmazták, végül minden festési színhez tartományokat képezve.

A tesztek szinte tökéletes észlelést mutattak a felfestés vonalainál, kivéve azokat az eseteket, amikor fényes szalagot használtak a felfestéshez, ami annyira visszaverte a fényforrásokat, hogy a kamera nézőpontjából a felfestés fehérnek tűnt, függetlenül az eredeti színétől.

A STEM intenzív tanulási megközelítése

Duck Taxi

A Duck Taxi projekt célja egy algoritmus kidolgozása volt a városban egy utasliba keresésére, majd annak eljutatására a kívánt helyre. A résztvevők ezt a feladatot két részre bontották: detektálás és a gráfon való mozgás.

A diákok a felfestés észlelését végezték el, feltételezve, hogy a felfestés bármely olyan területet jelent a képen, amelyet sárgának lehet azonosítani, vörös háromszöggel (csőrével) rajta. Amint egy ilyen területet észlelnek egy újabb képkockán, a robotnak közelítenie kell hozzá, majd néhány másodpercig meg kell állnia, szimulálva az utas beszállását.

Ezután, a duckietown összes útjának grafikonjával és a robot helyzetével a memóriában előre beprogramozva, valamint a célpont megadását követően a résztvevők a Dijkstra-algoritmus felhasználásával terveznek útvonalat a kiindulási és a végpont között a gráfon. Az output egy parancssorozat formájában jelenik meg - kanyarokat adott minden következő kereszteződésnél.

A STEM intenzív tanulási megközelítése

Az utak gráfja

A projekt célja egy gráf felépítése volt - az utak hálózata Duckietownban. A kapott gráf csúcsai a kereszteződések, az élei pedig az utak. Ehhez a Duckiebotnak felfedeznie kell a várost és elemeznie az útvonalát.

A projekt során megfontolták, de végül elvetették a súlyozott gráf készítésének ötletét, ahol az élek költsége a kereszteződések közötti távolság (az idő, amit az áthaladásra fordítanak) határozza meg. Ennek a megvalósítása túl időigényesnek bizonyult, és az iskolai keretek között nem lett volna elegendő idő rá.

Amikor a Duckiebot elér egy újabb kereszteződést, kiválaszt egy olyan utat, ami a kereszteződésből vezet ki, és amelyen még nem haladt át. Amikor minden út a kereszteződésekben már le van járva, a bot memóriájában létrejön az elkészített szomszédsági lista, amelyet a Graphviz könyvtár segítségével képre alakítanak.

A résztvevők által javasolt algoritmus nem alkalmazható Duckietown tetszőleges elrendezésére, de jól működött egy kis városban, amely négy kereszteződésből állt, és az iskolai keretek között használták. Az ötlet az volt, hogy minden kereszteződést ArUco-markerekkel egészítenek ki, amelyek tartalmazzák a kereszteződés azonosítóját, hogy nyomon követhessék a kereszteződések sorrendjét.
A résztvevők által kidolgozott algoritmus működésének sémája az ábrán látható.

A STEM intenzív tanulási megközelítése

Járőrautó

A projekt célja a szabálysértő bot keresése, üldözése és feltartóztatása Duckietown városában. A járőrbottal a város külső útgyűrűjén kell haladnia, hogy megkeresse a már előre ismert szabálysértő botot. Miután észlelte a szabálysértőt, a járőrbottal követnie kell azt, és meg kell állítania.

A munka egy bot detektálásának és a rajta lévő szabálysértő felismerésének ötletével kezdődött a képen. A csapat javasolta, hogy minden botot egyedi jelzővel lássanak el hátul, akárcsak a valós autóknak van állami rendszámuk. Ehhez ArUco-markereket választottak. Ezeket korábban is használták Duckietownban, mivel könnyen kezelhetők és lehetővé teszik a marker térbeli tájolásának és a távolságának meghatározását.

Ezután szükséges volt megoldani, hogy a járőrrobot szigorúan a külső körön mozogjon, megállás nélkül a kereszteződéseknél. Alapértelmezés szerint a Duckiebot sávban halad és megáll a megállóvonalnál. Ezt követően közlekedési táblák segítségével határozza meg a kereszteződés konfigurációját, és dönt a kereszteződésen való áthaladás irányáról. Minden egyes leírt lépést a robot állapotautomatája egy állapota irányít. Annak érdekében, hogy megszabaduljanak az állásoktól a kereszteződésnél, a csapat módosította az állapotautomatát, hogy amikor a megállóvonalhoz érkezik, a robot azonnal átlépjen a kereszteződésen való áthaladás állapotába.

A következő lépés a jogsértő robot megállításának feladatának megoldása volt. A csapat feltételezte, hogy a járőrrobot SSH-hozzáféréssel rendelkezik a város minden robotjához, tehát van némi információja arról, hogy milyen hitelesítési adatokkal és milyen azonosítóval rendelkezik minden robot. Így, miután felfedezte a jogsértőt, a járőrrobot SSH-n keresztül kapcsolódott a jogsértő robothoz, és leállította annak rendszerét.

Miután megerősítették, hogy a leállítási parancs végrehajtásra került, a járőrrobot is megállt.
A járőrrobot működésének algoritmusát a következő séma alapján lehet bemutatni:

A STEM intenzív tanulási megközelítése

Munka a projekteken

A munka Scrum-szerű formátumban zajlott: minden reggel a diákok megtervezték az aktuális napi feladatokat, este pedig beszámoltak az elvégzett munkáról.

Az első és utolsó napon a diákok prezentációkat készítettek, amelyek bemutatták a kitűzött feladatokat és a megoldási lehetőségeket. Annak érdekében, hogy segítsenek a diákoknak a tervezett lépések követésében, a projektek munkatermeiben folyamatosan jelen voltak orosz és amerikai tanárok, akik válaszoltak a kérdésekre. A kommunikáció túlnyomórészt angol nyelven zajlott.

Eredmények és bemutatásuk

A projektek munkája egy hétig tartott, amely után a diákok bemutatták az eredményeiket. Mindenki prezentációt készített, amelyben elmondták, mit tanultak ebben az iskolában, melyek voltak a legfontosabb leckék, amit megtanultak, mi tetszett vagy nem tetszett nekik. Ezt követően minden csapat bemutatta a projektjét. Minden csapat sikeresen teljesítette a kitűzött feladatokat.

A színkalibráló csapat gyorsabban fejezte be a projektet, mint a többiek, ezért sikerült elkészíteniük a programjuk dokumentációját is. A közlekedési grafikonokat készítő csapat pedig a projekt bemutatója előtti utolsó napon is azon dolgozott, hogy finomítsa és javítsa az algoritmusait.

A STEM intenzív tanulási megközelítése

Zárás

Az iskola befejezése után megkértük a diákokat, hogy értékeljék a lezajlott tevékenységeket, és válaszoljanak arra, hogy mennyire felelt meg az iskola az elvárásaiknak, milyen készségeket szereztek, stb. Minden diák megjegyezte, hogy megtanult csapatban dolgozni, feladatokat megosztani és a saját idejét tervezni.

A hallgatóknak azt is javasolták, hogy értékeljék a tanfolyamok hasznosságát és nehézségét. Itt két értékelési csoport alakult ki: míg egyesek számára a kurzusok nem jelentettek nagy nehézséget, mások a maximálisan nehéznek értékelték őket.

Ez azt jelenti, hogy az iskola helyes pozíciót foglalt el, miközben elérhető maradt az újoncok számára az egyes területeken, de emellett anyagokat is biztosított a tapasztalt diákoknak a gyakorlásra és az ismereteik megerősítésére. Érdemes megjegyezni, hogy a programozási kurzust (Python) szinte mindenki egyszerűnek, de hasznosnak találta. A diákok véleménye szerint a legnehezebb kurzus az "EVM architektúra" volt.

Amikor a diákokat megkérdezték az iskola hátrányairól és előnyeiről, sokan azt válaszolták, hogy tetszett nekik az oktatási stílus, amely keretében a tanárok gyorsan és egyénre szabottan biztosították a segítséget és válaszoltak a felmerült kérdésekre.

A diákok azt is megjegyezték, hogy szerették a napi feladatainak megtervezését és a határidők önálló meghatározását. A hátrányok között kiemelték a szükséges tudás hiányát, amelyre a bottal való munkához volt szükség: a csatlakozás, az alapok megértése és a működésének alapelvei.

Szinte minden diák megjegyezte, hogy az iskola meghaladta az elvárásaikat, ami a iskola helyesen megválasztott irányvonalát jelzi. Így az általános elvek megőrzésére kell törekedni a következő iskola szervezésénél, figyelembe véve és lehetőség szerint megszüntetve a hallgatók és tanárok által említett hátrányokat, például a kurzusok listájának vagy az oktatás időpontjának megváltoztatásával.

A cikk szerzői: a csapat a mobil robotok algoritmus laboratóriuma be. JetBrains Research.

P.S. A vállalati blogunk új nevet kapott. Mostantól a JetBrains oktatási projektjeiről fog szólni.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster