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

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

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

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

Университетското образование е екстензивно – студентът върви на широк фронт и често не вижда смисъла и практическото значение на знанията, които получава. Решихме да превърнем парадигмата на университетското образование в STEM (от думите Science, Technology, Engineering, Math) и да създадем програма, която се основава на съгласуваността на знанията, позволявайки увеличаване на пълнотата в бъдеще, т.е. предполага интензивно владеене на предметите.

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

Тествахме подхода за интензивно обучение STEM в зимно училище, което проведохме заедно със студенти от MIT с подкрепата на JetBrains Research.

Подготовка на материали


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

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

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

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

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

Duckietown


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

Duckietown е проект с отворен код, включващ малки автономни роботи, наречени Duckiebots, и мрежите от пътища, по които те пътуват. Duckiebot е платформа на колела, оборудвана с микрокомпютър Raspberry Pi и една камера.

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

обучение


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

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

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

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

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

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

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

Четвъртият ден е първият ден от програмирането. Python 2 беше избран като език за програмиране, защото той се използва в програмирането на ROS. Този ден беше структуриран по следния начин: учителите представяха материала, даваха примери за решаване на задачи, докато учениците ги слушаха, седнали на компютрите си, и повтаряха написаното от учителя на дъската или слайда. След това учениците решаваха сами подобни задачи, като впоследствие решенията бяха оценявани от учителите.

Петият ден беше посветен на ROS: момчетата научиха за програмирането на роботи. През целия учебен ден учениците седяха пред компютрите си, изпълнявайки програмния код, за който учителят говори. Те успяха да управляват основните ROS единици сами и също бяха запознати с проекта Duckietown. В края на този ден учениците бяха готови да започнат проектната част на училището – решаване на практически задачи.

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

Описание на избраните проекти

Учениците бяха помолени да сформират екипи от по трима и да изберат тема на проекта. В резултат на това бяха приети следните проекти:

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

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

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

3. Изграждане на пътна графика. Има задача за изграждане на графика на пътища и кръстовища. Целта на този проект е да се изгради пътна графика, без да се предоставят априорни данни за околната среда на Duckiebot, като се разчита само на данни от камерата.

4. Патрулна кола. Този проект е измислен от самите ученици. Те предложиха да научат един Duckiebot, „патрул“, да преследва друг, „нарушител“. За тази цел е използван механизмът за разпознаване на целите с помощта на маркера ArUco. Веднага след като разпознаването приключи, се изпраща сигнал до „нарушителя“ да завърши работата.

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

Калибриране на цветовете

Целта на проекта за калибриране на цветовете беше да се коригира диапазонът от разпознаваеми цветове за маркиране към новите условия на осветление. Без такива корекции разпознаването на стоп линии, разделители на ленти и граници на пътя става неправилно. Участниците предложиха решение, базирано на предварителна обработка на цветови модели на маркиране: червено, жълто и бяло.

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

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

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

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

Патешко такси

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

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

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

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

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

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

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

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

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

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

Патрулна кола

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

PS Корпоративният ни блог има ново име. Сега той ще бъде посветен на образователни проекти на JetBrains.

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

Добавяне на нов коментар