Në botën e arsimit inxhinierik ekzistojnë shumë kurse të shkëlqyera, por shpesh herë programi i studimit i ndërtuar mbi to ka një mangësi të madhe — mungesën e lidhshmërisë së mirë midis temave të ndryshme. Mund të kundërshtohet: si është e mundur kjo?
Kur formohet një program study, për çdo kurs përcaktohen parakushtet dhe një renditje e qartë se në çfarë rendi duhen studiuar disiplinat. Për shembull, për të ndërtuar dhe programuar një robot mobil primitiv, nevojitet të dihet pak mekanikë për të krijuar strukturën e tij fizike; baza e elektricit në nivelin e ligjeve të Ohm/Kirchhoff-it, përfaqësimi i sinjaleve digjitale dhe analoge; operacionet me vektorë dhe matrica për të përshkruar sistemet e koordinatave dhe lëvizjet e robotit në hapësirë; baza e programimit në nivelin e përfaqësimit të të dhënave, algoritmeve më të thjeshta dhe strukturave të kalimit të kontrollit, etj. për të përshkruar sjelljen.
A ka gjithçka këtë në kursit universitar? Sigurisht që ka. Megjithatë, në ligjet e Ohm/Kirchhoff-it ne marrim termodinamikën dhe teorinë e fushës; përveç operacioneve me matrica dhe vektorë, duhet të merremi me format Jordan; në programim, studimi i polimorfizmit — tema që nuk janë gjithmonë të nevojshme për zgjidhjen e një detyre praktike të thjeshtë.
Arsimi universitar është ekstensiv — studentët shkojnë nëpër shumë fusha dhe shpesh nuk shohin kuptimin dhe rëndësinë praktike të njohurive që fitojnë. Ne vendosëm ta përmbysnim paradigmen e arsimit STEM (nga fjalët Shkencë, Teknologji, Inxhinieri, Matematikë) dhe të krijonim një program që mbështetet në lidhshmërinë e njohurive, duke lejuar rritjen e plotësisë në të ardhmen, duke nënkuptuar kështu një mësim intensiv të disiplines.
Studimi i një fushe të re mund të krahasohet me eksplorimin e një territori. Këtu janë dy mundësi: ose kemi një hartë shumë të detajuar me një sasi të madhe detajesh që duhet të studiohen (çka merr shumë kohë), për të kuptuar se ku ndodhen pikë referimi kryesore dhe si janë lidhur ato me njëra-tjetrën; ose mund të përdorim një plan primitiv, ku janë shënuar vetëm pikat kryesore dhe vendndodhja e tyre relative — një pëlqim i tillë është i mjaftueshëm për të filluar të lëvizim në drejtimin e duhur, duke saktësuar detajet gjatë rrugës.
Qasja intensive e mësimit STEM e kemi testuar në shkollën dimërore, e cila u mbajt në bashkëpunim me studentët e MIT me mbështetje nga
Përgatitja e materialeve
Pjesa e parë e programit të shkollës ishte një javë mësimesh në drejtime themelore, të cilat përfshinin algebrën, qarqet elektrike, arkitekturën e kompjuterëve, programimin në Python dhe njohjen me ROS (Sistemi i Operimit për Robotët).
Drejtimet nuk ishin përzgjedhur rastësisht: duke u plotësuar me njëri-tjetrin, ato duhej të ndihmonin studentët të shihnin lidhjen midis, dukshëm të ndryshme, në pamje të parë, gjërave — matematikës, elektronikës dhe programimit.
Sigurisht, qëllimi kryesor nuk ishte të mbaheshin shumë ligjërata, por t'u jepeshin mundësi studentëve që të aplikonin njohuritë e reja në praktikë.
Në seksionin e algebërës, studentët mund të ushtrohen në operacione me matrica dhe zgjidhjen e sistemeve të ekuacioneve, të cilat ishin të nevojshme për studimin e qarqeve elektrike. Pas mësimit mbi funksionimin e transistorëve dhe elemente logjikë të ndërtuar mbi bazën e tyre, nxënësit mund të shihnin aplikimin e tyre në projektin e procesorit, dhe pasi studiuan bazat e gjuhës Python, të shkruanin një program për një robot real.

Duckietown
Një nga detyrat e shkollës ishte minimizimi i punës me simulatorët aty ku ishte e mundur. Prandaj, u përgatit një set i madh skemash elektronike, të cilat studentët duhej t'i montonin në një pllakë provë me komponentë realë dhe t'i testonin në praktikë, ndërsa baza për projektet u zgjodh Duckietown.
Duckietown — një projekt i hapur që përfshin robotë autonomë të vegjël të quajtur Duckiebot dhe rrugë në të cilat ata lëvizin. Duckiebot është një platformë me katër rrota që ka një mikrokompjuter Raspberry Pi dhe një kamerë.
Në bazë të tij, ne përgatitëm një grup mundësish detyrash, si ndërtimi i hartave të rrugëve, gjetja e objekteve dhe ndalesa afër tyre dhe disa të tjera. Studentët gjithashtu mund të propozonin një problem të vetin dhe jo vetëm të shkruanin një program për ta zgjidhur, por edhe ta запускували atë në një robot real.
Mësimdhënia
Gjatë leksioneve, mësuesit trajtonin përmbajtjen, duke përdorur prezantime të përgatitura paraprakisht. Disa seanca u regjistruan në video, kështu që studentët kishin mundësinë t'i shikonin ato në shtëpi. Gjatë leksioneve, studentët përdornin materialet në kompjuterët e tyre, bënin pyetje, zgjidhnin probleme së bashku dhe individualisht, ndonjëherë në tabelë. Pas rezultateve të punës, u përllogarit një renditje për secilin student veçmas për lëndët e ndryshme.

Le ta shqyrtojmë zhvillimin e mësimeve për secilën lëndë më në detaje. Lëndë e parë ishte algebra lineare. Studentët studiuan për një ditë vektorët dhe matricat, sistemet e ekuacioneve lineare etj. Detyrat praktike u ndërtuan në mënyrë interaktive: problemet e propozuara u zgjidhën individualisht, ndërsa mësuesi dhe studentët e tjerë dhanë komente dhe sugjerime.

Lënda e dytë — elektriciteti dhe skemat e thjeshta. Studentët studiuan bazat e elektrodinamikës: tensioni, rrjedha, qëndresa, ligji i Ohmit dhe ligjet e Kirchhoff-it. Detyrat praktike për një pjesë u bënë në simulator ose u realizuan në tabelë, por më shumë kohë u kushtua ndërtimit të skemave reale, si skemat logjike, konturet osciluese etj.

Tema tjetër — Arkitektura e kompjuterëve — në njëfarë mënyre është një urë që lidh fizikën me programimin. Studentët studiuan bazënThemelore, rëndësia e së cilës është më tepër teorike sesa praktike. Si praktikë, studentët projektuan për katrorë logjikë në simulator, dhe për detyrat e kryera morën pikë.
Dita katërt — dita e parë e programimit. Gjuha e programimit që u zgjodh ishte Python 2, pasi kjo është ajo që përdoret në programimin e ROS. Kjo ditë u organizua si më poshtë: mësuesit shpjeguan materialin, sollën shembuj për zgjidhjen e problemeve, ndërsa studentët i dëgjonin ata, duke u ulur para kompjuterëve dhe duke ripërsëritur atë që kishte shkruar mësuesi në tabelë ose në slajd. Më pas, nxënësit zgjidhën probleme të ngjashme vetë, dhe pastaj zgjidhjet u vlerësuan nga mësuesit.
Dita e pestë ishte e dedikuar për ROS: djemtë u njohën me programimin e roboteve. Gjatë gjithë ditës mësimore, studentët qëndruan para kompjuterëve, duke ekzekutuar kodin programor që u shpjegoi mësuesi. Ata ishin në gjendje të ekzekutonin vetë njësitë bazë të ROS, si dhe u njohën me projektin Duckietown. Pas përfundimit të kësaj dite, studentët ishin gati të fillonin pjesën e projektit të shkollës — zgjidhjen e problemeve praktike.

Përshkrimi i projekteve të zgjedhura
Studentët u propozuan të bashkohen në grupe prej tre njerëzish dhe të zgjedhin temën e projektit. Si rezultat, u pranuan projektet e mëposhtme:
1. Kalibrimi i ngjyrave. Duckiebot-i ka nevojë për kalibrimin e kamerës kur ndryshojnë kushtet e ndriçimit, prandaj ekziston detyra e kalibrimit automatik. Problemi është se gamat e ngjyrave janë shumë të ndjeshme ndaj ndriçimit. Pjesëmarrësit zbatuan një mjet, i cili do të nxirrte në kuadër ngjyrat e kërkuara (të kuq, të bardhë dhe të verdhë) dhe do të ndante gamat për secilën ngjyrë në formatin HSV.
2. Duck Taxi. Ideja e këtij projekti është që Duckiebot-i të mund të ndalojë pranë një objekti të caktuar, ta marrë atë dhe të ndjekë një itinerar të caktuar. Objekti i zgjedhur ishte një patë e ndritshme e verdhë.

3. Ndërtimi i grafit të rrugëve. Ekziston detyra e ndërtimit të grafit të rrugëve dhe kryqëzimeve. Qëllimi i këtij projekti është të ndërtohet grafi i rrugëve pa ofruar të dhëna a priori mbi ambientin për Duckiebot-in, duke u mbështetur vetëm në të dhënat nga kamera.
4. Makinë patrullimi. Ky projekt u shpik nga vetë studentët. Ata propozuan të mësojnë një Duckiebot, "patrullues", të ndjekë një tjetër — "shkelësin". Për këtë, u përdor mekanizmi i njohjes së objektit sipas ArUco-markeri. Sapo njohja të përfundojë, "shkelësi" dërgohet një sinjal për përfundimin e punës.

Kalibrimi i Ngjyrave
Qëllimi i projektit Color Calibration ishte rregullimi i gamës së ngjyrave të njohura të shenjave sipas kushteve të reja të ndriçimit. Pa këto rregullime, njohja e vijave të ndalimit, ndarësve të korsive dhe kufijve të rrugëve bëhej e pasaktë. Pjesëmarrësit propozuan një zgjidhje që bazohej në paraprocesimin e modeleve të ngjyrave të shenjave: të kuqe, të verdhë dhe të bardhë.
Për secilën nga këto ngjyra është caktuar një gamë paraprake HSV ose vlerash RGB. Me përdorimin e kësaj gamë, në kadër identifikohen të gjitha zonat që përmbajnë ngjyra të përshtatshme, dhe zgjedhet më e madhja. Kjo zonë merret si ngjyrë që duhet të ruhet. Më pas përdoren formula statistikore, si llogaritja e mesatares dhe devijimi standard për të vlerësuar gamën e re të ngjyrës.
Kjo gamë shkruhet në skedarët e konfigurimit të kamerës Duckiebot dhe mund të përdoret më vonë. Qasja e përshkruar është zbatuar për të tri ngjyrat, duke formuar përfundimisht gamat për secilën nga ngjyrat e shenjave.
Testet treguan një njohje pothuajse të përsosur të vijave të shenjave, përveç atyre rasteve kur materialet e shenjave ishin tape të ndritshëm që reflektuan aq shumë burimet e ndriçimit, saqë nën një kënd të caktuar të kamerës, shenja dukej e bardhë pavarësisht ngjyrës së saj origjinale.

Duck Taxi
Projekti Duck Taxi parashikonte ndërtimin e një algoritmi për kërkimin e një patku-pasagjer në qytet dhe më pas transportimin e tij në pikën e nevojshme. Pjesëmarrësit e ndanë këtë detyrë në dy pjesë: detektimi dhe lëvizja në graf.
Studentët realizuan detektimin e patkut, duke bërë supozimin se patku është çdo zonë në kadër që mund të njihet si e verdhë, me një trekëndësh të kuq (nozë) mbi të. Sap po zbulohet një zonë e tillë në kadrin e ardhshëm, roboti duhet të afrojë tek ajo dhe pastaj të ndalojë për disa sekonda, duke imituar një ulje të pasagjerit.
Më pas, duke pasur në kujdes një graf të paracaktuar të rrugëve të duckietown-it dhe pozitat e robotit, si dhe duke marrë si të dhëna hyrëse pikën e destinacionit, pjesëmarrësit ndërtojnë një rrugë nga pika e nisjes në pikën e mbërritjes, duke përdorur algoritmin Dijkstra për kërkimin e rrugëve në graf. Rezultatet përfaqësohen si një grup komandash — kthesash në çdo kryqëzim të ardhshëm.

Grafi i Rrugëve
Qëllimi i këtij projekti ishte ndërtimi i një grafi — rrjeti i rrugëve në Duckietown. Nyjet e grafit përfundimtar janë kryqëzimet, dhe harku — rrugët. Për këtë, Duckiebot duhet të eksplorojë qytetin dhe të analizoje rrugën e tij.
Gjatë punës mbi projektin, u shqyrtua, por më pas u hodh poshtë ideja e ndërtimit të një grafi të peshuar, ku çmimi i harkut përcaktohet nga distanca (koha e kaluar) midis kryqëzimeve. Realizimi i kësaj ideje u tregua shumë i ndërlikuar dhe nuk do të kishte kohë për të brenda kornizës së shkollës.
Kur Duckiebot arrin në një kryqëzim tjetër, ai zgjedh rrugën që del nga ky kryqëzim, me të cilën nuk është lëvizur ende. Pasi të jenë kaluar të gjitha rrugët në të gjithë kryqëzimet, në memorjen e botit mbetet një listë e formuar e përngjashmërive të kryqëzimeve, e cila shndërrohet në një imazh me ndihmën e bibliotekës Graphviz.
Algoritmi i propozuar nga pjesëmarrësit nuk është i përshtatshëm për një Duckietown të rastësishëm, por funksionoi mirë në një qytet të vogël me katër kryqëzime, i përdorur brenda shkollës. Ideja ishte të plotësohej çdo kryqëzim me një marker ArUco që përmbante identifikuesin e kryqëzimit, për të ndjekur rendin e kalimit të kryqëzimeve.
Skema e punës së algoritmit të zhvilluar nga pjesëmarrësit është e paraqitur në figurë.

Mjeti i Patrullës
Qëllimi i këtij projekti është të gjejë, ndjekë dhe kapë botin-shkelës në qytetin Duckietown. Boti-patrullë duhet të lëvizë në rripin e jashtëm të rrugës në qytet në kërkim të një boti-shkelës të njohur paraprakisht. Pas zbulimit të shkelësit, boti patrullues duhet ta ndjekë atë dhe ta detyrojë të ndalojë.
Puna filloi me gjetjen e ideve për detektimin e botit në kadrin e imazhit dhe njohjen e shkelësit. Ekipi propozoi të pajiste çdo bot në qytet me një marker unik nga prapa — ashtu siç kanë numrat e regjistrimit automjetet reale. Për këtë u zgjodhën ArUco-markers. Ato ishin përdorur më parë në duckietown, pasi ishin të thjeshta për t'u punuar dhe lejonin të përcaktohej orientimi i markerit në hapësirë dhe distanca deri te ai.
Pastaj ishte e nevojshme që boti patrullues të lëvizte në rrethin e jashtëm pa ndaluar në kryqëzime. Në parazgjedhje, Duckiebot lëviz në korsi dhe ndalon në linjën e ndalimit. Më pas, duke përdorur shenjat e rrugës, përcakton konfigurimin e kryqëzimit dhe bën zgjedhjen për drejtimin e kalimit të kryqëzimit. Çdo një nga etapat e përshkruara ka një nga gjendjet e automatit fundor të robotit. Për t'u çliruar nga ndalesat në kryqëzim, ekipi ndryshoi automatin e gjendjeve në mënyrë që, kur arrin në linjën e ndalimit, boti menjëherë të kalonte në gjendjen e kalimit të kryqëzimit drejt.
Hapi tjetër ishte zgjidhja e problemit të ndalimit të botit-shkelës. Ekipi kishte supozuar se boti patrullues mund të kishte qasje përmes SSH në çdo nga robotët në qytet, pra të kishte disa informacione rreth të dhënave për autentifikim dhe cilin ID ka çdo boti. Kështu, pasi zbuloi shkelësin, boti patrullues filloi të lidhej përmes SSH me botin-shkelës dhe të fikte sistemin e tij.
Pas konfirmimit se komanda e fikjes ishte kryer, boti patrullues gjithashtu ndalte.
Algoritmi i punës së robotit patrullues mund të paraqitet në formën e vijës së mëposhtme:

Puna në projekte
Puna u organizua në një format të ngjashëm me Scrum: çdo mëngjes studentët planifikonin detyrat për ditën aktuale, dhe në mbrëmje raportonin për punën e kryer.
Në ditët e para dhe të fundit, studentët përgatitën prezantime që përshkruanin detyrën e vendosur dhe mënyrat e zgjidhjes së saj. Për të ndihmuar studentët të ndiqnin planet e zgjedhura, në dhomat ku zhvillohej puna mbi projektet, ishin vazhdimisht mësues nga Rusia dhe Amerika, të cilët përgjigjeshin në pyetje. Komunikimi ndodhi kryesisht në gjuhën angleze.
Rezultatet dhe demonstrimi i tyre
Puna mbi projektet zgjati një javë, pas së cilës studentët paraqitën rezultatet e tyre. Të gjithë përgatitën prezantime, në të cilat treguan se çfarë kishin mësuar në këtë shkollë, cilat ishin mësimet më të rëndësishme që morën, çfarë u pëlqeu apo nuk u pëlqeu. Pas kësaj, çdo ekip paraqiti projektin e tij. Të gjitha ekipet e përballuan detyrat e vendosura.
Ekipi që realizoi kalibrimin e ngjyrave e përfundoi projektin më shpejt se të tjerët, kështu që ata patën kohë për të përgatitur edhe dokumentacionin për programin e tyre. Ndërsa ekipi që merrej me grafiku i rrugëve, madje edhe në ditën e fundit përpara demonstrimit të projektit, u përpoq të përmirësonte dhe rregullonte algoritmet e tij.

Përfundim
Pas përfundimit të shkollës, ne kërkuam nga studentët të vlerësojnë aktivitetet që kaluan dhe të përgjigjen në pyetje se sa mirë shkolla përputhej me pritshmëritë e tyre, cilat aftësi kishin fituar etj. Të gjithë studentët theksuan se kishin mësuar të punonin në ekip, të shpërndanin detyrat dhe të planifikonin kohën e tyre.
Studentëve gjithashtu iu kërkua të vlerësojnë dobishmërinë dhe vështirësinë e kurseve që kishin kaluar. Dhe këtu u formuan dy grupe vlerësimesh: për disa kurset nuk përbënin një vështirësi të madhe, ndërsa të tjerët i vlerësuan ato si jashtëzakonisht të vështira.
Kjo do të thotë se shkolla zuri pozicionin e duhur, duke u mbajtur e aksesueshme për fillestarët në një fushë të caktuar, por gjithashtu duke ofruar materiale për përsëritje dhe konsolidim për studentët me përvojë. Duhet theksuar se kursi për programimin (Python) ishte shënuar nga të gjithë si i lehtë, por i dobishëm. Kursi më i vështirë, sipas studentëve, ishte 'Arkitektura e Kompjuterëve'.
Kur studentëve iu kërkua mendimi mbi disavantazhet dhe avantazhet e shkollës, shumë prej tyre u përgjigjën se u pëlqeu stili i mësimdhënies i zgjedhur, ku mësuesit ofronin ndihmë të shpejtë dhe individuale dhe përgjigjeshin në pyetjet e lindura.
Ndërsa nxënësit gjithashtu theksuan se u pëlqeu të punonin në mënyrë të përditshme të planifikimit të detyrave të tyre dhe të vendosnin vetë afatet. Si disavantazhe, studentët përmendën mungesën e njohurive të ofruara që ishin të nevojshme për punën me botin: gjatë lidhjes, kuptimit të bazave dhe parimeve të tij të funksionimit.
Gati të gjithë studentët theksuan se shkolla i kaloi pritjet e tyre, dhe kjo tregon për drejtimin e duhur të organizimit të shkollës. Prandaj, duhet ruajtur parimet e përgjithshme në organizimin e shkollës së ardhshme, duke marrë parasysh dhe, nëse është e mundur, duke eliminuar disavantazhet që përmendën studentët dhe mësuesit, ndoshta duke ndryshuar listën e kurseve ose kohën e mësimdhënies.
Autori i artikullit: ekipi në
P.S. Blogu ynë korporativ ka një emër të ri. Tani do të dedikohet projekteve edukative të kompanisë JetBrains.
Burimi: habr.com
