STEM-intensiewe leerbenadering

Daar is baie uitstekende kursusse in die wêreld van ingenieursopleiding, maar die kurrikulum wat daaromheen gebou is, ly dikwels aan een ernstige gebrek - 'n gebrek aan goeie samehang tussen verskeie onderwerpe. Mens kan beswaar maak: hoe kan dit wees?

Wanneer 'n opleidingsprogram gevorm word, word voorvereistes en 'n duidelike volgorde waarin die dissiplines bestudeer moet word vir elke kursus aangedui. Byvoorbeeld, om 'n primitiewe mobiele robot te bou en te programmeer, moet jy 'n bietjie meganika ken om sy fisiese struktuur te skep; basiese beginsels van elektrisiteit op die vlak van Ohm/Kirchhoff se wette, voorstelling van digitale en analoog seine; bewerkings met vektore en matrikse om koördinaatstelsels en bewegings van die robot in die ruimte te beskryf; basiese beginsels van programmering op die vlak van data-aanbieding, eenvoudige algoritmes en beheer-oordragstrukture, ens. gedrag te beskryf.

Word dit alles in universiteitskursusse gedek? Natuurlik het. Met Ohm/Kirchhoff se wette kry ons egter termodinamika en veldteorie; benewens bewerkings met matrikse en vektore, het 'n mens te doen met Jordaan-vorms; in programmering, bestudeer polimorfisme - onderwerpe wat nie altyd nodig is om 'n eenvoudige praktiese probleem op te los nie.

Universiteitsopleiding is omvangryk – die student gaan oor ’n breë front en sien dikwels nie die sin en praktiese betekenis van die kennis wat hy ontvang raak nie. Ons het besluit om die paradigma van universiteitsopleiding in STEM (van die woorde Wetenskap, Tegnologie, Ingenieurswese, Wiskunde) te verander en 'n program te skep wat gebaseer is op die samehang van kennis, wat voorsiening maak vir 'n toename in volledigheid in die toekoms, dit wil sê impliseer intensiewe bemeestering van vakke.

Die aanleer van 'n nuwe vakgebied kan vergelyk word met die verken van 'n plaaslike area. En hier is daar twee opsies: óf ons het 'n baie gedetailleerde kaart met 'n groot hoeveelheid besonderhede wat bestudeer moet word (en dit neem baie tyd) om te verstaan ​​waar die belangrikste landmerke is en hoe hulle met mekaar verband hou ; of jy kan 'n primitiewe plan gebruik, waarop slegs die hoofpunte en hul relatiewe posisies aangedui word - so 'n kaart is genoeg om dadelik in die regte rigting te begin beweeg en die besonderhede duideliker te maak soos jy gaan.

Ons het die intensiewe STEM-leerbenadering by 'n winterskool getoets, wat ons saam met MIT-studente gehou het met die ondersteuning van JetBrains Navorsing.

Voorbereiding van materiaal


Die eerste deel van die skoolprogram was 'n week van klasse in die hoofareas, wat algebra, elektriese stroombane, rekenaarargitektuur, Python-programmering en 'n inleiding tot ROS (Robot Operating System) ingesluit het.

Die rigtings is nie toevallig gekies nie: om mekaar aan te vul, was dit veronderstel om studente te help om die verband tussen oënskynlik verskillende dinge met die eerste oogopslag te sien - wiskunde, elektronika en programmering.

Die hoofdoel was natuurlik nie om baie lesings te gee nie, maar om die studente die geleentheid te gee om die nuutverworwe kennis self in die praktyk toe te pas.

In die algebra-afdeling kon studente matriksbewerkings oefen en stelsels van vergelykings oplos, wat nuttig was om elektriese stroombane te bestudeer. Nadat hulle geleer het oor die struktuur van 'n transistor en die logiese elemente wat op die basis daarvan gebou is, kon studente die gebruik daarvan in 'n verwerkertoestel sien, en nadat hulle die basiese beginsels van die Python-taal geleer het, 'n program vir 'n regte robot daarin skryf.

STEM-intensiewe leerbenadering

Duckietown


Een van die skool se doelwitte was om werk met simulators te minimaliseer waar moontlik. Daarom is 'n groot stel elektroniese stroombane voorberei wat studente op 'n broodbord van regte komponente moes aanmekaarsit en in die praktyk toets, en Duckietown is as basis vir die projekte gekies.

Duckietown is 'n oopbronprojek wat klein outonome robotte genaamd Duckiebots en die netwerke van paaie waarlangs hulle reis, behels. Duckiebot is 'n platform met wiele toegerus met 'n Raspberry Pi-mikrorekenaar en 'n enkele kamera.

Op grond daarvan het ons 'n stel moontlike take voorberei, soos om 'n padkaart te bou, na voorwerpe te soek en langs hulle te stop, en 'n aantal ander. Studente kan ook hul eie probleem voorstel en nie net 'n program skryf om dit op te los nie, maar dit ook dadelik op 'n regte robot laat loop.

onderrig


Tydens die lesing het onderwysers die materiaal aangebied deur vooraf voorbereide aanbiedings te gebruik. Sommige klasse is op video opgeneem sodat studente dit tuis kon kyk. Tydens lesings het studente materiaal op hul rekenaars gebruik, vrae gestel en probleme saam en selfstandig opgelos, soms by die swartbord. Op grond van die resultate van die werk is die gradering van elke student afsonderlik in verskillende vakke bereken.

STEM-intensiewe leerbenadering

Kom ons kyk na die uitvoering van klasse in elke vak in meer besonderhede. Die eerste vak was lineêre algebra. Studente het een dag spandeer om vektore en matrikse, stelsels lineêre vergelykings, ens. Praktiese take is interaktief gestruktureer: die voorgestelde probleme is individueel opgelos, en die onderwyser en ander studente het kommentaar en wenke verskaf.

STEM-intensiewe leerbenadering

Die tweede vak is elektrisiteit en eenvoudige stroombane. Studente het die basiese beginsels van elektrodinamika geleer: spanning, stroom, weerstand, Ohm se wet en Kirchhoff se wette. Praktiese take is deels in die simulator gedoen of op die bord voltooi, maar meer tyd is bestee aan die bou van werklike stroombane soos logiese stroombane, ossillerende stroombane, ens.

STEM-intensiewe leerbenadering

Die volgende onderwerp is Rekenaarargitektuur - in 'n sekere sin 'n brug wat fisika en programmering verbind. Studente het die fundamentele basis bestudeer, waarvan die betekenis meer teoreties as prakties is. As praktyk het studente onafhanklik rekenkundige en logika-stroombane in die simulator ontwerp en punte vir voltooide take ontvang.

Die vierde dag is die eerste dag van programmering. Python 2 is as die programmeertaal gekies omdat dit die een is wat in ROS-programmering gebruik word. Hierdie dag was soos volg gestruktureer: onderwysers het die materiaal aangebied, voorbeelde gegee van die oplossing van probleme, terwyl studente daarna geluister het, by hul rekenaars gesit het, en herhaal wat die onderwyser op die bord of skyfie geskryf het. Toe het die studente soortgelyke probleme op hul eie opgelos, en die oplossings is daarna deur die onderwysers geëvalueer.

Die vyfde dag is aan ROS gewy: die ouens het van robotprogrammering geleer. Die hele skooldag het studente by hul rekenaars gesit en die programkode uitgevoer waarvan die onderwyser gepraat het. Hulle kon basiese ROS-eenhede op hul eie bestuur en is ook aan die Duckietown-projek bekendgestel. Aan die einde van hierdie dag was die studente gereed om met die projekdeel van die skool te begin – praktiese probleme op te los.

STEM-intensiewe leerbenadering

Beskrywing van geselekteerde projekte

Studente is gevra om spanne van drie te vorm en 'n projekonderwerp te kies. Gevolglik is die volgende projekte aanvaar:

1. Kleurkalibrasie. Duckiebot moet die kamera kalibreer wanneer beligtingstoestande verander, so daar is 'n outomatiese kalibrasietaak. Die probleem is dat kleurreekse baie sensitief is vir lig. Deelnemers het 'n hulpmiddel geïmplementeer wat die vereiste kleure in 'n raam (rooi, wit en geel) sou uitlig en reekse vir elke kleur in HSV-formaat sou bou.

2. Eend Taxi. Die idee van hierdie projek is dat Duckiebot naby 'n voorwerp kan stop, dit kan optel en 'n sekere roete kan volg. ’n Heldergeel eend is as voorwerp gekies.

STEM-intensiewe leerbenadering

3. Konstruksie van 'n padgrafiek. Daar is 'n taak om 'n grafiek van paaie en kruisings te konstrueer. Die doel van hierdie projek is om 'n padgrafiek te bou sonder om vooraf omgewingsdata aan Duckiebot te verskaf, en slegs op kameradata staatmaak.

4. Patrolliemotor. Hierdie projek is deur die studente self uitgedink. Hulle het voorgestel om een ​​Duckiebot, 'n "patrollie", te leer om 'n ander, 'n "oortreder" te jaag. Vir hierdie doel is die meganisme van teikenherkenning deur die ArUco-merker gebruik. Sodra herkenning voltooi is, word 'n sein aan die "indringer" gestuur om die werk te voltooi.

STEM-intensiewe leerbenadering

Kleurkalibrasie

Die doel van die Kleurkalibrasie-projek was om die reeks herkenbare merkkleure aan te pas by nuwe beligtingstoestande. Sonder sulke aanpassings het herkenning van stoplyne, baanskeiers en padgrense verkeerd geword. Deelnemers het 'n oplossing voorgestel wat gebaseer is op die voorafverwerking van merkkleurpatrone: rooi, geel en wit.

Elkeen van hierdie kleure het 'n voorafbepaalde reeks HSV- of RGB-waardes. Deur hierdie reeks te gebruik, word alle areas van die raam wat geskikte kleure bevat gevind, en die grootste een word gekies. Hierdie area word geneem as die kleur wat onthou moet word. Statistiese formules soos die berekening van die gemiddelde en standaardafwyking word dan gebruik om die nuwe kleurreeks te skat.

Hierdie reeks word in Duckiebot se kamera-konfigurasielêers aangeteken en kan later gebruik word. Die beskryfde benadering is op al drie kleure toegepas, en het uiteindelik reekse vir elk van die opmaakkleure gevorm.

Toetse het byna perfekte herkenning van merklyne getoon, behalwe in gevalle waar die merkmateriaal glansband gebruik het, wat ligbronne so sterk weerkaats dat die merke vanuit die kamera se kykhoek wit voorgekom het, ongeag die oorspronklike kleur.

STEM-intensiewe leerbenadering

Eend Taxi

Die Duck Taxi-projek het behels die bou van 'n algoritme om 'n eendpassasier in die stad te soek, en dit dan na die vereiste punt te vervoer. Die deelnemers het hierdie probleem in twee verdeel: opsporing en beweging langs die grafiek.

Studente het eendopsporing uitgevoer deur die aanname te maak dat 'n eend enige area in die raam is wat as geel herken kan word, met 'n rooi driehoek (bek) daarop. Sodra so 'n area in die volgende raam opgespoor word, moet die robot dit nader en dan vir 'n paar sekondes stop, wat die landing van 'n passasier simuleer.

Dan, met die padgrafiek van die hele duckietown en die bot se posisie vooraf in die geheue gestoor, en ook die bestemming as invoer ontvang, bou deelnemers 'n pad vanaf die vertrekpunt na die aankomspunt, deur Dijkstra se algoritme te gebruik om paaie in die grafiek te vind . Die afvoer word aangebied as 'n stel opdragte - draaie by elk van die volgende kruisings.

STEM-intensiewe leerbenadering

Grafiek van paaie

Die doel van hierdie projek was om 'n grafiek te bou - 'n netwerk van paaie in Duckietown. Die nodusse van die resulterende grafiek is kruisings, en die boë is paaie. Om dit te doen, moet Duckiebot die stad verken en sy roete ontleed.

Tydens die werk aan die projek is die idee om 'n geweegde grafiek te skep, oorweeg, maar dan weggegooi, waarin die koste van 'n rand bepaal word deur die afstand (tyd om te reis) tussen kruisings. Die implementering van hierdie idee het geblyk te arbeidsintensief te wees, en daar was nie genoeg tyd daarvoor binne die skool nie.

Wanneer Duckiebot by die volgende kruising kom, kies dit die pad wat uit die kruising lei wat dit nog nie geneem het nie. Wanneer al die paaie by alle kruisings verby is, bly die gegenereerde lys van kruisingsaangrensings in die bot se geheue, wat met behulp van die Graphviz-biblioteek in 'n beeld omgeskakel word.

Die algoritme wat deur die deelnemers voorgestel is, was nie geskik vir 'n ewekansige Duckietown nie, maar het goed gewerk vir 'n klein dorpie van vier kruisings wat binne die skool gebruik word. Die idee was om 'n ArUco-merker by elke kruising te voeg wat 'n kruising-identifiseerder bevat om die volgorde waarin die kruisings gery is, op te spoor.
Die diagram van die algoritme wat deur die deelnemers ontwikkel is, word in die figuur getoon.

STEM-intensiewe leerbenadering

Patrollie motor

Die doel van hierdie projek is om 'n oortredende bot in die stad Duckietown te soek, agtervolg en aan te hou. 'n Patrolliebot moet langs die buitenste ring van 'n stadspad beweeg, op soek na 'n bekende indringerbot. Nadat 'n indringer opgespoor is, moet die patrolliebot die indringer volg en hom dwing om te stop.

Die werk het begin met die soeke na 'n idee om 'n bot in 'n raam op te spoor en 'n indringer daarin te herken. Die span het voorgestel om elke bot in die stad met 'n unieke merker op die rug toe te rus - net soos regte motors staatsregistrasienommers het. ArUco-merkers is vir hierdie doel gekies. Hulle is voorheen in duckietown gebruik aangesien dit maklik is om mee te werk en jou in staat stel om die oriëntasie van die merker in die ruimte en die afstand daarheen te bepaal.

Vervolgens was dit nodig om te verseker dat die patrolliebot streng in die buitenste sirkel beweeg sonder om by kruisings te stop. By verstek beweeg Duckiebot in 'n baan en stop by die stoplyn. Dan bepaal hy met behulp van padtekens die konfigurasie van die kruising en maak 'n keuse oor die deurgangsrigting van die kruising. Vir elk van die beskryfde stadiums is een van die toestande van die robot se eindige toestandmasjien verantwoordelik. Om van stilhouplekke by die kruising ontslae te raak, het die span die staatsmasjien verander sodat die bot onmiddellik oorgeskakel het na die toestand om reguit deur die kruising te ry wanneer hy die stoplyn nader.

Die volgende stap was om die probleem op te los om die indringerbot te stop. Die span het die aanname gemaak dat die patrollie-bot SSH-toegang tot elk van die bots in die stad kan hê, dit wil sê, 'n bietjie inligting hê oor watter magtigingsdata en watter ID elke bot het. Dus, nadat hy die indringer opgespoor het, het die patrolliebot begin om via SSH aan die indringerbot te koppel en sy stelsel afgesluit.

Nadat hy bevestig het dat die afsluit-opdrag voltooi is, het die patrolliebot ook gestop.
Die werkingsalgoritme van 'n patrollierobot kan as die volgende diagram voorgestel word:

STEM-intensiewe leerbenadering

Werk aan projekte

Die werk is in 'n formaat soortgelyk aan Scrum georganiseer: elke oggend het die studente take vir die huidige dag beplan, en saans het hulle verslag gedoen oor die werk wat gedoen is.

Op die eerste en laaste dae het studente aanbiedings voorberei wat die taak beskryf en hoe om dit op te los. Om studente te help om hul gekose planne te volg, was onderwysers van Rusland en Amerika voortdurend teenwoordig in die kamers waar aan projekte gewerk het en vrae beantwoord het. Kommunikasie het hoofsaaklik in Engels plaasgevind.

Resultate en hul demonstrasie

Werk aan die projekte het een week geduur, waarna die studente hul resultate voorgelê het. Almal het aanbiedings voorberei waarin hulle gesels het oor wat hulle by hierdie skool geleer het, wat die belangrikste lesse was wat hulle geleer het, waarvan hulle gehou het of nie gehou het nie. Daarna het elke span sy projek aangebied. Alle spanne het hul take voltooi.

Die span wat kleurkalibrasie implementeer het die projek vinniger voltooi as ander, so hulle het ook tyd gehad om dokumentasie vir hul program voor te berei. En die span wat aan die padgrafiek gewerk het, selfs op die laaste dag voor die projekdemonstrasie, het probeer om hul algoritmes te verfyn en reg te stel.

STEM-intensiewe leerbenadering

Gevolgtrekking

Nadat ons skool voltooi het, het ons studente gevra om vorige aktiwiteite te evalueer en vrae te beantwoord oor hoe goed die skool aan hul verwagtinge voldoen het, watter vaardighede hulle opgedoen het, ens. Alle studente het opgemerk dat hulle geleer het om in 'n span te werk, take te versprei en hul tyd te beplan.

Studente is ook gevra om die bruikbaarheid en moeilikheidsgraad van die kursusse wat hulle geneem het, te beoordeel. En hier is twee groepe assesserings gevorm: vir sommige het die kursusse nie veel probleme opgelewer nie, ander het dit as uiters moeilik bestempel.

Dit beteken dat die skool die regte posisie ingeneem het deur toeganklik te bly vir beginners in 'n bepaalde veld, maar ook materiaal te verskaf vir herhaling en konsolidasie deur ervare studente. Daar moet kennis geneem word dat die programmeringskursus (Python) deur byna almal as ongekompliseerd maar nuttig beskou is. Volgens studente was die moeilikste kursus "Rekenaarargitektuur".

Toe studente uitgevra is oor die skool se sterk- en swakpunte, het baie geantwoord dat hulle van die gekose onderrigstyl hou, waarin onderwysers vinnige en persoonlike bystand verleen en vrae beantwoord het.

Studente het ook opgemerk dat hulle daarvan gehou het om in die modus van daaglikse beplanning van hul take te werk en hul eie sperdatums te stel. As nadele het studente kennis geneem van die gebrek aan kennis wat verskaf is, wat vereis word wanneer met die bot gewerk word: wanneer hulle verbind, die basiese beginsels en beginsels van die werking daarvan verstaan.

Byna alle studente het opgemerk dat die skool hul verwagtinge oortref het, en dit dui op die regte rigting om die skool te organiseer. Die algemene beginsels moet dus gehandhaaf word wanneer die volgende skool georganiseer word, met inagneming en, indien moontlik, die uitskakeling van die tekortkominge wat deur studente en onderwysers opgemerk is, miskien deur die lys van kursusse of die tydsberekening van hul onderrig te verander.

Artikel skrywers: span laboratorium van mobiele robotalgoritmes в JetBrains Navorsing.

NS Ons korporatiewe blog het 'n nuwe naam. Nou sal dit gewy word aan opvoedkundige projekte van JetBrains.

Bron: will.com

Voeg 'n opmerking