STEM-intensiv læringstilnærming

Det finnes mange utmerkede kurs i ingeniørutdanningsverdenen, men ofte lider læreplanen som er bygget rundt dem av én alvorlig feil – mangel på god sammenheng mellom ulike emner. Man kan kanskje innvende: hvordan kan dette være?

Når et opplæringsprogram er under utforming, angis forutsetninger og en klar rekkefølge for fagene som skal studeres for hvert emne. For eksempel, for å bygge og programmere en primitiv mobil robot, må du kunne litt mekanikk for å lage dens fysiske struktur; grunnleggende om elektrisitet på nivå med Ohm/Kirchhoffs lover, representasjon av digitale og analoge signaler; operasjoner med vektorer og matriser for å beskrive koordinatsystemer og bevegelser til roboten i rommet; grunnleggende programmering på nivå med datapresentasjon, enkle algoritmer og kontrolloverføringsstrukturer, etc. å beskrive atferd.

Er alt dette dekket i universitetskurs? Selvfølgelig har. Men med Ohm/Kirchhoffs lover får vi termodynamikk og feltteori; i tillegg til operasjoner med matriser og vektorer, må man forholde seg til Jordan-former; i programmering, studere polymorfisme - emner som ikke alltid er nødvendige for å løse et enkelt praktisk problem.

Universitetsutdanningen er omfattende – studenten går på bred front og ser ofte ikke meningen og den praktiske betydningen av kunnskapen han får. Vi bestemte oss for å snu paradigmet for universitetsutdanning i STEM (fra ordene Science, Technology, Engineering, Math) og lage et program som er basert på sammenhengen i kunnskap, noe som åpner for en økning i fullstendighet i fremtiden, det vil si det innebærer intensiv mestring av fag.

Å lære et nytt fagområde kan sammenlignes med å utforske et nærområde. Og her er det to alternativer: enten har vi et veldig detaljert kart med en enorm mengde detaljer som må studeres (og dette tar mye tid) for å forstå hvor de viktigste landemerkene er og hvordan de forholder seg til hverandre ; eller du kan bruke en primitiv plan, der bare hovedpunktene og deres relative posisjoner er angitt - et slikt kart er nok til å umiddelbart begynne å bevege seg i riktig retning, og avklare detaljene mens du går.

Vi testet den intensive STEM-læringstilnærmingen på en vinterskole, som vi holdt sammen med MIT-studenter med støtte fra JetBrains forskning.

Materialtilberedning


Første del av skoleprogrammet var en uke med undervisning i hovedområdene, som inkluderte algebra, elektriske kretser, dataarkitektur, Python-programmering og en introduksjon til ROS (Robot Operating System).

Retningene ble ikke valgt ved en tilfeldighet: de skulle utfylle hverandre og hjelpe elevene til å se sammenhengen mellom tilsynelatende forskjellige ting ved første øyekast - matematikk, elektronikk og programmering.

Hovedmålet var selvsagt ikke å holde mange forelesninger, men å gi studentene mulighet til selv å anvende den nyervervede kunnskapen i praksis.

I algebradelen kunne elevene øve på matriseoperasjoner og løsning av ligningssystemer, som var nyttige for å studere elektriske kretser. Etter å ha lært om strukturen til en transistor og de logiske elementene bygget på dens grunnlag, kunne elevene se bruken deres i en prosessorenhet, og etter å ha lært det grunnleggende om Python-språket, skrive et program for en ekte robot i den.

STEM-intensiv læringstilnærming

Duckietown


Et av skolens mål var å minimere arbeidet med simulatorer der det var mulig. Derfor ble det utarbeidet et stort sett med elektroniske kretser, som elevene skulle sette sammen på et brødbrett av ekte komponenter og teste dem i praksis, og Duckietown ble valgt som base for prosjektene.

Duckietown er et åpen kildekode-prosjekt som involverer små autonome roboter kalt Duckiebots og nettverkene av veier de reiser langs. Duckiebot er en plattform med hjul utstyrt med en Raspberry Pi-mikrodatamaskin og et enkelt kamera.

Basert på det har vi utarbeidet et sett med mulige oppgaver, som å bygge et veikart, søke etter objekter og stoppe ved siden av dem, og en rekke andre. Elevene kunne også foreslå sitt eget problem og ikke bare skrive et program for å løse det, men også umiddelbart kjøre det på en ekte robot.

undervisning


Under forelesningen presenterte lærerne stoffet ved hjelp av forhåndsforberedte presentasjoner. Noen klasser ble tatt opp på video slik at elevene kunne se dem hjemme. Under forelesningene brukte studentene materialer på datamaskinene sine, stilte spørsmål og løste problemer sammen og uavhengig, noen ganger ved tavlen. Basert på resultatene av arbeidet ble karakteren til hver elev beregnet separat i forskjellige fag.

STEM-intensiv læringstilnærming

La oss vurdere gjennomføringen av klasser i hvert emne mer detaljert. Det første emnet var lineær algebra. Studentene brukte en dag på å studere vektorer og matriser, systemer av lineære ligninger, etc. Praktiske oppgaver ble strukturert interaktivt: de foreslåtte problemene ble løst individuelt, og læreren og andre studenter kom med kommentarer og tips.

STEM-intensiv læringstilnærming

Det andre faget er elektrisitet og enkle kretsløp. Elevene lærte det grunnleggende om elektrodynamikk: spenning, strøm, motstand, Ohms lov og Kirchhoffs lover. Praktiske oppgaver ble delvis gjort i simulatoren eller gjennomført på tavlen, men det ble brukt mer tid på å bygge reelle kretser som logiske kretser, oscillerende kretser m.m.

STEM-intensiv læringstilnærming

Det neste emnet er Computer Architecture - på en måte en bro som forbinder fysikk og programmering. Studentene studerte det grunnleggende grunnlaget, hvis betydning er mer teoretisk enn praktisk. Som praksis designet studentene selvstendig aritmetiske og logiske kretser i simulatoren og fikk poeng for fullførte oppgaver.

Den fjerde dagen er den første dagen med programmering. Python 2 ble valgt som programmeringsspråk fordi det er det som brukes i ROS-programmering. Denne dagen var strukturert slik: lærere presenterte stoffet, ga eksempler på å løse problemer, mens elevene lyttet til dem, sittende ved datamaskinene sine og gjentok det læreren skrev på tavlen eller lysbildet. Deretter løste elevene lignende problemer på egenhånd, og løsningene ble deretter evaluert av lærerne.

Den femte dagen var dedikert til ROS: gutta lærte om robotprogrammering. Hele skoledagen satt elevene ved datamaskinene sine og kjørte programkoden som læreren snakket om. De var i stand til å drive grunnleggende ROS-enheter på egen hånd og ble også introdusert for Duckietown-prosjektet. På slutten av denne dagen var elevene klare til å begynne på prosjektdelen av skolen – å løse praktiske problemer.

STEM-intensiv læringstilnærming

Beskrivelse av utvalgte prosjekter

Studentene ble bedt om å danne team på tre og velge et prosjekttema. Som et resultat ble følgende prosjekter vedtatt:

1. Fargekalibrering. Duckiebot må kalibrere kameraet når lysforholdene endrer seg, så det er en automatisk kalibreringsoppgave. Problemet er at fargespekter er veldig følsomme for lys. Deltakerne implementerte et verktøy som ville fremheve de nødvendige fargene i en ramme (rød, hvit og gul) og bygge områder for hver farge i HSV-format.

2. Duck Taxi. Ideen med dette prosjektet er at Duckiebot kunne stoppe i nærheten av en gjenstand, plukke den opp og følge en bestemt rute. En knallgul and ble valgt som objekt.

STEM-intensiv læringstilnærming

3. Konstruksjon av en veigraf. Det er en oppgave å lage en graf over veier og kryss. Målet med dette prosjektet er å bygge en veigraf uten å gi på forhånd miljødata til Duckiebot, og kun stole på kameradata.

4. Patruljebil. Dette prosjektet ble oppfunnet av elevene selv. De foreslo å lære en Duckiebot, en «patrulje», å jage en annen, en «krenker». For dette formålet ble mekanismen for målgjenkjenning ved bruk av ArUco-markøren brukt. Så snart gjenkjenningen er fullført, sendes et signal til "inntrengeren" for å fullføre arbeidet.

STEM-intensiv læringstilnærming

Fargekalibrering

Målet med Color Calibration-prosjektet var å justere rekkevidden av gjenkjennelige markeringsfarger til nye lysforhold. Uten slike justeringer ble gjenkjenning av stopplinjer, kjørefeltskiller og veigrenser feil. Deltakerne foreslo en løsning basert på forbehandling av markeringsfargemønstre: rødt, gult og hvitt.

Hver av disse fargene har et forhåndsinnstilt område med HSV- eller RGB-verdier. Ved å bruke dette området blir alle områder av rammen som inneholder passende farger funnet, og den største velges. Dette området er tatt som fargen som må huskes. Statistiske formler som beregning av gjennomsnitt og standardavvik brukes deretter for å estimere det nye fargeområdet.

Dette området er registrert i Duckiebots kamerakonfigurasjonsfiler og kan brukes senere. Den beskrevne tilnærmingen ble brukt på alle tre fargene, og dannet til slutt områder for hver av markeringsfargene.

Tester viste tilnærmet perfekt gjenkjennelse av markeringslinjer, bortsett fra i tilfeller der markeringsmaterialene brukte blank tape, som reflekterer lyskilder så sterkt at fra kameraets synsvinkel virket markeringene hvite, uavhengig av originalfargen.

STEM-intensiv læringstilnærming

Duck Taxi

Duck Taxi-prosjektet innebar å bygge en algoritme for å søke etter en andepassasjer i byen, og deretter transportere den til det nødvendige punktet. Deltakerne delte dette problemet i to: deteksjon og bevegelse langs grafen.

Elever utførte anddeteksjon ved å anta at en and er et hvilket som helst område i rammen som kan gjenkjennes som gult, med en rød trekant (nebb) på. Så snart et slikt område oppdages i neste bilde, bør roboten nærme seg det og deretter stoppe i noen sekunder, og simulere landingen av en passasjer.

Deretter, med å ha veigrafen for hele duckietown og robotens posisjon lagret i minnet på forhånd, og også motta destinasjonen som input, bygger deltakerne en sti fra avgangspunktet til ankomstpunktet, ved å bruke Dijkstras algoritme for å finne stier i grafen . Utgangen presenteres som et sett med kommandoer - svinger ved hvert av de følgende kryssene.

STEM-intensiv læringstilnærming

Graf over veier

Målet med dette prosjektet var å bygge en graf – et nettverk av veier i Duckietown. Nodene til den resulterende grafen er kryss, og buene er veier. For å gjøre dette må Duckiebot utforske byen og analysere ruten.

Under arbeidet med prosjektet ble ideen om å lage en vektet graf vurdert, men deretter forkastet, der kostnaden for en kant bestemmes av avstanden (tid å reise) mellom kryssene. Gjennomføringen av denne ideen viste seg å være for arbeidskrevende, og det var ikke nok tid til det på skolen.

Når Duckiebot kommer til neste kryss, velger den veien som fører ut av krysset som den ennå ikke har tatt. Når alle veiene i alle veikryss er passert, forblir den genererte listen over tilstøtende kryss i botens minne, som konverteres til et bilde ved hjelp av Graphviz-biblioteket.

Algoritmen som ble foreslått av deltakerne var ikke egnet for en tilfeldig Duckietown, men fungerte bra for en liten by med fire veikryss brukt på skolen. Ideen var å legge til en ArUco-markør til hvert veikryss som inneholder en veikryssidentifikator for å spore rekkefølgen kryssene ble kjørt i.
Diagrammet over algoritmen utviklet av deltakerne er vist i figuren.

STEM-intensiv læringstilnærming

Patruljebil

Målet med dette prosjektet er å lete etter, forfølge og holde tilbake en bot i byen Duckietown. En patruljerobot må bevege seg langs den ytre ringen av en byvei, på jakt etter en kjent inntrengerrobot. Etter å ha oppdaget en inntrenger, må patruljeroboten følge inntrengeren og tvinge ham til å stoppe.

Arbeidet begynte med letingen etter en idé for å oppdage en bot i en ramme og gjenkjenne en inntrenger i den. Teamet foreslo å utstyre hver robot i byen med en unik markør på baksiden - akkurat som ekte biler har statlige registreringsnummer. ArUco-markører ble valgt for dette formålet. De har blitt brukt tidligere i duckietown da de er enkle å jobbe med og lar deg bestemme retningen til markøren i rommet og avstanden til den.

Deretter var det nødvendig å sørge for at patruljeroboten beveget seg strengt i den ytre sirkelen uten å stoppe i kryss. Som standard beveger Duckiebot seg i en bane og stopper ved stopplinjen. Deretter, ved hjelp av veiskilt, bestemmer han konfigurasjonen av krysset og tar et valg om passasjeretningen til krysset. For hvert av de beskrevne stadiene er en av tilstandene til robotens endelige tilstandsmaskin ansvarlig. For å bli kvitt stopp i krysset endret teamet tilstandsmaskinen slik at når roboten nærmet seg stopplinjen, byttet roboten umiddelbart til tilstanden å kjøre rett gjennom krysset.

Det neste trinnet var å løse problemet med å stoppe inntrengerroboten. Teamet antok at patruljeroboten kunne ha SSH-tilgang til hver av robotene i byen, det vil si ha litt informasjon om hvilke autorisasjonsdata og hvilken id hver enkelt bot har. Etter å ha oppdaget inntrengeren begynte patruljeroboten å koble seg til inntrengerroboten via SSH og stengte systemet.

Etter å ha bekreftet at avslutningskommandoen var fullført, stoppet også patruljeroboten.
Operasjonsalgoritmen til en patruljerobot kan representeres som følgende diagram:

STEM-intensiv læringstilnærming

Jobber med prosjekter

Arbeidet ble organisert i et format som ligner på Scrum: hver morgen planla elevene oppgaver for gjeldende dag, og om kvelden rapporterte de om utført arbeid.

På den første og siste dagen forberedte elevene presentasjoner som beskrev oppgaven og hvordan den skulle løses. For å hjelpe elevene med å følge sine valgte planer, var lærere fra Russland og Amerika konstant til stede i rommene der arbeidet med prosjekter fant sted, og svarte på spørsmål. Kommunikasjonen foregikk hovedsakelig på engelsk.

Resultater og deres demonstrasjon

Arbeidet med prosjektene varte i en uke, hvoretter elevene presenterte resultatene sine. Alle forberedte presentasjoner der de snakket om hva de lærte på denne skolen, hva var de viktigste leksjonene de lærte, hva de likte eller ikke likte. Etter det presenterte hvert lag sitt prosjekt. Alle lagene fullførte oppgavene sine.

Teamet som implementerte fargekalibrering fullførte prosjektet raskere enn andre, så de hadde også tid til å forberede dokumentasjon for programmet sitt. Og teamet som jobbet med veigrafen, selv den siste dagen før prosjektdemonstrasjonen, prøvde å avgrense og korrigere algoritmene sine.

STEM-intensiv læringstilnærming

Konklusjon

Etter å ha fullført skolen ba vi elevene om å evaluere tidligere aktiviteter og svare på spørsmål om hvor godt skolen innfridde deres forventninger, hvilke ferdigheter de tilegnet seg, osv. Alle elevene bemerket at de lærte å jobbe i et team, fordele oppgaver og planlegge tiden sin.

Studentene ble også bedt om å vurdere nytten og vanskeligheten til kursene de tok. Og her ble det dannet to grupper av vurderinger: for noen var kursene ikke store vanskeligheter, andre vurderte dem som ekstremt vanskelige.

Dette betyr at skolen har tatt den riktige posisjonen ved å forbli tilgjengelig for nybegynnere innen et bestemt felt, men også tilby materialer for repetisjon og konsolidering av erfarne elever. Det skal bemerkes at programmeringskurset (Python) ble bemerket av nesten alle som ukomplisert, men nyttig. I følge studentene var det vanskeligste kurset "Dataarkitektur".

Når elevene ble spurt om skolens styrker og svakheter, svarte mange at de likte den valgte undervisningsstilen, der lærere ga rask og personlig assistanse og svarte på spørsmål.

Studentene bemerket også at de likte å jobbe med daglig planlegging av oppgavene sine og sette sine egne tidsfrister. Som ulemper bemerket studentene mangelen på kunnskap som var nødvendig når du arbeider med boten: når du kobler til, forstår det grunnleggende og prinsippene for driften.

Nesten alle elevene bemerket at skolen overgikk forventningene deres, og dette indikerer riktig retning for å organisere skolen. Derfor bør de generelle prinsippene opprettholdes ved organisering av neste skole, ta hensyn til og om mulig eliminere manglene som er notert av elever og lærere, eventuelt endre kurslisten eller tidspunktet for undervisningen deres.

Artikkelforfattere: team laboratorium for mobile robotalgoritmer в JetBrains forskning.

PS Bedriftsbloggen vår har fått nytt navn. Nå vil det være dedikert til utdanningsprosjekter til JetBrains.

Kilde: www.habr.com

Legg til en kommentar