Підхід інтенсивного навчання STEM

У світі інженерної освіти існує багато відмінних курсів, але найчастіше програма навчання, побудована на них, має один серйозний недолік — відсутність хорошої зв'язності між різними темами. Можна заперечити: як так?

Коли формується програма навчання, кожного курсу вказуються пререквізити і чіткий порядок, у якому треба вивчати дисципліни. Наприклад, щоб зібрати і запрограмувати примітивного мобільного робота, потрібно знати трохи механіки до створення його фізичної конструкції; основи електрики на рівні законів Ома/Кірхгофа, подання цифрових та аналогових сигналів; операції з векторами та матрицями для того, щоб описати системи координат та переміщення робота в просторі; основи програмування на рівні представлення даних, найпростіших алгоритмів та конструкцій передачі управління тощо. для опису поведінки.

Чи все це є в університетських курсах? Звичайно є. Однак до законів Ома/Кірхгофа ми отримуємо термодинаміку та теорію поля; крім операцій із матрицями та векторами доводиться розбиратися з Жордановими формами; у програмуванні вивчати поліморфізм - теми, які завжди потрібні для вирішення простого практичного завдання.

Університетське навчання є екстенсивним — учень йде широким фронтом і часто не бачить сенсу та практичної значущості знань, які отримує. Ми вирішили перевернути парадигму університетського навчання STEM (від слів Science, Technology, Engineering, Math) і зробити таку програму, яка спирається на складність знань, допускаючи нарощування повноти в майбутньому, тобто має на увазі інтенсивне освоєння предметів.

Вивчення нової предметної області можна з порівнянням з вивченням певної місцевості. І тут є два варіанти: або перед нами дуже докладна карта з величезною кількістю деталей, які потрібно вивчити (а це займає багато часу), щоб зрозуміти, де знаходяться основні орієнтири і як вони співвідносяться один з одним; або ж можна скористатися примітивним планом, на якому позначені лише головні точки та їхнє взаємне розташування — такої карти достатньо, щоб відразу почати рухатися в потрібному напрямку, уточнюючи деталі по ходу руху.

Підхід інтенсивного навчання STEM ми обкатали на зимовій школі, яку провели спільно зі студентами MIT за підтримки JetBrains Research.

підготовка матеріалу


Першою частиною програми школи був тиждень занять з основних напрямків, які включали алгебру, електричні ланцюги, архітектуру комп'ютера, програмування на Python і знайомство з ROS (Robot Operating System).

Напрямки були обрані невипадково: доповнюючи одне одного, вони мали допомогти студентам побачити зв'язок між, начебто, різними, здавалося б, речами — математикою, електронікою і програмуванням.

Звичайно, основною метою було не прочитати багато лекцій, а дати можливість студентам самим застосувати щойно отримані знання на практиці.

У розділі алгебри студенти могли потренуватися в операціях з матрицями та розв'язанні систем рівнянь, які стали в нагоді при вивченні електричних кіл. Дізнавшись про влаштування транзистора та логічні елементи, побудовані на його базі, учні могли побачити їх застосування у пристрої процесора, а після вивчення основ мови Python, написати на ньому програму для реального робота.

Підхід інтенсивного навчання STEM

Duckietown


Одним із завдань школи була мінімізація роботи із симуляторами там, де це можливо. Тому був підготовлений великий набір електронних схем, які студенти мали зібрати на макетній платі з реальних компонентів і перевірити їх на практиці, а як базу для проектів було обрано Duckietown.

Duckietown - це відкритий проект, що включає невеликих автономних роботів, званих Duckiebot, і мережі доріг, якими вони пересуваються. Duckiebot є колісною платформою, оснащеною мікрокомп'ютером Raspberry Pi і однією камерою.

На його основі ми підготували набір можливих завдань, таких як побудова карти доріг, пошук об'єктів та зупинка поряд з ними та низка інших. Також студенти могли запропонувати власну проблему і не лише написати програму для її вирішення, а й негайно запустити її на реальному роботі.

викладання


Під час лекції викладачі розповідали матеріал, використовуючи наперед підготовлені презентації. Деякі заняття записувалися на відео, таким чином у студентів була можливість переглянути їхні будинки. Під час лекцій студенти використовували матеріали на своїх комп'ютерах, ставили питання, вирішували завдання спільно та самостійно, іноді біля дошки. За результатами роботи було підраховано рейтинг кожного студента окремо з різних предметів.

Підхід інтенсивного навчання STEM

Розглянемо проведення занять з кожного предмета докладніше. Першим предметом була лінійна алгебра. Студенти протягом одного дня вивчали вектори та матриці, системи лінійних рівнянь тощо. Практичні завдання були побудовані в інтерактивному режимі: запропоновані завдання вирішувалися індивідуально, а викладач та інші студенти давали коментарі та підказки.

Підхід інтенсивного навчання STEM

Другий предмет - електрика та прості схеми. Студенти вивчили основи електродинаміки: напругу, струм, опір, закон Ома та закони Кірхгофа. Практичні завдання частково робилися в симуляторі або виконувались на дошці, але більше часу приділялося побудові реальних схем, таких як логічні схеми, коливальні контури і т.д.

Підхід інтенсивного навчання STEM

Наступна тема - Архітектура ЕОМ - у певному сенсі міст, що поєднує фізику та програмування. Студенти вивчали фундаментальну базу, значення якої радше теоретичне, ніж практичне. Як практика студенти самостійно проектували арифметико-логічні схеми у симуляторі, за виконані завдання отримали бали.

Четвертий день – перший день програмування. Як мову програмування було обрано Python 2, оскільки саме він використовується у програмуванні під ROS. Цей день був побудований таким чином: викладачі розповідали матеріал, наводили приклади розв'язання завдань, тоді як студенти слухали їх, сидячи за комп'ютерами, та повторювали написане викладачем на дошці чи слайді. Потім учні вирішували схожі завдання самостійно, згодом рішення оцінили викладачами.

П'ятий день був присвячений ROS: хлопці знайомилися із програмуванням роботів. Весь навчальний день студенти сиділи за комп'ютерами, запускаючи програмний код, який розповідав викладач. Вони змогли самостійно запустити основні одиниці ROS, а також познайомилися із проектом Duckietown. Після закінчення цього дня студенти були готові розпочати проектну частину школи — вирішення практичних завдань.

Підхід інтенсивного навчання STEM

Опис вибраних проектів

Студентам запропонували об'єднатися у команди по три особи та обрати собі тему проекту. У результаті було прийнято такі проекти:

1. Калібрування кольорів. Duckiebot потребує калібрування камери при зміні умов освітлення, тому існує завдання автоматичного калібрування. Проблема в тому, що діапазони кольорів дуже чутливі до освітленості. Учасники реалізували утиліту, яка виділяла б на кадрі необхідні кольори (червоний, білий та жовтий) та будувала діапазони для кожного з кольорів у форматі HSV.

2. Duck Taxi. Ідея цього проекту в тому, щоб Duckiebot міг зупинитися біля деякого об'єкта, підібрати його та проїхати деяким маршрутом. Як об'єкт була обрана яскрава жовта качечка.

Підхід інтенсивного навчання STEM

3. Побудова графа доріг. Існує завдання побудови графа доріг та перехресть. Мета цього проекту – побудувати граф доріг без надання апріорних даних про оточення для Duckiebot, спираючись лише на дані з камери.

4. Патрульна машина. Цей проект вигадали самі студенти. Вони запропонували навчити одного Duckiebot, "патрульного", переслідувати іншого - "порушника". Для цього був використаний механізм розпізнавання мети ArUco-маркером. Як тільки розпізнавання завершиться, порушнику посилається сигнал про завершення роботи.

Підхід інтенсивного навчання STEM

Калібрування кольорів

Метою проекту Color Calibration було коригування діапазону розпізнаваних кольорів розмітки під нові умови освітлення. Без таких коригувань розпізнавання стоп-ліній, роздільників смуг та кордонів дороги ставало некоректним. Учасники запропонували рішення, що ґрунтується на передобробці шаблонів кольорів розмітки: червоного, жовтого та білого.

Для кожного з цих кольорів встановлено попередній діапазон HSV або RGB-значень. З використанням цього діапазону на кадрі знаходяться всі області, що містять відповідні кольори, і їх вибирається найбільша. Ця область приймається за колір, який потрібно запам'ятати. Потім використовуються статистичні формули, такі як обчислення середнього значення та середньоквадратичного відхилення для того, щоб оцінити новий діапазон кольору.

Цей діапазон записується у конфігураційні файли Duckiebot і може бути використаний надалі. Описаний підхід застосовувався до всіх трьох кольорів, у результаті формуючи діапазони кожного з кольорів розмітки.

Тести показали майже ідеальне розпізнавання ліній розмітки, крім тих випадків, коли як матеріали розмітки використовувалася глянсова стрічка, що настільки сильно відображає джерела освітлення, що під кутом огляду камери розмітка здавалася білою незалежно від її початкового кольору.

Підхід інтенсивного навчання STEM

Duck Taxi

Проект Duck Taxi передбачав побудову алгоритму пошуку у місті качки-пасажира, а потім її перевезення у необхідну точку. Учасники розбили це завдання на дві: детекція та рух за графом.

Студенти здійснили детекцію качки, зробивши припущення, що качечкою називається будь-яка область на кадрі, яку можна розпізнати як жовту, з червоним трикутником (дзьобом) на ній. Як тільки така область виявляється на черговому кадрі, роботу слід наблизитись до неї, а потім зупинитися на кілька секунд, імітуючи посадку пасажира.

Потім, маючи закладений заздалегідь в пам'яті граф доріг всього duckietown і положення бота, а також, отримавши в якості вхідних даних пункт призначення, учасники будують шлях з точки відправлення в точку прибуття, використовуючи алгоритм Дейкстри для пошуку шляхів у графі. Вихідні дані подаються у вигляді набору команд - поворотів на кожному з наступних перехресть.

Підхід інтенсивного навчання STEM

Graph of Roads

Метою цього проекту була побудова графа – мережі доріг у Duckietown. Вузлами результуючого графа є перехрестя, і дугами дороги. Для цього Duckiebot має досліджувати місто та аналізувати свій маршрут.

У ході роботи над проектом було розглянуто, але потім відкинуто ідею робити зважений граф, у якому вартість ребра визначається відстанню (часом на подолання) між перехрестями. Реалізація цієї ідеї виявилася надто трудомісткою, і на неї не вистачило б часу у межах школи.

Коли Duckiebot добирається до чергового перехрестя, він вибирає дорогу, що виходить із перехрестя, якою він ще не рухався. Коли всі дороги на всіх перехрестях пройдені, в пам'яті робота залишається сформований перелік суміжності перехресть, який перетворюється на зображення за допомогою бібліотеки Graphviz.

Запропонований учасниками алгоритм не підходить для довільного Duckietown, але добре працював на невеликому місті, яке складається з чотирьох перехресть, що використовується в рамках школи. Ідея була в тому, щоб доповнити кожне перехрестя ArUco-маркером, що містить ідентифікатор перехрестя, щоб відстежувати порядок проїзду перехресть.
Схема роботи розробленого учасниками алгоритму показано малюнку.

Підхід інтенсивного навчання STEM

Патрульний автомобіль

Мета даного проекту – пошук, переслідування та затримання робота-порушника в місті Duckietown. Бот-патрульний повинен рухатися зовнішнім кільцем дороги в місті в пошуках заздалегідь відомого бота-порушника. Після виявлення порушника патрульний бот повинен слідувати за порушником та змусити його зупинитися.

Робота почалася з пошуку ідеї детекції робота на кадрі та розпізнавання в ньому порушника. Команда запропонувала оснастити кожного бота у місті позаду унікальним маркером — так само, як реальні автомобілі мають номери державної реєстрації. Для цього було обрано ArUco-маркери. Вони й раніше використовувалися в duckietown, тому що з ними просто працювати і вони дозволяють визначити орієнтацію маркера в просторі та відстань до нього.

Далі потрібно було зробити так, щоб патрульний бот рухався строго по зовнішньому колу без зупинок на перехрестях. За замовчуванням Duckiebot рухається у смузі та зупиняється на стоп-лінії. Потім за допомогою дорожніх знаків визначає конфігурацію перехрестя і робить вибір напряму проїзду перехрестя. За кожен із описаних етапів відповідає один із станів кінцевого автомата робота. Щоб позбутися зупинок на перехресті, команда змінила автомат станів так, щоб при під'їзді до стоп-лінії бот відразу переходив у стан проїзду перехрестя прямо.

Наступним кроком було вирішення завдання зупинення бота-порушника. Командою було зроблено припущення, що патрульний бот може мати доступ SSH до кожного з ботів у місті, тобто мати деяку інформацію про те, які дані для авторизації і який id має кожен бот. Таким чином, після виявлення порушника, патрульний бот став підключатися SSH до бота-порушника і вимикати його систему.

Після підтвердження того, що команду вимкнення було виконано, патрульний бот теж зупинявся.
Алгоритм роботи патрульного робота можна подати у вигляді наступної схеми:

Підхід інтенсивного навчання STEM

Робота над проектами

Робота була організована у форматі схожому на Scrum: щоранку студенти планували завдання на поточний день, а ввечері звітували про виконану роботу.

У перший та завершальний дні студенти підготували презентації, що описують поставлене завдання та способи її вирішення. Щоб допомогти студентам слідувати обраним планам, у кімнатах, де відбувалася робота над проектами, постійно перебували викладачі з Росії та Америки, які відповідали на запитання. Спілкування відбувалося переважно англійською.

Результати та їх демонстрація

Робота над проектами тривала один тиждень, після якого студенти представили свої результати. Усі підготували презентації, в яких розповіли, чому вони навчилися у цій школі, які найважливіші уроки винесли, що їм сподобалося чи не сподобалося. Після цього кожна команда презентувала свій проект. Усі команди впоралися із поставленими завданнями.

Команда, що реалізує калібрування кольорів, завершила роботу над проектом швидше за інших, тому вони встигли підготувати і документацію до своєї програми. А команда, яка займалася графом доріг, навіть в останній день перед демонстрацією проекту намагалася доопрацювати та виправити свої алгоритми.

Підхід інтенсивного навчання STEM

Висновок

Після закінчення школи ми попросили студентів оцінити минулі активності та відповісти на запитання про те, наскільки школа відповідала їхнім очікуванням, які навички вони набули тощо. Усі студенти відзначили, що вони навчилися працювати у команді, розподіляти завдання та планувати свій час.

Студентам також запропонували оцінити корисність та складність пройдених курсів. І тут сформувалися дві групи оцінок: для одних курси не становили великої складності, інші оцінили їх як максимально складні.

Це означає, що школа зайняла правильну позицію, залишаючись доступною для новачків у тій чи іншій галузі, але також надаючи матеріали для повторення та закріплення досвідченим студентам. Слід зазначити, що курс програмування (Python) практично всіма був відзначений як нескладний, але корисний. Найскладнішим, на думку студентів, виявився курс «Архітектура ЕОМ».

Коли студентів запитали про недоліки та переваги школи, багато хто відповів, що їм сподобався обраний стиль викладання, в рамках якого викладачі оперативно та індивідуально надавали допомогу та відповідали на запитання.

Ще учні зазначили, що їм сподобалося працювати у режимі щоденного планування своїх завдань та самостійно встановлювати дедлайни. Як недоліки студенти відзначили брак наданих знань, які були потрібні при роботі з ботом: при підключенні, розумінні основ та принципів його роботи.

Практично всі студенти відзначили, що школа перевершила їхні очікування, і це говорить про правильно обраний напрямок організації школи. Таким чином, слід зберегти загальні положення при організації наступної школи, взявши до уваги та по можливості усунувши недоліки, які зазначили студенти та викладачі, можливо, змінивши перелік курсів або час їх викладання.

Автори статті: команда лабораторії алгоритмів мобільних роботів в JetBrains Research.

PS У нашого корпоративного блогу нове ім'я. Тепер він буде присвячений освітнім проектам компанії JetBrains.

Джерело: habr.com

Додати коментар або відгук