Преимущества и недостатки блочного программирования - Студенческий научный форум

XV Международная студенческая научная конференция Студенческий научный форум - 2023

Преимущества и недостатки блочного программирования

Борискина П.А. 1, Казина А.А. 1
1Коломенский институт(филиал) московского политехнического университета
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Блочное программирование изучает свойства и методы решения оптимизационных задач, которые допускают представление в форме системы двух и более взаимосвязанных подзадач-блоков. Методы блочного программирования нередко универсальны и могут быть применены к задачам, не расчленяемым на блоки каким-либо естественным образом. Однако применение этих методов оправданно, когда хотя бы одна из выделенных подзадач обладает свойствами, позволяющими решать ее с помощью эффективного алгоритма, в то время как его использование для исходной общей задачи невозможно. Методы блочного программирования могут быть точными и приближенными, но при этом предписывают реализацию последовательности итераций, на каждой из которых решаются все выделенные подзадачи с учетом результатов предшествующей итерации. На современном этапе блочное программирование как таковое разделилось на два направления, одно из них – визуальное программирование.

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.

Главной идеей создания блочного (визуального) программирования было и остаётся обучение в школах, институтах или как первая ступень на курсах по программированию. Так как не всем людям понятно, как писать код, что означают слова или цифры, которые выглядят для них как хаотичный набор символов, а объяснить, как работают циклы функции классы операторы и методы обывателю без малейшего опыта программирования совершенно не представляется возможным, были созданы лёгкие языки программирования Basic и Pascal, но даже их достаточно простая структура была сложна для понимания, не говоря о более сложных с подобных языков. Поэтому был создан новый вид обучающего программирования, который назвали блочным или визуальным.

Блочное программирования как обучающий элемент появилось в 2007 году. Началось всё с программы под названием Scratch, изначально он задумывался как конструктор для обучения школьников программированию. Его сразу же подхватили большинство школ США и внедрили в программы обучения. Scratch стал прекрасным способом обучить человек с нуля и объяснить как работают сложные языки программирования.

Blockly — еще один популярный визуальный язык программирования, который позволяет создавать программы без изучения правил синтаксиса. Отличный пример — язык Google Blockly. Его можно запускать онлайн, и он генерирует исходный код на языках JavaScript, Python, PHP и Dart.[1]

Современное блочное программирование напоминает игру в конструктор, с помощью визуальных блоков ученик собирает схему используя изначально данные ему части конструктора, которые представляют собой кусочки готового кода. Эти части имеют свои определённые названия и назначения, если собрать эти кусочки вместе, то можно получить готовую программу, а если сделать это правильно, то она будет работать. Кроме собственных программ человек может создать свой сайт, не углубляясь в архитектуру языков веб-разработки таких как HTML, CSS, JS, вместо этого пользователь снова будет перетаскивать элементы сайта на подготовленный каркас.

Как и любые языки программирования, блочное программирование имеет свои плюсы и недостатки. Начнём с преимуществ:

1) Первое и главное это отсутствие синтаксиса. Так как самое сложное в классическом написании кода это запомнить синтаксис языка: операторы, структуры, типы данных, зарезервированные слова, символы и т.д. В блочном программировании это отсутствует, всё что нужно это подобрать нужные части пазлов, выполняющие то что нужно пользователю

2) Невозможно допустить ошибку. Для начинающих программистов ошибки являются обычным делом и вызывают массу трудностей так как компилятор или интерпретатор указывает на эти ошибки, но не показывает, как их исправить, а иногда и вовсе отказывается указывать на расположение ошибки. В блочном программирование таких ошибок возникнуть не может, так как код был уже заранее написан без ошибок.

3) Начало работы с роботами. Блочное программирование позволяет юным пользователям запрограммировать своего робота, которого они собрали ранее, без использования кода- для детей поиграть в конструктор для программирования намного легче чем написать собственный код.

Но, имея преимущества, нельзя оставлять без внимания недостатки:

1) При больших объёмах кода становится сложно, а порой и невозможно продолжать создавать проект. Разбираться в огромных схемах очень сложно, так как свернуть пазл и посмотреть на общую картину не представляется возможным.

2) Ограничение в синтаксисе. Блочное программирование ограничено в блоках, которые может использовать пользователь, например, чтобы написать свою функцию пользователь должен будет изучить языки программирования. Особенно учитывая то что современное программирование в большинстве использует самописные функции и библиотеки.

3) Невозможно организовать командную работу над одним проектом. Для разработки крупных проектов требуется одновременно работать большому числу программистов, поэтому блочное программирование не подходит для крупных проектов

4) Нет возможности хранить и просматривать историю изменений проекта. В современном программирование часто приходится откатывать часть сделанной работы из-за проблем связанными с багами и лагами другими вещами, мешающими программе работать корректно.

Таким образом, как и всякое направление, упрощающее работу, блочное программирование имеет свои достоинства и недостатки. Рассмотрим один из примеров блочного (визуального) программирования.

Проанализируем основы программирования в Google Blockly. Рассмотрим применение на простейших задачах.

Программа генерирует случайные числа, пока их сумма остаётся меньше 100. После генерации очередного числа, на экран выводится само число и сумма сгенерированных чисел.

Рис. 1. Блочное программирование

Результат работы программы в текстовом виде представлен ниже.

Рис. 2.Результат работы программы

Ну и как уже упоминалось, программа создает программный код.

Рис. 3. Программный код

В качестве второго примера рассмотрим более сложную задачу.

Напишем программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишем эти два делителя на экране с новой строки в порядке возрастания произведения этих делителей. Делители в строке также должны следовать в порядке возрастания.

Рис. 4. Программа в блочном виде

Рис. 5. Генерируемый код

Рис. 6. Результат работы программы

С точки зрения обучения детей наибольший интерес представляет на современном этапе робототехника.

Рис. 7. Задание

Рис. 8. Блочный программный код

Рис. 9. Результат работы программы

Таким образом, представленная программа служит как элементом обучения, так и позволяет решать необходимые задачи.

Список использованных источников

Белоконова С.С., Плотникова М.С. Блочный Python как переходный этап в обучении программированию. Информатика в школе. 2021;(7):57-62. https://doi.org/10.32517/2221-1993-2021-20-7-57-62

Морох Е.А., Шаулина Д.С., Юдина Е.Н. Навигатор сред блочного программирования. Информатика в школе. 2022;(2):71-82. https://doi.org/10.32517/2221-1993-2022-21-2-71-82

Федоричев Л.А., Букунова О.В. Переход от блочного к текстовому программированию при обучении школьников в системах общего и дополнительного образования // МНИЖ. 2022. №11 (125). URL: https://cyberleninka.ru/article/n/perehod-ot-blochnogo-k-tekstovomu-programmirovaniyu-pri-obuchenii-shkolnikov-v-sistemah-obschego-i-dopolnitelnogo-obrazovaniya

https://skysmart.ru/articles/programming/vizualnoe-programmirovanie

http://codernet.ru/articles/drugoe/chto_takoe_blochnoe_programmirovanie_eto_yazyik_ili_programma/

https://itgen.io/blochnoe-programmirovanie

https://habr.com/ru/post/469337/

https://gb.ru/posts/graph_programming

Просмотров работы: 808