По своим вычислительным ресурсам робототехнические контроллеры, доступные широкому кругу пользователей, приближаются к показателям персональных компьютеров десятилетней давности. Такая тенденция позволяет постепенно применять в разработке современные методологии и технологии наравне с классическими для контроллеров низкоуровневыми языками и технологиями. Поскольку робототехника активно используется для STEM [5, 4] образования, внедрение популярных технологий, использующихся в промышленном программировании, позволит методистам разрабатывать программы обучения, направленные на более широкий круг пользователей. Одной из популярной технологий, получившей широкое распространение в образовательной сфере в последнее время, является язык Python.
Python на данный момент является четвёртым по популярности языком согласно индексу языков программирования TIOBE [2] на май 2017 года и вторым по популярности языком после Java согласно списку PyPL [6] на май 2017 года. В последние несколько лет Python стал активно внедряться в образовательные программы. Например, в Массачусетском технологическом институте, одном из ведущих [12, 13] университетов в области инженерного и технического образования, студентам первого года обучения читают курс ’’Introduction to Electrical Engineering and Computer Science I” [14], который представляет собой программирование роботов на языке Python. Другие зарубежные университеты тоже достаточно быстро перешли на использование Python в вводных курсах по программированию [7], тем самым обеспечив Python первенство среди языков программирования, использующихся в университетах США.
За трендом, установленным университетами, практически сразу же последовали школы [11,9], переходя на Python и внедряя новые курсы обучения программированию на языке Python. В России Python - один из 5 предложенных в ЕГЭ языков программирования на протяжении уже нескольких лет.
TRIK1 - это многоцелевой кибернетический контроллер и одноимённый металлический конструктив для прототипирования роботов. Одним из многим применений контроллера является обучение программированию студентов и школьников. Данный контроллер примечателен тем, что обладает достаточными вычислительными мощностями для решения сложных робототехнических задач и реализации ресурсоёмких алгоритмов, а также отсутствием необходимости навыков пайки и знания электротехники. Для контроллера TRIK существует среда TRIK Studio [18, 15], позволяющая облегчить знакомство с робототехникой школьникам младших и средних классов с использованием визуального программирования. Одними из наиболее значимых достоинств среды являются генераторы кода на текстовых языках программирования и интерпретатор текстового кода для 2D модели робота.
Среда TRIK Studio позволяет преподавателям произвести более плавный переход от визуального программирования к текстовому и впоследствии обучать сложным синтаксическим конструкциям текстовых языков программирования, используя наглядность уже созданных визуальных диаграмм. ПО контроллера TRIK и TRIK Studio образуют программное обеспечение образовательных решений TRIK, которое на данный момент поддерживает следующие языки программирования: языки платформ Java и .NET, JavaScript, C++, Pascal. Если добавить к перечисленным языкам Python, то TRIK по праву может считаться идеальной робототехнической платформой для обучения школьников и студентов.
В рамках данной работы были получены следующие результаты.
1. Сделан обзор архитектуры существующего ПО образовательных решений TRIK.
2. Определены требования к программному решению.
3. Разработана архитектура программного решения.
4. Выполнена реализация программного решения.
5. Разработанное программное решение внедрено в образовательные решения TRIK.
В ходе работы промежуточные результаты представлялись докладом на VII Всероссийской конференции ’’Современное технологическое обучение: От компьютера к роботу”, а также докладом на всероссийской конференции ”СПИСОК-2017”.
Одним из направлений развития полученных результатов является создание полноценного аналога QJSEngine для языка Python.
[1] Abrahams David, Grosse-Kunstleve Ralf W. Building hybrid systems with Boost. Python // CC Plus Plus Users Journal. — 2003. — Vol. 21, no. 7. — P. 29-36.
[2] BV TIOBE Software. TIOBE Index. — URL: https://www.tiobe.com/ tiobe-index/.
[3] Beazley David M et al. SWIG: An Easy to Use Tool for Integrating Scripting Languages with C and C++. // Tcl/Tk Workshop. — 1996.
[4] Benitti Fabiane Barreto Vavassori. Exploring the educational potential of robotics in schools: A systematic review // Computers & Education. — 2012. — Vol. 58, no. 3. — P. 978-988.
[5] Bybee Rodger W. What Is STEM Education? // Science.— 2010.— Vol. 329, no. 5995.— P. 996-996.— http://science.sciencemag.org/content/329/5995/996.full.pdf.
[6] Carbonnelle Pierre. PYPL Popularity of Programming Language. — URL: http://pypl.github.io/PYPL.html.
[7] Guo Philip. Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities. — 2014. — URL: https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now- the-most-popular-introductory-teaching-language-at-top-u- s-universities/fulltext (online; accessed: 20.04.2017).
[8] Heckel Frank, Schwier Michael, Peitgen Heinz-Otto. Object-oriented application development with MeVisLab and Python. // GI Jahresta- gung. - 2009. - Vol. 154. - P. 1338-51.
[9] Javidi Giti, Sheybani Ehsan. Making Youth Excited About STEM Education // J. Comput. Sci. Coll. — 2010. —. — Vol. 26, no. 1.— P. 140-147.— URL: http://dl.acm.org/citation.cfm?id= 1858449.1858474.
[10] Kirsanov Alexander, Kirilenko Iakov, Melentyev Kirill. Robotics Reactive Programming with F#/Mono // Proceedings of the 10th Central and Eastern European Software Engineering Conference in Russia. — CEE-SECR ’14. - New York, NY, USA : ACM, 2014. - P. 16:1-16:5. - URL: http://doi.acm.org/10.1145/2687233.2687249.
[11] Learning STEM. Python.— 2010.— URL: https://www.stem.org.uk/ rx34zw (online; accessed: 20.04.2017).
[12] Limited QS Quacquarelli Symonds. QS Top Universities in Engineering and Technology 2015/2016.— URL: https: //www.topuniversities.com/university-rankings/faculty- rankings/engineering-and-technology/2015.
[13] Limited QS Quacquarelli Symonds. QS Top Universities in Engineering and Technology 2017.— URL: https://www.topuniversities.com/ university-rankings/university-subject-rankings/2017/ engineering-technology.
[14] MIT. Introduction to Electrical Engineering and Computer Science I.— 2011.— URL: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction-to- electrical-engineering-and-computer-science-i-spring- 2011/ (online; accessed: 1.05.2017).
[15] Mordvinov Dmitry, Litvinov Yurii, Bryksin Timofey. TRIK Studio: Technical Introduction // Proceedings of the FRUCT’20. — 2017.— P. 296-308.— URL: https://fruct.org/publications/fruct20/ files/Mor.pdf.
...