Metoda intensywnego uczenia się STEM

Na świecie edukacji inżynierskiej jest wiele doskonałych kierunków, jednak często budowany wokół nich program nauczania ma jedną poważną wadę – brak dobrej spójności pomiędzy różnymi tematami. Ktoś mógłby zaprotestować: jak to możliwe?

Podczas tworzenia programu szkoleniowego dla każdego kursu wskazane są wymagania wstępne i jasna kolejność, w jakiej należy studiować poszczególne dyscypliny. Na przykład, aby zbudować i zaprogramować prymitywnego robota mobilnego, trzeba znać trochę mechaniki, aby stworzyć jego fizyczną strukturę; podstawy elektryczności na poziomie praw Ohma/Kirchhoffa, reprezentacja sygnałów cyfrowych i analogowych; operacje na wektorach i macierzach w celu opisu układów współrzędnych i ruchów robota w przestrzeni; podstawy programowania na poziomie prezentacji danych, proste algorytmy i struktury przekazywania sterowania itp. opisać zachowanie.

Czy to wszystko jest ujęte w kursach uniwersyteckich? Oczywiście, że mam. Jednak dzięki prawom Ohma/Kirchhoffa otrzymujemy termodynamikę i teorię pola; oprócz operacji na macierzach i wektorach mamy do czynienia z formami Jordana; w programowaniu studiuj polimorfizm - tematy, które nie zawsze są potrzebne do rozwiązania prostego problemu praktycznego.

Edukacja uniwersytecka jest ekstensywna – student idzie szerokim frontem i często nie dostrzega sensu i praktycznego znaczenia zdobywanej wiedzy. Postanowiliśmy zmienić paradygmat kształcenia uniwersyteckiego w STEM (od słów Science, Technology, Engineering, Math) i stworzyć program oparty na spójności wiedzy, pozwalający na wzrost jej kompletności w przyszłości, czyli oznacza intensywne opanowanie przedmiotów.

Naukę nowego obszaru tematycznego można porównać do poznawania okolicy. I tutaj są dwie opcje: albo mamy bardzo szczegółową mapę z ogromną ilością szczegółów, które należy przestudiować (a to zajmuje dużo czasu), aby zrozumieć, gdzie znajdują się główne punkty orientacyjne i jak są ze sobą powiązane ; lub możesz użyć prymitywnego planu, na którym wskazane są tylko główne punkty i ich względne położenie - taka mapa wystarczy, aby natychmiast zacząć poruszać się we właściwym kierunku, wyjaśniając szczegóły w miarę upływu czasu.

Przetestowaliśmy intensywne podejście do nauki STEM w szkole zimowej, którą zorganizowaliśmy wspólnie ze studentami MIT przy wsparciu Badania JetBrains.

Przygotowanie materiału


Pierwszą częścią programu szkolnego był tydzień zajęć z głównych obszarów, które obejmowały algebrę, obwody elektryczne, architekturę komputerów, programowanie w Pythonie i wprowadzenie do ROS (Robot Operating System).

Kierunki nie zostały wybrane przypadkowo: uzupełniając się, miały pomóc uczniom dostrzec na pierwszy rzut oka związek pomiędzy pozornie różnymi rzeczami – matematyką, elektroniką i programowaniem.

Oczywiście głównym celem nie było wygłaszanie dużej liczby wykładów, ale umożliwienie studentom samodzielnego zastosowania nowo nabytej wiedzy w praktyce.

W części algebry uczniowie mogli ćwiczyć operacje na macierzach i rozwiązywanie układów równań, przydatnych w badaniu obwodów elektrycznych. Poznając budowę tranzystora i zbudowane na jego bazie elementy logiczne, uczniowie mogli zobaczyć ich zastosowanie w urządzeniu procesorowym, a po zapoznaniu się z podstawami języka Python napisać w nim program dla prawdziwego robota.

Metoda intensywnego uczenia się STEM

Duckie Miasto


Jednym z celów szkoły było zminimalizowanie, tam gdzie to możliwe, pracy z symulatorami. W związku z tym przygotowano duży zestaw układów elektronicznych, które uczniowie musieli złożyć na płytce stykowej z rzeczywistych podzespołów i przetestować je w praktyce, a na bazę projektów wybrano Duckietown.

Duckietown to projekt typu open source obejmujący małe autonomiczne roboty zwane Duckiebotami i sieci dróg, którymi się poruszają. Duckiebot to platforma kołowa wyposażona w mikrokomputer Raspberry Pi i pojedynczą kamerę.

Na jej podstawie przygotowaliśmy zestaw możliwych zadań, takich jak budowanie mapy drogowej, wyszukiwanie obiektów i zatrzymywanie się przy nich oraz szereg innych. Studenci mogli także zaproponować własny problem i nie tylko napisać program jego rozwiązania, ale także od razu uruchomić go na prawdziwym robocie.

Nauczanie


Podczas wykładu nauczyciele prezentowali materiał wykorzystując wcześniej przygotowane prezentacje. Niektóre zajęcia zostały nagrane na wideo, aby uczniowie mogli je obejrzeć w domu. Podczas wykładów studenci korzystali z materiałów znajdujących się na komputerach, zadawali pytania i wspólnie i samodzielnie rozwiązywali problemy, czasem przy tablicy. Na podstawie wyników pracy obliczono ocenę każdego ucznia osobno z różnych przedmiotów.

Metoda intensywnego uczenia się STEM

Rozważmy bardziej szczegółowo przebieg zajęć z każdego przedmiotu. Pierwszym przedmiotem była algebra liniowa. Studenci spędzili jeden dzień na studiowaniu wektorów i macierzy, układów równań liniowych itp. Zadania praktyczne miały interaktywną strukturę: zaproponowane problemy były rozwiązywane indywidualnie, a nauczyciel i pozostali uczniowie przekazywali uwagi i wskazówki.

Metoda intensywnego uczenia się STEM

Drugi przedmiot to elektryczność i proste obwody. Studenci poznali podstawy elektrodynamiki: napięcie, prąd, rezystancję, prawo Ohma i prawa Kirchhoffa. Zadania praktyczne były częściowo wykonywane w symulatorze lub uzupełniane na płycie, ale więcej czasu poświęcono na budowanie rzeczywistych obwodów, takich jak obwody logiczne, obwody oscylacyjne itp.

Metoda intensywnego uczenia się STEM

Kolejnym tematem jest Architektura Komputera – w pewnym sensie pomost łączący fizykę i programowanie. Studenci zapoznali się z podstawową podstawą, której znaczenie jest bardziej teoretyczne niż praktyczne. W ramach ćwiczeń studenci samodzielnie projektowali obwody arytmetyczno-logiczne w symulatorze i za wykonane zadania otrzymywali punkty.

Dzień czwarty to pierwszy dzień programowania. Na język programowania wybrano Python 2, ponieważ jest to język używany w programowaniu ROS. Ten dzień miał następującą strukturę: nauczyciele prezentowali materiał, podawali przykłady rozwiązywania problemów, uczniowie zaś, siedząc przy komputerach, słuchali ich i powtarzali to, co nauczyciel napisał na tablicy lub slajdzie. Następnie uczniowie samodzielnie rozwiązywali podobne problemy, a rozwiązania były następnie oceniane przez nauczycieli.

Piąty dzień poświęcony był ROS: chłopaki uczyli się programowania robotów. Przez cały dzień w szkole uczniowie siedzieli przy komputerach, uruchamiając kod programu, o którym mówił nauczyciel. Potrafili samodzielnie obsługiwać podstawowe jednostki ROS, a także zapoznali się z projektem Duckietown. Na koniec tego dnia uczniowie byli gotowi rozpocząć część projektową szkoły – rozwiązywanie problemów praktycznych.

Metoda intensywnego uczenia się STEM

Opis wybranych projektów

Studenci zostali poproszeni o utworzenie trzyosobowych zespołów i wybranie tematu projektu. W rezultacie przyjęto następujące projekty:

1. Kalibracja kolorów. Duckiebot musi skalibrować kamerę, gdy zmieniają się warunki oświetleniowe, dlatego wykonywane jest automatyczne zadanie kalibracji. Problem w tym, że zakresy kolorów są bardzo wrażliwe na światło. Uczestnicy wdrożyli narzędzie, które podświetlało wymagane kolory w ramce (czerwony, biały i żółty) i tworzyło zakresy dla każdego koloru w formacie HSV.

2. Kacza taksówka. Ideą tego projektu jest to, że Duckiebot może zatrzymać się w pobliżu obiektu, podnieść go i podążać określoną trasą. Jako obiekt wybrano jasnożółtą kaczkę.

Metoda intensywnego uczenia się STEM

3. Budowa wykresu drogowego. Zadanie polega na zbudowaniu wykresu dróg i skrzyżowań. Celem tego projektu jest zbudowanie wykresu drogowego bez dostarczania a priori danych środowiskowych Duckiebotowi, opierając się wyłącznie na danych z kamer.

4. Samochód patrolowy. Projekt wymyślili sami uczniowie. Zaproponowali nauczenie jednego Duckiebota, „patrolu”, ścigania innego, „przestępcy”. W tym celu wykorzystano mechanizm rozpoznawania celu za pomocą markera ArUco. Po zakończeniu rozpoznawania wysyłany jest sygnał do „intruza”, aby dokończył pracę.

Metoda intensywnego uczenia się STEM

Kalibracja kolorów

Celem projektu Color Calibration było dostosowanie zakresu rozpoznawalnych kolorów oznaczeń do nowych warunków oświetleniowych. Bez takich korekt rozpoznawanie linii zatrzymania, separatorów pasów ruchu i granic dróg stało się nieprawidłowe. Uczestnicy zaproponowali rozwiązanie polegające na wstępnym przetworzeniu wzorców kolorów znaczników: czerwonego, żółtego i białego.

Każdy z tych kolorów ma zadany zakres wartości HSV lub RGB. Korzystając z tego zakresu, zostaną znalezione wszystkie obszary kadru zawierające odpowiednie kolory i wybrany zostanie największy. Obszar ten jest traktowany jako kolor, o którym należy pamiętać. Następnie do oszacowania nowego zakresu kolorów wykorzystuje się wzory statystyczne, takie jak obliczanie średniej i odchylenia standardowego.

Zasięg ten jest zapisywany w plikach konfiguracyjnych kamery Duckiebota i można go później wykorzystać. Opisane podejście zastosowano do wszystkich trzech kolorów, ostatecznie tworząc zakresy dla każdego z kolorów znaczników.

Testy wykazały niemal doskonałe rozpoznawanie linii oznaczeń, za wyjątkiem przypadków, gdy w materiałach do znakowania zastosowano błyszczącą taśmę, która tak mocno odbija źródła światła, że ​​pod kątem patrzenia kamery oznaczenia wydawały się białe, niezależnie od ich pierwotnego koloru.

Metoda intensywnego uczenia się STEM

Kacza taksówka

Projekt Duck Taxi polegał na zbudowaniu algorytmu wyszukiwania pasażera-kaczki w mieście, a następnie transportu go we wskazane miejsce. Uczestnicy podzielili ten problem na dwa: detekcja i ruch wzdłuż wykresu.

Uczniowie przeprowadzali wykrywanie kaczek, zakładając, że kaczką jest dowolny obszar w kadrze, który można rozpoznać jako żółty, z czerwonym trójkątem (dziobem). Gdy tylko w kolejnej klatce zostanie wykryty taki obszar, robot powinien się do niego zbliżyć, a następnie zatrzymać na kilka sekund, symulując lądowanie pasażera.

Następnie, mając wcześniej zapisany w pamięci wykres drogowy całego miasteczka kaczek i pozycję bota, a także otrzymując miejsce docelowe jako dane wejściowe, uczestnicy budują ścieżkę od punktu wyjazdu do punktu przybycia, używając algorytmu Dijkstry do znajdowania ścieżek na wykresie . Dane wyjściowe prezentowane są w postaci zestawu poleceń - zakręty na każdym z kolejnych skrzyżowań.

Metoda intensywnego uczenia się STEM

Wykres dróg

Celem tego projektu było zbudowanie grafu - sieci dróg w Duckietown. Węzły powstałego wykresu to przecięcia, a łuki to drogi. Aby tego dokonać, Duckiebot musi zbadać miasto i przeanalizować jego trasę.

Podczas prac nad projektem rozważano, jednak odrzucono, pomysł stworzenia grafu ważonego, w którym koszt krawędzi wyznaczany jest na podstawie odległości (czasu przebycia) pomiędzy przecięciami. Realizacja tego pomysłu okazała się zbyt pracochłonna, a w szkole nie było na to czasu.

Gdy Duckiebot dotrze do kolejnego skrzyżowania, wybiera drogę wychodzącą ze skrzyżowania, której jeszcze nie wybrał. Kiedy wszystkie drogi na wszystkich skrzyżowaniach zostaną przejechane, wygenerowana lista sąsiedztw skrzyżowań pozostaje w pamięci bota, która jest konwertowana na obraz za pomocą biblioteki Graphviz.

Algorytm zaproponowany przez uczestników nie nadawał się do losowego Duckietown, ale sprawdził się w przypadku małego miasteczka z czterema skrzyżowaniami, z którego korzystała szkoła. Pomysł polegał na dodaniu znacznika ArUco do każdego skrzyżowania zawierającego identyfikator skrzyżowania w celu śledzenia kolejności przejazdu przez skrzyżowania.
Schemat algorytmu opracowanego przez uczestników przedstawiono na rysunku.

Metoda intensywnego uczenia się STEM

Wóz patrolowy

Celem tego projektu jest przeszukanie, ściganie i zatrzymanie bota naruszającego zasady w mieście Duckietown. Robot patrolowy musi poruszać się po zewnętrznym pierścieniu drogi miejskiej w poszukiwaniu znanego bota-intruza. Po wykryciu intruza robot patrolowy musi podążać za intruzem i zmusić go do zatrzymania się.

Prace rozpoczęły się od poszukiwania pomysłu na wykrycie bota w ramce i rozpoznanie w niej intruza. Zespół zaproponował wyposażenie każdego bota w mieście w unikalny znacznik z tyłu – tak jak prawdziwe samochody mają państwowe numery rejestracyjne. W tym celu wybrano markery ArUco. Stosowano je już wcześniej w Duckietown, gdyż są łatwe w obsłudze i umożliwiają określenie orientacji znacznika w przestrzeni oraz odległości do niego.

Następnie należało zadbać o to, aby robot patrolowy poruszał się ściśle po okręgu zewnętrznym, nie zatrzymując się na skrzyżowaniach. Domyślnie Duckiebot porusza się po pasie i zatrzymuje się na linii zatrzymania. Następnie za pomocą znaków drogowych określa konfigurację skrzyżowania i dokonuje wyboru kierunku przejazdu skrzyżowania. Za każdy z opisanych etapów odpowiada jeden ze stanów maszyny skończonej robota. Aby pozbyć się przystanków na skrzyżowaniu, zespół zmienił maszynę stanu tak, aby po dojechaniu do linii zatrzymania bot od razu przechodził w stan jazdy na wprost przez skrzyżowanie.

Kolejnym krokiem było rozwiązanie problemu zatrzymania bota-intruza. Zespół przyjął założenie, że bot patrolowy może mieć dostęp SSH do każdego z botów w mieście, czyli mieć pewne informacje o tym, jakie dane autoryzacyjne i jaki identyfikator posiada każdy bot. W ten sposób po wykryciu intruza bot patrolowy zaczął łączyć się z botem intruzem przez SSH i zamykał jego system.

Po potwierdzeniu, że polecenie zamknięcia zostało wykonane, bot patrolowy również się zatrzymał.
Algorytm działania robota patrolowego można przedstawić na poniższym schemacie:

Metoda intensywnego uczenia się STEM

Praca nad projektami

Praca zorganizowana była w formacie zbliżonym do Scruma: codziennie rano uczniowie planowali zadania na bieżący dzień, a wieczorem składali raport z wykonanej pracy.

Pierwszego i ostatniego dnia uczniowie przygotowali prezentacje opisujące zadanie i sposób jego rozwiązania. Aby pomóc uczniom realizować wybrane plany, w salach, w których toczyła się praca nad projektami, stale obecni byli nauczyciele z Rosji i Ameryki, którzy odpowiadali na pytania. Komunikacja odbywała się głównie w języku angielskim.

Wyniki i ich demonstracja

Praca nad projektami trwała tydzień, po czym uczniowie zaprezentowali swoje rezultaty. Wszyscy przygotowali prezentacje, w których opowiadali o tym, czego nauczyli się w tej szkole, jakie były najważniejsze lekcje, których się nauczyli, co im się podobało, a co nie. Następnie każdy zespół zaprezentował swój projekt. Wszystkie zespoły poradziły sobie z przydzielonymi zadaniami.

Zespół wdrażający kalibrację kolorów wykonał projekt szybciej niż inni, dzięki czemu miał także czas na przygotowanie dokumentacji do swojego programu. A zespół pracujący nad wykresem drogowym jeszcze na ostatni dzień przed demonstracją projektu próbował udoskonalić i poprawić swoje algorytmy.

Metoda intensywnego uczenia się STEM

wniosek

Po ukończeniu szkoły poprosiliśmy uczniów o ocenę dotychczasowych zajęć i udzielenie odpowiedzi na pytania dotyczące tego, w jakim stopniu szkoła spełniła ich oczekiwania, jakie umiejętności nabyli itp. Wszyscy uczniowie zauważyli, że nauczyli się pracować w zespole, rozdzielać zadania i planować swój czas.

Studenci zostali także poproszeni o ocenę przydatności i trudności kursów, w których uczestniczyli. I tu utworzyły się dwie grupy ocen: dla niektórych kursy nie sprawiały większych trudności, dla innych oceniano je jako niezwykle trudne.

Oznacza to, że szkoła zajęła właściwe stanowisko, pozostając dostępną dla początkujących w danej dziedzinie, ale także dostarczając materiały do ​​powtarzania i utrwalenia przez doświadczonych uczniów. Warto zaznaczyć, że kurs programowania (Python) został przez niemal wszystkich uznany za nieskomplikowany, ale przydatny. Zdaniem studentów najtrudniejszym przedmiotem był „Architektura komputerów”.

Kiedy uczniów zapytano o mocne i słabe strony szkoły, wielu odpowiedziało, że podoba im się wybrany styl nauczania, w ramach którego nauczyciele zapewniają szybką i osobistą pomoc oraz odpowiadają na pytania.

Studenci zauważyli także, że lubią pracować w trybie codziennego planowania swoich zadań i ustalania własnych terminów. Jako wady uczniowie wskazali brak przekazanej wiedzy, która była wymagana podczas pracy z botem: podczas łączenia się, zrozumienia podstaw i zasad jego działania.

Prawie wszyscy uczniowie stwierdzili, że szkoła przerosła ich oczekiwania, co wskazuje na właściwy kierunek organizacji szkoły. Należy zatem zachować ogólne zasady przy organizacji kolejnej szkoły, uwzględniając i w miarę możliwości eliminując niedociągnięcia zauważone przez uczniów i nauczycieli, być może zmieniając harmonogram zajęć lub harmonogram ich nauczania.

Autorzy artykułu: zespół laboratorium algorytmów robotów mobilnych в Badania JetBrains.

PS Nasz blog firmowy ma nową nazwę. Teraz będzie on poświęcony projektom edukacyjnym JetBrains.

Źródło: www.habr.com

Dodaj komentarz