STEM Intensive Learning Approach

Det finns många utmärkta kurser inom ingenjörsutbildningsvärlden, men ofta lider den läroplan som byggts kring dem av ett allvarligt fel - bristen på god samstämmighet mellan olika ämnen. Man kan invända: hur kan detta vara?

När ett utbildningsprogram utformas anges för varje kurs förutsättningar och en tydlig ordning i vilken disciplinerna ska studeras. Till exempel, för att bygga och programmera en primitiv mobil robot måste du kunna lite mekanik för att skapa dess fysiska struktur; grunderna för elektricitet på nivån för Ohm/Kirchhoffs lagar, representation av digitala och analoga signaler; operationer med vektorer och matriser för att beskriva koordinatsystem och robotens rörelser i rymden; grunderna i programmering på nivån för datapresentation, enkla algoritmer och kontrollöverföringsstrukturer, etc. att beskriva beteende.

Är allt detta täckt av universitetskurser? Har såklart. Men med Ohm/Kirchhoffs lagar får vi termodynamik och fältteori; förutom operationer med matriser och vektorer har man att göra med Jordan-former; i programmering, studera polymorfism - ämnen som inte alltid behövs för att lösa ett enkelt praktiskt problem.

Universitetsutbildningen är omfattande – studenten går på bred front och ser ofta inte innebörden och den praktiska betydelsen av den kunskap han får. Vi bestämde oss för att vända paradigmet för universitetsutbildning i STEM (från orden Science, Technology, Engineering, Math) och skapa ett program som är baserat på kunskapens koherens, vilket möjliggör en ökning av fullständigheten i framtiden, det vill säga det innebär intensiv behärskning av ämnen.

Att lära sig ett nytt ämnesområde kan jämföras med att utforska ett lokalt område. Och här finns det två alternativ: antingen har vi en mycket detaljerad karta med en enorm mängd detaljer som behöver studeras (och detta tar mycket tid) för att förstå var de viktigaste landmärkena finns och hur de förhåller sig till varandra ; eller så kan du använda en primitiv plan, där endast huvudpunkterna och deras relativa positioner anges - en sådan karta räcker för att omedelbart börja röra sig i rätt riktning och förtydliga detaljerna när du går.

Vi testade det intensiva STEM-inlärningssättet på en vinterskola, som vi höll tillsammans med MIT-studenter med stöd av JetBrains forskning.

Materialberedning


Den första delen av skolprogrammet var en vecka med lektioner i huvudområdena, som innefattade algebra, elektriska kretsar, datorarkitektur, Python-programmering och en introduktion till ROS (Robot Operating System).

Riktningarna valdes inte av en slump: de skulle komplettera varandra och skulle hjälpa eleverna att se sambandet mellan till synes olika saker vid första anblicken - matematik, elektronik och programmering.

Huvudmålet var förstås inte att hålla en massa föreläsningar utan att ge eleverna möjlighet att själva tillämpa de nyvunna kunskaperna i praktiken.

I algebradelen kunde eleverna träna matrisoperationer och lösa ekvationssystem, som var användbara för att studera elektriska kretsar. Efter att ha lärt sig om strukturen för en transistor och de logiska elementen byggda på dess grund kunde eleverna se hur de användes i en processorenhet, och efter att ha lärt sig grunderna i Python-språket, skriva ett program för en riktig robot i den.

STEM Intensive Learning Approach

Duckietown


Ett av skolans mål var att minimera arbetet med simulatorer där det var möjligt. Därför förbereddes en stor uppsättning elektroniska kretsar, som eleverna fick montera på en breadboard av riktiga komponenter och testa dem i praktiken, och Duckietown valdes som bas för projekten.

Duckietown är ett projekt med öppen källkod som involverar små autonoma robotar som kallas Duckiebots och nätverken av vägar de färdas längs. Duckiebot är en plattform med hjul utrustad med en Raspberry Pi mikrodator och en enda kamera.

Utifrån den har vi förberett en uppsättning möjliga uppgifter, som att bygga en färdkarta, söka efter objekt och stanna bredvid dem, och en rad andra. Eleverna kunde också föreslå sitt eget problem och inte bara skriva ett program för att lösa det, utan också direkt köra det på en riktig robot.

Undervisning


Under föreläsningen presenterade lärare materialet med hjälp av förberedda presentationer. Vissa klasser spelades in på video så att eleverna kunde titta på dem hemma. Under föreläsningarna använde studenterna material på sina datorer, ställde frågor och löste problem tillsammans och självständigt, ibland vid svarta tavlan. Baserat på resultatet av arbetet beräknades betyget för varje elev separat i olika ämnen.

STEM Intensive Learning Approach

Låt oss överväga genomförandet av klasser i varje ämne mer detaljerat. Det första ämnet var linjär algebra. Eleverna ägnade en dag åt att studera vektorer och matriser, linjära ekvationssystem, etc. Praktiska uppgifter strukturerades interaktivt: de föreslagna problemen löstes individuellt och läraren och andra elever gav kommentarer och tips.

STEM Intensive Learning Approach

Det andra ämnet är elektricitet och enkla kretsar. Eleverna lärde sig grunderna i elektrodynamik: spänning, ström, resistans, Ohms lag och Kirchhoffs lagar. Praktiska uppgifter gjordes delvis i simulatorn eller genomfördes på tavlan, men mer tid lades ner på att bygga riktiga kretsar som logiska kretsar, oscillerande kretsar m.m.

STEM Intensive Learning Approach

Nästa ämne är Computer Architecture - på sätt och vis en bro som förbinder fysik och programmering. Studenterna studerade den grundläggande grunden, vars betydelse är mer teoretisk än praktisk. Som praktik designade eleverna självständigt aritmetiska och logiska kretsar i simulatorn och fick poäng för utförda uppgifter.

Den fjärde dagen är den första dagen för programmering. Python 2 valdes som programmeringsspråk eftersom det är det som används i ROS-programmering. Denna dag var uppbyggd enligt följande: lärare presenterade materialet, gav exempel på problemlösning, medan eleverna lyssnade på dem, sittande vid sina datorer och upprepade vad läraren skrev på tavlan eller bilden. Sedan löste eleverna liknande problem på egen hand och lösningarna utvärderades sedan av lärarna.

Den femte dagen ägnades åt ROS: killarna lärde sig om robotprogrammering. Hela skoldagen satt eleverna vid sina datorer och körde programkoden som läraren pratade om. De kunde köra grundläggande ROS-enheter på egen hand och introducerades också till Duckietown-projektet. I slutet av denna dag var eleverna redo att påbörja projektdelen av skolan – att lösa praktiska problem.

STEM Intensive Learning Approach

Beskrivning av utvalda projekt

Eleverna ombads bilda team om tre och välja ett projektämne. Som ett resultat antogs följande projekt:

1. Färgkalibrering. Duckiebot behöver kalibrera kameran när ljusförhållandena ändras, så det finns en automatisk kalibreringsuppgift. Problemet är att färgområdena är mycket känsliga för ljus. Deltagarna implementerade ett verktyg som skulle framhäva de nödvändiga färgerna i en ram (röd, vit och gul) och bygga intervall för varje färg i HSV-format.

2. Duck Taxi. Tanken med detta projekt är att Duckiebot skulle kunna stanna nära ett föremål, plocka upp det och följa en viss rutt. En ljusgul anka valdes som objekt.

STEM Intensive Learning Approach

3. Konstruktion av en väggraf. Det finns en uppgift att konstruera en graf över vägar och korsningar. Målet med detta projekt är att bygga en väggraf utan att tillhandahålla miljödata på förhand till Duckiebot, och endast förlita sig på kameradata.

4. Patrullbil. Detta projekt uppfanns av eleverna själva. De föreslog att man skulle lära en Duckiebot, en "patrull", att jaga en annan, en "överträdare". För detta ändamål användes mekanismen för måligenkänning med användning av ArUco-markören. Så snart igenkänningen är klar skickas en signal till "inkräktaren" för att slutföra arbetet.

STEM Intensive Learning Approach

Färgkalibrering

Målet med Color Calibration-projektet var att anpassa intervallet av igenkännbara markeringsfärger till nya ljusförhållanden. Utan sådana justeringar blev igenkänningen av stopplinjer, filavskiljare och väggränser felaktig. Deltagarna föreslog en lösning baserad på förbearbetning av markeringsfärgmönster: rött, gult och vitt.

Var och en av dessa färger har ett förinställt intervall av HSV- eller RGB-värden. Med detta intervall hittas alla områden av ramen som innehåller lämpliga färger, och den största väljs. Detta område tas som färgen som måste komma ihåg. Statistiska formler som beräkning av medelvärde och standardavvikelse används sedan för att uppskatta det nya färgomfånget.

Detta intervall registreras i Duckiebots kamerakonfigurationsfiler och kan användas senare. Det beskrivna tillvägagångssättet tillämpades på alla tre färgerna och bildade slutligen intervall för var och en av uppmärkningsfärgerna.

Tester visade nästan perfekt igenkänning av markeringslinjer, förutom i de fall då markeringsmaterialen använde blank tejp, som reflekterar ljuskällor så starkt att markeringarna från kamerans betraktningsvinkel verkade vita, oavsett dess ursprungliga färg.

STEM Intensive Learning Approach

Duck Taxi

Duck Taxi-projektet innebar att bygga en algoritm för att söka efter en ankapassagerare i staden och sedan transportera den till önskad punkt. Deltagarna delade detta problem i två: upptäckt och rörelse längs grafen.

Elever utförde ankdetektering genom att anta att en anka är ett område i ramen som kan kännas igen som gult, med en röd triangel (näbb) på den. Så snart ett sådant område upptäcks i nästa bildruta bör roboten närma sig det och sedan stanna i några sekunder, vilket simulerar en passagerares landning.

Sedan, med att ha väggrafen för hela duckietown och botens position lagrad i minnet i förväg, och även ta emot destinationen som indata, bygger deltagarna en väg från startpunkten till ankomstpunkten, med hjälp av Dijkstras algoritm för att hitta vägar i grafen . Utdata presenteras som en uppsättning kommandon - svängar vid var och en av följande korsningar.

STEM Intensive Learning Approach

Graf över vägar

Målet med detta projekt var att bygga en graf - ett nätverk av vägar i Duckietown. Noderna i den resulterande grafen är skärningspunkter och bågarna är vägar. För att göra detta måste Duckiebot utforska staden och analysera dess rutt.

Under arbetet med projektet övervägdes idén om att skapa en viktad graf, men förkastades sedan, där kostnaden för en kant bestäms av avståndet (tiden att resa) mellan korsningar. Genomförandet av denna idé visade sig vara för arbetskrävande, och det fanns inte tillräckligt med tid för det inom skolan.

När Duckiebot kommer till nästa korsning väljer den vägen som leder ut ur korsningen som den ännu inte har tagit. När alla vägar i alla korsningar har passerats, finns den genererade listan över korsningsangränsningar kvar i botens minne, som omvandlas till en bild med hjälp av Graphviz-biblioteket.

Algoritmen som föreslogs av deltagarna var inte lämplig för en slumpmässig Duckietown, men fungerade bra för en liten stad med fyra korsningar som används inom skolan. Tanken var att lägga till en ArUco-markör till varje korsning som innehåller en korsningsidentifierare för att spåra i vilken ordning korsningarna kördes.
Diagrammet över algoritmen som utvecklats av deltagarna visas i figuren.

STEM Intensive Learning Approach

Patrull bil

Målet med detta projekt är att söka, förfölja och kvarhålla en kränkande bot i staden Duckietown. En patrullrobot måste röra sig längs den yttre ringen av en stadsväg och letar efter en känd inkräktare. Efter att ha upptäckt en inkräktare måste patrullboten följa inkräktaren och tvinga honom att stanna.

Arbetet började med sökandet efter en idé för att upptäcka en bot i en ram och känna igen en inkräktare i den. Teamet föreslog att utrusta varje bot i staden med en unik markör på baksidan - precis som riktiga bilar har statliga registreringsnummer. ArUco-markörer valdes för detta ändamål. De har använts tidigare i duckietown eftersom de är lätta att arbeta med och låter dig bestämma orienteringen av markören i rymden och avståndet till den.

Därefter var det nödvändigt att se till att patrullboten rörde sig strikt i den yttre cirkeln utan att stanna vid korsningar. Som standard rör sig Duckiebot i ett körfält och stannar vid stopplinjen. Sedan bestämmer han med hjälp av vägskyltar korsningens konfiguration och gör ett val om korsningens passageriktning. För vart och ett av de beskrivna stegen är ett av tillstånden i robotens finita tillståndsmaskin ansvarig. För att bli av med hållplatser i korsningen bytte teamet tillståndsmaskinen så att när boten närmade sig stopplinjen bytte boten omedelbart till tillståndet att köra rakt genom korsningen.

Nästa steg var att lösa problemet med att stoppa inkräktarboten. Teamet antog att patrullboten kunde ha SSH-åtkomst till var och en av botarna i staden, det vill säga ha lite information om vilken behörighetsdata och vilket id varje bot har. Sålunda, efter att ha upptäckt inkräktaren, började patrullboten ansluta via SSH till inkräktarboten och stänga av dess system.

Efter att ha bekräftat att avstängningskommandot var slutfört stannade även patrullboten.
Operationsalgoritmen för en patrullrobot kan representeras som följande diagram:

STEM Intensive Learning Approach

Jobbar med projekt

Arbetet organiserades i ett format som liknar Scrum: varje morgon planerade eleverna uppgifter för den aktuella dagen och på kvällen rapporterade de om utfört arbete.

De första och sista dagarna förberedde eleverna presentationer som beskrev uppgiften och hur man löser den. För att hjälpa eleverna att följa sina valda planer var lärare från Ryssland och Amerika ständigt närvarande i rummen där arbetet med projekt ägde rum och svarade på frågor. Kommunikationen skedde huvudsakligen på engelska.

Resultat och deras demonstration

Arbetet med projekten pågick en vecka, varefter eleverna presenterade sina resultat. Alla förberedde presentationer där de pratade om vad de lärde sig på den här skolan, vilka var de viktigaste lärdomarna de lärde sig, vad de gillade eller inte gillade. Därefter presenterade varje team sitt projekt. Alla team slutförde sina uppgifter.

Teamet som implementerade färgkalibrering slutförde projektet snabbare än andra, så de hade också tid att förbereda dokumentation för sitt program. Och teamet som arbetade med väggrafen, även den sista dagen före projektdemonstrationen, försökte förfina och korrigera sina algoritmer.

STEM Intensive Learning Approach

Slutsats

Efter avslutad skolgång bad vi eleverna att utvärdera tidigare aktiviteter och svara på frågor om hur väl skolan uppfyllde deras förväntningar, vilka färdigheter de skaffat sig osv. Alla elever noterade att de lärde sig att arbeta i ett team, fördela uppgifter och planera sin tid.

Eleverna ombads också att betygsätta användbarheten och svårigheten i de kurser de läste. Och här bildades två grupper av bedömningar: för vissa var kurserna inte särskilt svåra, andra bedömde dem som extremt svåra.

Det betyder att skolan har tagit rätt position genom att förbli tillgänglig för nybörjare inom ett visst område, men också tillhandahålla material för upprepning och konsolidering av erfarna elever. Det bör noteras att programmeringskursen (Python) uppmärksammades av nästan alla som okomplicerad men användbar. Enligt studenterna var den svåraste kursen "Datorarkitektur".

När eleverna tillfrågades om skolans styrkor och svagheter svarade många att de gillade den valda undervisningsstilen, där lärare gav snabb och personlig assistans och svarade på frågor.

Eleverna noterade också att de gillade att arbeta med daglig planering av sina uppgifter och sätta sina egna deadlines. Som nackdelar noterade eleverna bristen på kunskap som krävdes när man arbetade med boten: när man ansluter, förstår grunderna och principerna för dess funktion.

Nästan alla elever noterade att skolan överträffade deras förväntningar, och det tyder på rätt riktning för att organisera skolan. Sålunda bör de allmänna principerna bibehållas vid anordnandet av nästa skola, med hänsyn till och om möjligt eliminera de brister som noterats av elever och lärare, eventuellt ändra kurslistan eller tidpunkten för deras undervisning.

Artikelförfattare: team laboratorium för mobila robotalgoritmer в JetBrains forskning.

PS Vår företagsblogg har ett nytt namn. Nu kommer det att ägnas åt utbildningsprojekt av JetBrains.

Källa: will.com

Lägg en kommentar