Подход на интензивно обучение STEM

В света на инженерното образование съществуват много отлични курсове, но често учебната програма, изградена на тях, има един сериозен недостатък — липсата на добра свързаност между различните теми. Може да се запитате: как така?

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

Има ли всичко това в университетските курсове? Разбира се, че има. Въпреки това, към законите на Ом/Кирхгоф получаваме термодинамика и теория на полето; освен операциите с матрици и вектори, трябва да се справим и с жорданови форми; при програмирането изучаваме полиморфизъм — теми, които не винаги са необходими за решаване на проста практическа задача.

Университетското обучение е екстензивно — учащият се минава по широк фронт и често не вижда смисъл и практическа стойност в знанията, които получава. Ние решихме да обърнем парадигмата на университетското обучение в STEM (отнасящо се до Наука, Технологии, Инженерство, Математика) и да създадем програма, която се основава на свързаността на знанията, допускаща добавяне на пълнота в бъдеще, тоест предвиждаща интензивно усвояване на предметите.

Изучаването на нова предметна област може да се сравни с проучването на определена територия. И тук има два варианта: или пред нас е много подробна карта с огромно количество детайли, които трябва да се изучат (а това отнема много време), за да разберем къде се намират основните ориентири и как те си съотнасят един с друг; или можем да се възползваме от примитивен план, на който са обозначени само главните точки и тяхното взаимно разположение — такава карта е достатъчна, за да можем веднага да започнем да се придвижваме в правилната посока, уточнявайки детайлите по пътя.

Подходът на интензивно обучение 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

Граф на пътищата

Целта на този проект беше изграждането на граф — мрежа от пътища в Duckietown. Възлите на получените графове са кръстовища, а ребрата — пътища. За целта Duckiebot трябва да изследва града и да анализира маршрута си.

По време на работата по проекта беше разгледана, но след това отхвърлена идеята за изграждане на претеглен граф, в който стойността на реброто се определя от разстоянието (времето за преминаване) между кръстовищата. Реализацията на тази идея се оказа твърде трудоемка и не би било достатъчно време в рамките на училището.

Когато Duckiebot стигне до следващото кръстовище, той избира пътя, който излиза от кръстовището, по който още не се е движил. Когато всички пътища на всички кръстовища са преминати, в паметта на бота остава съставен списък на съседни кръстовища, който се преобразува в изображение с помощта на библиотеката Graphviz.

Предложеният от участниците алгоритъм не е подходящ за произволно Duckietown, но работеше добре в малък град, състоящ се от четири кръстовища, използван в рамките на училището. Идеята беше да се добави всеки кръстовищен ArUco маркер, съдържащ идентификатора на кръстовището, за да се проследява редът на преминаване на кръстовищата.
Схемата на работа на разработения от участниците алгоритъм е показана на изображението.

Подход на интензивно обучение STEM

Patrol Car

Целта на този проект е откритие, преследване и задържане на нарушител в град Duckietown. Патрулният бот трябва да се движи по външното кръгче на пътищата в града в търсене на предварително известен нарушител. След откритие на нарушителя, патрулният бот трябва да следва нарушителя и да го застави да спре.

Работата започна с търсене на идея за детекция на бота на кадър и разпознаване на нарушителя. Екипът предложи да се оснасти всеки бот в града с уникален маркер отзад — както реалните автомобили имат номера за регистрация. За това бяха избрани ArUco маркери. Те вече бяха използвани в Duckietown, защото е лесно да се работи с тях и те позволяват да се определи ориентацията на маркера в пространството и разстоянието до него.

Следваше да се осигури, че патрулният бот се движи строго по външния кръг без спиране на кръстовищата. По подразбиране Duckiebot се движи в лентата и спира на стоп линията. След това с помощта на пътни знаци определя конфигурацията на кръстовището и прави избор относно посоката за преминаване. За всеки от описаните етапи отговаря състояние на крайния автомат на робота. За да се избегне спирането на кръстовището, екипът промени автомата на състоянията така, че при приближаване до стоп линията ботът веднага да премине в състояние на преминаване направо през кръстовището.

Следващата стъпка беше да се реши задачата за спирането на нарушителя. Екипът предположи, че патрулният бот може да има достъп чрез SSH до всеки от ботите в града, т.е. да притежава информация за авторизационните данни и идентификатора на всеки бот. По този начин, след откритие на нарушителя, патрулният бот започна да се свързва по SSH с нарушителя и да изключва системата му.

След потвърждение, че командата за изключване е изпълнена, патрулният бот също спира.
Алгоритъмът на работа на патрулния робот може да бъде представен чрез следната схема:

Подход на интензивно обучение STEM

Работа по проекти

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

През първия и последния ден студентите подготвиха презентации, описващи зададената задача и методи за нейното решаване. За да помогнат на студентите да следват избраните планове, в стаите, където се работеше по проектите, постоянно присъстваха преподаватели от Русия и Америка, които отговаряха на въпроси. Общуването се осъществяваше предимно на английски език.

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

Работата по проектите продължи една седмица, след края на която студентите представиха резултатите си. Всички подготвиха презентации, в които разказаха какво са научили в тази школа, какви са най-важните уроци, които са извлекли, какво им е харесвало или не е харесвало. След това всяка команда представи проекта си. Всички екипи изпълниха поставените задачи.

Екипът, реализиращ калибриране на цветове, завърши проекта си по-бързо от другите, затова успяха да подготвят и документация за своята програма. А екипът, занимаващ се с графа на пътищата, дори в последния ден преди демонстрацията на проекта се опитваше да доработи и поправи своите алгоритми.

Подход на интензивно обучение STEM

Заключение

След завършването на училище помолихме студентите да оценят преминалите активности и да отговорят на въпроси как училището съответства на техните очаквания, какви умения са придобили и т.н. Всички студенти отбелязаха, че са научили да работят в екип, да разпределят задачи и да планират времето си.

Студентите също бяха помолени да оценят полезността и трудността на преминатите курсове. И тук се формираха две групи оценки: за едни курсовете не представляваха голяма трудност, други ги оцениха като максимално сложни.

Това означава, че училището е заело правилна позиция, оставайки достъпно за новаци в дадената област, но също така предоставяйки материали за повторение и затвърдяване на опитни студенти. Трябва да се отбележи, че курсът по програмиране (Python) почти от всички беше оценен като несложен, но полезен. Най-труден, според студентите, се оказа курсът "Архитектура на компютърни системи".

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

Освен това учащите се отбелязаха, че им е харесало да работят в режим на ежедневен план за задачите си и сами да поставят крайни срокове. Като недостатъци студентите посочиха липсата на предоставени знания, които бяха необходими при работата с бота: при свързването, разбирането на основите и принципите на неговата работа.

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

Автори на статията: екипът на лабораторията за алгоритми на мобилни роботи в JetBrains Research.

P.S. Нашият корпоративен блог вече има ново име. Сега той ще бъде посветен на образователните проекти на компанията JetBrains.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster