STEM Intensive Learning Approach

Maraming mahuhusay na kurso sa mundo ng edukasyong inhinyero, ngunit kadalasan ang kurikulum na binuo sa kanilang paligid ay naghihirap mula sa isang seryosong depekto - isang kakulangan ng magandang pagkakaugnay-ugnay sa pagitan ng iba't ibang paksa. Maaaring tumutol ang isa: paano ito mangyayari?

Kapag ang isang programa sa pagsasanay ay nabuo, ang mga kinakailangan at isang malinaw na pagkakasunud-sunod kung saan ang mga disiplina ay dapat pag-aralan ay ipinahiwatig para sa bawat kurso. Halimbawa, upang makabuo at makapagprograma ng isang primitive na mobile robot, kailangan mong malaman ang kaunting mekanika upang lumikha ng pisikal na istraktura nito; mga pangunahing kaalaman sa kuryente sa antas ng mga batas ng Ohm/Kirchhoff, representasyon ng mga digital at analog na signal; mga operasyon na may mga vector at matrice upang ilarawan ang mga coordinate system at paggalaw ng robot sa kalawakan; mga pangunahing kaalaman sa programming sa antas ng presentasyon ng data, mga simpleng algorithm at mga istruktura ng paglilipat ng kontrol, atbp. upang ilarawan ang pag-uugali.

Saklaw ba ang lahat ng ito sa mga kurso sa unibersidad? Syempre meron. Gayunpaman, sa pamamagitan ng mga batas ng Ohm/Kirchhoff nakakakuha tayo ng thermodynamics at field theory; bilang karagdagan sa mga operasyon na may mga matrice at vectors, kailangang harapin ng isa ang mga form ng Jordan; sa programming, pag-aralan ang polymorphism - mga paksa na hindi palaging kailangan upang malutas ang isang simpleng praktikal na problema.

Malawak ang edukasyon sa unibersidad - ang mag-aaral ay napupunta sa isang malawak na harapan at madalas ay hindi nakikita ang kahulugan at praktikal na kahalagahan ng kaalaman na kanyang natatanggap. Napagpasyahan naming i-on ang paradigm ng edukasyon sa unibersidad sa STEM (mula sa mga salitang Science, Technology, Engineering, Math) at lumikha ng isang programa na batay sa pagkakaugnay ng kaalaman, na nagbibigay-daan para sa pagtaas ng pagiging kumpleto sa hinaharap, iyon ay, ito nagpapahiwatig ng masinsinang pagwawagi ng mga paksa.

Ang pag-aaral ng bagong paksa ay maihahambing sa paggalugad sa isang lokal na lugar. At narito mayroong dalawang mga pagpipilian: alinman sa mayroon kaming isang napaka-detalyadong mapa na may malaking halaga ng mga detalye na kailangang pag-aralan (at nangangailangan ito ng maraming oras) upang maunawaan kung nasaan ang mga pangunahing palatandaan at kung paano nauugnay ang mga ito sa isa't isa ; o maaari kang gumamit ng isang primitive na plano, kung saan ang mga pangunahing punto lamang at ang kanilang mga kamag-anak na posisyon ay ipinahiwatig - ang gayong mapa ay sapat na upang agad na magsimulang lumipat sa tamang direksyon, na nililinaw ang mga detalye habang ikaw ay pupunta.

Sinubukan namin ang masinsinang diskarte sa pag-aaral ng STEM sa isang winter school, na ginanap namin kasama ng mga mag-aaral ng MIT na may suporta ng Pananaliksik sa JetBrains.

Paghahanda ng materyal


Ang unang bahagi ng programa ng paaralan ay isang linggo ng mga klase sa mga pangunahing lugar, na kinabibilangan ng algebra, electrical circuits, computer architecture, Python programming at isang panimula sa ROS (Robot Operating System).

Ang mga direksyon ay hindi pinili ng pagkakataon: pagpupuno sa isa't isa, sila ay dapat na tulungan ang mga mag-aaral na makita ang koneksyon sa pagitan ng tila magkaibang mga bagay sa unang tingin - matematika, electronics at programming.

Siyempre, ang pangunahing layunin ay hindi upang magbigay ng maraming mga lektura, ngunit upang bigyan ang mga mag-aaral ng pagkakataon na ilapat ang bagong nakuha na kaalaman sa kanilang sarili sa pagsasanay.

Sa seksyon ng algebra, ang mga mag-aaral ay maaaring magsanay ng mga operasyon ng matrix at paglutas ng mga sistema ng mga equation, na kapaki-pakinabang sa pag-aaral ng mga electrical circuit. Ang pagkakaroon ng natutunan tungkol sa istraktura ng isang transistor at ang mga lohikal na elemento na binuo sa batayan nito, makikita ng mga mag-aaral ang kanilang paggamit sa isang aparato ng processor, at pagkatapos matutunan ang mga pangunahing kaalaman ng wikang Python, magsulat ng isang programa para sa isang tunay na robot dito.

STEM Intensive Learning Approach

Duckietown


Ang isa sa mga layunin ng paaralan ay upang mabawasan ang trabaho sa mga simulator kung posible. Samakatuwid, ang isang malaking hanay ng mga electronic circuit ay inihanda, kung saan ang mga mag-aaral ay kailangang tipunin sa isang breadboard mula sa mga tunay na bahagi at subukan ang mga ito sa pagsasanay, at ang Duckietown ay pinili bilang batayan para sa mga proyekto.

Ang Duckietown ay isang open-source na proyekto na kinasasangkutan ng mga maliliit na autonomous na robot na tinatawag na Duckiebots at ang mga network ng mga kalsadang kanilang dinadaanan. Ang Duckiebot ay isang wheeled platform na nilagyan ng Raspberry Pi microcomputer at isang solong camera.

Batay dito, naghanda kami ng isang hanay ng mga posibleng gawain, tulad ng paggawa ng mapa ng daan, paghahanap ng mga bagay at paghinto sa tabi ng mga ito, at marami pang iba. Ang mga mag-aaral ay maaari ring magmungkahi ng kanilang sariling problema at hindi lamang magsulat ng isang programa upang malutas ito, ngunit agad din itong patakbuhin sa isang tunay na robot.

Pagtuturo


Sa panahon ng panayam, ipinakita ng mga guro ang materyal gamit ang mga pre-prepared presentations. Ang ilang mga klase ay nai-record sa video upang mapanood ito ng mga mag-aaral sa bahay. Sa panahon ng mga lektura, ang mga mag-aaral ay gumagamit ng mga materyales sa kanilang mga computer, nagtanong, at nilutas ang mga problema nang sama-sama at nakapag-iisa, minsan sa pisara. Batay sa mga resulta ng trabaho, ang rating ng bawat mag-aaral ay kinakalkula nang hiwalay sa iba't ibang mga paksa.

STEM Intensive Learning Approach

Isaalang-alang natin ang pagsasagawa ng mga klase sa bawat paksa nang mas detalyado. Ang unang paksa ay linear algebra. Ang mga mag-aaral ay gumugol ng isang araw sa pag-aaral ng mga vector at matrice, mga sistema ng linear equation, atbp. Ang mga praktikal na gawain ay interaktib na nakabalangkas: ang mga iminungkahing problema ay nalutas nang isa-isa, at ang guro at iba pang mga mag-aaral ay nagbigay ng mga komento at tip.

STEM Intensive Learning Approach

Ang pangalawang paksa ay kuryente at simpleng circuits. Natutunan ng mga mag-aaral ang mga pangunahing kaalaman sa electrodynamics: boltahe, kasalukuyang, paglaban, batas ng Ohm at mga batas ni Kirchhoff. Ang mga praktikal na gawain ay bahagyang ginawa sa simulator o natapos sa board, ngunit mas maraming oras ang ginugol sa pagbuo ng mga tunay na circuit tulad ng mga logic circuit, oscillating circuit, atbp.

STEM Intensive Learning Approach

Ang susunod na paksa ay Computer Architecture - sa isang kahulugan, isang tulay na nagkokonekta sa physics at programming. Pinag-aralan ng mga mag-aaral ang pangunahing batayan, ang kahalagahan nito ay mas teoretikal kaysa praktikal. Bilang pagsasanay, ang mga mag-aaral ay nakapag-iisa na nagdisenyo ng mga arithmetic at logic circuit sa simulator at nakatanggap ng mga puntos para sa mga natapos na gawain.

Ang ikaapat na araw ay ang unang araw ng programming. Napili ang Python 2 bilang programming language dahil ito ang ginagamit sa ROS programming. Ang araw na ito ay nakabalangkas tulad ng sumusunod: ipinakita ng mga guro ang materyal, nagbigay ng mga halimbawa ng paglutas ng mga problema, habang ang mga mag-aaral ay nakikinig sa kanila, nakaupo sa kanilang mga computer, at inuulit ang isinulat ng guro sa pisara o slide. Pagkatapos ay nalutas ng mga mag-aaral ang mga katulad na problema sa kanilang sarili, at ang mga solusyon ay sinuri ng mga guro.

Ang ikalimang araw ay nakatuon sa ROS: natutunan ng mga lalaki ang tungkol sa programming ng robot. Sa buong araw ng pag-aaral, ang mga mag-aaral ay nakaupo sa kanilang mga computer, pinapagana ang program code na binanggit ng guro. Nagawa nilang magpatakbo ng mga pangunahing yunit ng ROS sa kanilang sarili at ipinakilala din sa proyekto ng Duckietown. Sa pagtatapos ng araw na ito, handa na ang mga mag-aaral na simulan ang bahagi ng proyekto ng paaralan - paglutas ng mga praktikal na problema.

STEM Intensive Learning Approach

Paglalarawan ng mga napiling proyekto

Ang mga mag-aaral ay hiniling na bumuo ng mga pangkat ng tatlo at pumili ng paksa ng proyekto. Bilang resulta, ang mga sumusunod na proyekto ay pinagtibay:

1. Pag-calibrate ng kulay. Kailangang i-calibrate ng Duckiebot ang camera kapag nagbabago ang mga kondisyon ng pag-iilaw, kaya mayroong awtomatikong gawain sa pag-calibrate. Ang problema ay ang mga hanay ng kulay ay napakasensitibo sa liwanag. Nagpatupad ang mga kalahok ng utility na magha-highlight ng mga kinakailangang kulay sa isang frame (pula, puti at dilaw) at bumuo ng mga hanay para sa bawat kulay sa HSV na format.

2. Duck Taxi. Ang ideya ng proyektong ito ay maaaring huminto si Duckiebot malapit sa isang bagay, kunin ito at sundin ang isang tiyak na ruta. Isang maliwanag na dilaw na pato ang napili bilang bagay.

STEM Intensive Learning Approach

3. Paggawa ng isang road graph. May gawaing gumawa ng graph ng mga kalsada at intersection. Ang layunin ng proyektong ito ay bumuo ng road graph nang hindi nagbibigay ng priori environmental data sa Duckiebot, na umaasa lamang sa data ng camera.

4. Patrol car. Ang proyektong ito ay inimbento ng mga mag-aaral mismo. Iminungkahi nilang turuan ang isang Duckiebot, isang "patrol," upang habulin ang isa pa, isang "violator." Para sa layuning ito, ginamit ang mekanismo ng target na pagkilala gamit ang ArUco marker. Sa sandaling makumpleto ang pagkilala, isang senyales ang ipinadala sa "manghihimasok" upang makumpleto ang gawain.

STEM Intensive Learning Approach

Pag-calibrate ng Kulay

Ang layunin ng proyekto ng Color Calibration ay upang ayusin ang hanay ng mga nakikilalang kulay ng pagmamarka sa mga bagong kondisyon ng pag-iilaw. Kung walang ganitong mga pagsasaayos, ang pagkilala sa mga stop lines, mga separator ng lane at mga hangganan ng kalsada ay naging hindi tama. Ang mga kalahok ay nagmungkahi ng isang solusyon batay sa mga pattern ng kulay ng markup preprocessing: pula, dilaw at puti.

Ang bawat isa sa mga kulay na ito ay may preset na hanay ng mga halaga ng HSV o RGB. Gamit ang hanay na ito, lahat ng bahagi ng frame na naglalaman ng mga angkop na kulay ay makikita, at ang pinakamalaking isa ay pipiliin. Ang lugar na ito ay kinuha bilang ang kulay na kailangang tandaan. Ang mga pormula ng istatistika tulad ng pagkalkula ng mean at standard deviation ay ginagamit upang tantyahin ang bagong hanay ng kulay.

Ang hanay na ito ay naitala sa mga file ng pagsasaayos ng camera ng Duckiebot at maaaring magamit sa ibang pagkakataon. Ang inilarawan na diskarte ay inilapat sa lahat ng tatlong kulay, sa huli ay bumubuo ng mga hanay para sa bawat isa sa mga kulay ng markup.

Ang mga pagsubok ay nagpakita ng halos perpektong pagkilala sa mga linya ng pagmamarka, maliban sa mga kaso kung saan ang mga materyales sa pagmamarka ay gumamit ng makintab na tape, na nagpapakita ng mga ilaw na pinagmumulan nang napakalakas na mula sa viewing angle ng camera ay lumilitaw na puti ang mga marka, anuman ang orihinal na kulay nito.

STEM Intensive Learning Approach

Duck Taxi

Kasama sa proyekto ng Duck Taxi ang pagbuo ng algorithm para maghanap ng pasahero ng pato sa lungsod, at pagkatapos ay ihatid ito sa kinakailangang punto. Hinati ng mga kalahok ang problemang ito sa dalawa: pagtuklas at paggalaw sa kahabaan ng graph.

Ang mga mag-aaral ay nagsagawa ng pagtuklas ng pato sa pamamagitan ng pagpapalagay na ang pato ay anumang lugar sa frame na maaaring makilala bilang dilaw, na may pulang tatsulok (tuka) dito. Sa sandaling matukoy ang naturang lugar sa susunod na frame, dapat lapitan ito ng robot at pagkatapos ay huminto ng ilang segundo, na ginagaya ang paglapag ng isang pasahero.

Pagkatapos, ang pagkakaroon ng road graph ng buong duckietown at ang posisyon ng bot na nakaimbak sa memorya nang maaga, at natanggap din ang patutunguhan bilang input, ang mga kalahok ay bumuo ng isang landas mula sa departure point hanggang sa arrival point, gamit ang Dijkstra's algorithm upang mahanap ang mga path sa graph . Ang output ay ipinakita bilang isang set ng mga command - lumiliko sa bawat isa sa mga sumusunod na intersection.

STEM Intensive Learning Approach

Graph ng mga Kalsada

Ang layunin ng proyektong ito ay bumuo ng isang graph - isang network ng mga kalsada sa Duckietown. Ang mga node ng resultang graph ay mga intersection, at ang mga arko ay mga kalsada. Para magawa ito, dapat galugarin ng Duckiebot ang lungsod at suriin ang ruta nito.

Sa panahon ng trabaho sa proyekto, ang ideya ng paglikha ng isang timbang na graph ay isinasaalang-alang, ngunit pagkatapos ay itinapon, kung saan ang halaga ng isang gilid ay tinutukoy ng distansya (oras sa paglalakbay) sa pagitan ng mga interseksyon. Ang pagpapatupad ng ideyang ito ay naging masyadong labor-intensive, at walang sapat na oras para dito sa loob ng paaralan.

Kapag nakarating si Duckiebot sa susunod na intersection, pipiliin nito ang kalsadang papalabas ng intersection na hindi pa nito tinatahak. Kapag naipasa na ang lahat ng kalsada sa lahat ng intersection, mananatili sa memorya ng bot ang nabuong listahan ng mga intersection adjacencies, na na-convert sa isang imahe gamit ang library ng Graphviz.

Ang algorithm na iminungkahi ng mga kalahok ay hindi angkop para sa isang random na Duckietown, ngunit gumana nang maayos para sa isang maliit na bayan ng apat na intersection na ginamit sa loob ng paaralan. Ang ideya ay magdagdag ng ArUco marker sa bawat intersection na naglalaman ng intersection identifier upang subaybayan ang pagkakasunud-sunod kung saan hinihimok ang mga intersection.
Ang diagram ng algorithm na binuo ng mga kalahok ay ipinapakita sa figure.

STEM Intensive Learning Approach

Sasakyan ng patrol

Ang layunin ng proyektong ito ay hanapin, ituloy at pigilan ang isang lumalabag na bot sa lungsod ng Duckietown. Ang isang patrol bot ay dapat lumipat sa kahabaan ng panlabas na ring ng isang kalsada sa lungsod, na naghahanap ng isang kilalang intruder bot. Pagkatapos makakita ng nanghihimasok, dapat sundin ng patrol bot ang nanghihimasok at pilitin siyang huminto.

Nagsimula ang gawain sa paghahanap ng ideya para sa pag-detect ng bot sa isang frame at pagkilala sa isang nanghihimasok dito. Iminungkahi ng koponan na bigyan ang bawat bot sa lungsod ng isang natatanging marker sa likod - tulad ng mga tunay na kotse na may mga numero ng pagpaparehistro ng estado. Pinili ang mga marker ng ArUco para sa layuning ito. Nagamit na ang mga ito dati sa duckietown dahil madali silang gamitin at nagbibigay-daan sa iyo na matukoy ang oryentasyon ng marker sa espasyo at ang distansya dito.

Susunod, kinakailangan upang matiyak na ang patrol bot ay mahigpit na gumagalaw sa panlabas na bilog nang hindi humihinto sa mga intersection. Bilang default, gumagalaw si Duckiebot sa isang lane at humihinto sa stop line. Pagkatapos, sa tulong ng mga palatandaan sa kalsada, tinutukoy niya ang pagsasaayos ng intersection at gumawa ng isang pagpipilian tungkol sa direksyon ng pagpasa ng intersection. Para sa bawat isa sa mga inilarawang yugto, isa sa mga estado ng finite state machine ng robot ang may pananagutan. Upang maalis ang mga paghinto sa intersection, binago ng team ang state machine upang kapag papalapit sa stop line, agad na lumipat ang bot sa estado ng pagmamaneho nang diretso sa intersection.

Ang susunod na hakbang ay upang malutas ang problema ng pagpapahinto sa intruder bot. Ginawa ng koponan ang pagpapalagay na ang patrol bot ay maaaring magkaroon ng SSH na access sa bawat bot sa lungsod, ibig sabihin, may ilang impormasyon tungkol sa kung anong data ng pahintulot at kung anong id ang mayroon ang bawat bot. Kaya, pagkatapos matukoy ang nanghihimasok, nagsimulang kumonekta ang patrol bot sa pamamagitan ng SSH sa intruder bot at isinara ang system nito.

Matapos makumpirma na ang shutdown command ay nakumpleto, ang patrol bot ay tumigil din.
Ang algorithm ng pagpapatakbo ng isang patrol robot ay maaaring katawanin bilang sumusunod na diagram:

STEM Intensive Learning Approach

Nagtatrabaho sa mga proyekto

Ang gawain ay inayos sa isang format na katulad ng Scrum: tuwing umaga ang mga mag-aaral ay nagpaplano ng mga gawain para sa kasalukuyang araw, at sa gabi ay iniulat nila ang gawaing ginawa.

Sa una at huling mga araw, naghanda ang mga mag-aaral ng mga presentasyon na naglalarawan sa gawain at kung paano ito lutasin. Upang matulungan ang mga mag-aaral na sundin ang kanilang napiling mga plano, ang mga guro mula sa Russia at Amerika ay palaging naroroon sa mga silid kung saan ginanap ang mga proyekto, na sumasagot sa mga tanong. Pangunahing naganap ang komunikasyon sa Ingles.

Mga resulta at ang kanilang pagpapakita

Ang trabaho sa mga proyekto ay tumagal ng isang linggo, pagkatapos ay ipinakita ng mga mag-aaral ang kanilang mga resulta. Ang lahat ay naghanda ng mga presentasyon kung saan pinag-usapan nila ang kanilang natutunan sa paaralang ito, kung ano ang pinakamahalagang aral na natutunan nila, kung ano ang gusto o hindi nila gusto. Pagkatapos nito, ipinakita ng bawat pangkat ang kanilang proyekto. Nakumpleto ng lahat ng mga koponan ang kanilang mga gawain.

Nakumpleto ng pangkat na nagpapatupad ng color calibration ang proyekto nang mas mabilis kaysa sa iba, kaya nagkaroon din sila ng oras upang maghanda ng dokumentasyon para sa kanilang programa. At sinubukan ng pangkat na nagtatrabaho sa road graph, kahit na sa huling araw bago ang pagpapakita ng proyekto, na pinuhin at itama ang kanilang mga algorithm.

STEM Intensive Learning Approach

Konklusyon

Pagkatapos makumpleto ang paaralan, hiniling namin sa mga mag-aaral na suriin ang mga nakaraang aktibidad at sagutin ang mga tanong tungkol sa kung gaano kahusay naabot ng paaralan ang kanilang mga inaasahan, kung anong mga kasanayan ang kanilang nakuha, atbp. Napansin ng lahat ng mga mag-aaral na natutunan nilang magtrabaho sa isang pangkat, ipamahagi ang mga gawain at planuhin ang kanilang oras.

Hiniling din sa mga mag-aaral na i-rate ang pagiging kapaki-pakinabang at kahirapan ng mga kursong kanilang kinuha. At dito nabuo ang dalawang grupo ng mga pagtatasa: para sa ilan ang mga kurso ay hindi gaanong nahihirapan, ang iba ay minarkahan ang mga ito bilang napakahirap.

Nangangahulugan ito na nakuha ng paaralan ang tamang posisyon sa pamamagitan ng pananatiling naa-access sa mga nagsisimula sa isang partikular na larangan, ngunit nagbibigay din ng mga materyales para sa pag-uulit at pagsasama-sama ng mga may karanasang mag-aaral. Dapat pansinin na ang kurso ng programming (Python) ay napansin ng halos lahat bilang hindi kumplikado ngunit kapaki-pakinabang. Ayon sa mga estudyante, ang pinakamahirap na kurso ay β€œComputer Architecture”.

Nang tanungin ang mga mag-aaral tungkol sa mga kalakasan at kahinaan ng paaralan, marami ang tumugon na nagustuhan nila ang napiling istilo ng pagtuturo, kung saan ang mga guro ay nagbibigay ng maagap at personal na tulong at sumagot ng mga tanong.

Napansin din ng mga mag-aaral na gusto nilang magtrabaho sa paraan ng pang-araw-araw na pagpaplano ng kanilang mga gawain at pagtatakda ng kanilang sariling mga deadline. Bilang mga kawalan, napansin ng mga mag-aaral ang kakulangan ng kaalaman na ibinigay, na kinakailangan kapag nagtatrabaho sa bot: kapag kumokonekta, nauunawaan ang mga pangunahing kaalaman at prinsipyo ng pagpapatakbo nito.

Halos lahat ng mga mag-aaral ay nabanggit na ang paaralan ay lumampas sa kanilang mga inaasahan, at ito ay nagpapahiwatig ng tamang direksyon para sa pag-aayos ng paaralan. Kaya, ang mga pangkalahatang prinsipyo ay dapat panatilihin kapag nag-oorganisa ng susunod na paaralan, isinasaalang-alang at, kung maaari, inaalis ang mga pagkukulang na napansin ng mga mag-aaral at guro, marahil ay binabago ang listahan ng mga kurso o ang oras ng kanilang pagtuturo.

Mga may-akda ng artikulo: pangkat laboratoryo ng mga algorithm ng mobile robot Π² Pananaliksik sa JetBrains.

PS Ang aming corporate blog ay may bagong pangalan. Ngayon ay ilalaan ito sa mga proyektong pang-edukasyon ng JetBrains.

Pinagmulan: www.habr.com

Magdagdag ng komento