80% наших курсов — это практика, в том числе в Jupyter Notebook. Сегодня кратко представим расширения визуального программирования и управления роботами Nyrio. За подробностями приглашаем под кат — к старту нашего флагманского курса по Data Science.
Визуальное программирование, или программирование с управляющей графикой, стало неотъемлемой частью любого школьного курса информатики: основные понятия программирования изучаются без обращения к синтаксису текстовых языков программирования.
В совершенно новый мир школьники попадают при переходе от графических языков к классике вроде Python. Чтобы перекинуть мост через пропасть между этими мирами, мы создали расширение JupyterLab для Blockly. Оно упрощает работу с Jupyter на этапе первого знакомства с Jupyter.
Что же такое Blockly?
Запуск простого цикла в расширении JupyterLab-Blockly и соответствующий код на Python в окне
Blockly — библиотека с открытым исходным кодом от Google. Благодаря управляющей графике она делает программирование проще и доступнее. Связи графических блоков друг с другом представляется в виде кода, а все требования языка к синтаксису в этом графическом интерфейсе устранены. Пользователь получает полную свободу творчества.
Начало работы: установка расширения Blockly
Для установки расширения выполните команду:
mamba install -c conda-forge jupyterlab-blockly
После установки откройте Blockly прямо из программы запуска и начинайте творить!
Функциональность расширения
Пользовательский интерфейс прост: слева панель инструментов, справа — рабочая область, куда можно перетаскивать блоки, которые вы хотите использовать в своём коде. Когда вы закончите, просто нажмите кнопку запуска, и внизу экрана появится синтаксически корректный код на выбранном языке с готовыми выходными данными!
Короткое видео про JupyterLab-Blockly
Расширение также может адаптироваться под ваши потребности. Блоки в рабочей области генерируются с учётом выбранного ядра JupyterLab, а их цвета меняются сообразно выбранной или настроенной темы.
JupyterLab-Blockly без проблем интегрируется со стеком Jupyter: при выполнении генерируемого кода с помощью ядер Jupyter, а также при повторном использовании компонента ячейки кода JupyterLab (code cell) для отображения сгенерированного кода и т. д.
При этом JupyterLab-Blockly согласуется с остальным интерфейсом пользователя (согласуются подсветка синтаксиса, выбор тем и жизненный цикл ядер Jupyter).
Изучение робототехники
На основе JupyterLab-Blockly мы собрали ещё одно расширение для управления роботами с помощью средствами визуального программирования. Точнее, мы создали набор инструментов с необходимыми блоками для программирования роботов Niryo One. Формат ROS требователен ко времени загрузки, однако готовые визуальные блоки упрощают и ускоряют создание прототипа любого задуманного проекта.
Для установки расширения выполните эту команду:
mamba install -c conda-forge jupyterlab-niryo-one
Остаётся только переключиться с набора инструментов
'default'
на 'niryo'
— и вы сразу получите доступ к 42 новым блокам. Если у вас есть доступ к одному из этих роботов, попробуйте!Короткое видео про JupyterLab-NiryoOne
Оба расширения можно найти на GitHub. Расширение JupyterLab-Blockly готово стать основой для ваших проектов. Регистрируйте новые блоки, наборы инструментов и генераторы. Используйте расширение JupyterLab-Niryo-One как пример и экспериментируйте в своё удовольствие!
Управление роботом Niryo One из расширения JupyterLab-blockly
Вы можете пользоваться расширением JupyterLab-Blockly уже сейчас и прямо из браузера с помощью JupyterLite! Просто перейдите по этой ссылке.
Карлос Херреро — разработчик учебного и исследовательского программного обеспечения на QuantStack. Увлечён ИИ и его робототехническими задачами. Его текущая работа посвящена стеку JupyterLab и расширениям экосистемы Jupyter для интеграции JupyterLab с ROS, а также работе с Voil.
Поможем разобраться в программировании, чтобы вы прокачали карьеру или стали востребованным профессионалом в IT:
Чтобы увидеть все курсы, нажмите на баннер:
- Профессия Data Scientist
- Профессия Data Analyst
- Курс «Математика для Data Science»
- Курс «Математика и Machine Learning для Data Science»
- Курс по Data Engineering
- Курс «Machine Learning и Deep Learning»
- Курс по Machine Learning
Python, веб-разработка
- Профессия Fullstack-разработчик на Python
- Курс «Python для веб-разработки»
- Профессия Frontend-разработчик
- Профессия Веб-разработчик
Мобильная разработка
Java и C#
- Профессия Java-разработчик
- Профессия QA-инженер на JAVA
- Профессия C#-разработчик
- Профессия Разработчик игр на Unity
От основ — в глубину
А также
Комментарии (7)
KizhiFox
28.09.2022 09:59+2Всё же "сделать для каждой функции рамочку с плейсхолдерами" — это не совсем визуальное программирование. С таким же успехом всё это можно гораздо быстрее и удобнее писать руками. Вот если бы блоки были более общими / более крупными (типа не "откалибровать моторы" → "повернуть ногу на 120°" → ..., а просто "идти туда-то") и ставились бы не только друг под друга, а произвольными блок-схемами с ветвлением, тогда я бы сказал, что в этом есть смысл, а так...
Помню, в игре Kerbal Space Program с тамошним программированием ракет подобным образом намучился. Так и хотелось закричать: "если у вас один блок — одна функция, почему вы не сделаете это тупо текстом? Мне написать быстрее, чем среди 100500 блоков искать!" Всё равно человек без навыков программирования не разберётся, что за чем идти должно, хоть ты функции блоками таскай, хоть руками пиши.
HemulGM
Можно вопрос? А зачем вообще обучать подобным образом людей? Ведь то, что составляешь из блоков ты не сможешь потом написать кодом. Да, ты сможешь изучить что там конкретный блок генерирует и так же написать. Но это менее удобно, чем изучать основы классическим способом и понимать что за что отвечает и почему это именно так.
weko
это скорее для детей,чем для состоявшихся(типо начало ,обучение, - простота и интерес)
SADKO
Ха, пробовал я как то маленьким детям в монтесорском саду давать блочную шляпу, точнее кто-то из родаков леговиду приволок. Правда оказалась в том, что детям координация движений мышки, тот ещё напряг. А вот клавиатуру они осваивают ураганом, и тыканью мышкой предпочитают шорткаты.
stranger777
Выше уже ответили, но чуть дополню. Да, это делается для детей. Не все дети к моменту начала курса информатики осваивают логику запятых, любят синтаксис как таковой, достаточно усидчивы, чтобы писать синтаксически корректные конструкции и так далее ("да ну эти ваши точки с запятыми и отступы, лучше мяч погоняю"), а базу программирования дать нужно всем, включая детей, которым языки не даются вообще никак. Детское образование из-за массовости местами может казаться очень странным, неуместным и специфичным, потому что люди, не задумываясь, переносят свой интеллект на других: что просто мне, то просто и другим; но в массовом образовании это не работает
KizhiFox
Вот так уже понятнее становится, спасибо. Хотя всё равно если упрощать, то тогда уж лучше сделать что-то более обобщённое (см. мой коммент ниже)