Изобретатель Приложений Под Пристальным Вниманием


Анализ почти девяноста тысяч проектов App Inventor показывает, что, хотя некоторые из них достигают более 60 000 блоков, большинство из них сравнительно скромны. По сравнению с проектами Scratch, проекты, основанные на App Inventor, лишены циклов и условных условий и в основном управляются событиями.

App Inventor-это действительно простой способ создания приложений для Android. На случай, если вы пропустили его предысторию, он возник в Google, когда Хэл Абельсон из Массачусетского технологического института был там в творческом отпуске и решил, что Android будет хорошей мишенью для образовательного языка. Он взял язык программирования графических блоков Scratch и настроил его для создания приложений для Android.

App Inventor был впервые продемонстрирован миру в 2010 году, и, как мы сообщали в то время, см. Простые приложения для Android, используя его для создания приложения, все, что вам нужно было сделать, это перетащить некоторые элементы управления пользовательского интерфейса на поверхность, а затем создать логику программы, перетаскивая блоки. Он был и остается очень подходящим для того, чтобы заставить начинающих программировать что-то впечатляющее. 

Следующая часть истории заключается в том, что в 2011 году в рамках закрытия Google Labs Google передала App Inventor Массачусетскому технологическому институту, где он с тех пор разрабатывается как проект с открытым исходным кодом. Хотя он не так популярен, как Scratch, он был принят в качестве образовательного инструмента, что и предполагал Абельсон, а также использовался в качестве инструмента прототипирования, роль которого была предложена и использована Майком Джеймсом – см. App Inventor Версии 2 – Простые приложения для Android. 

Это исследование проектов App Inventor исходит от Департамента информатики и статистики Федерального университета Санта-Катарины и предназначено для содействия разработке учебной программы K12, направляя решения по выбору языка визуального программирования для обучения вычислительной технике.

Согласно статье Наталии да Круз Алвес и др., которые были поддержаны в своих исследованиях командой разработчиков приложений MIT: 

[App Inventor] используется широким кругом людей всех возрастов и происхождения с более чем 1 миллионом уникальных активных пользователей в месяц из 195 стран, которые создали почти 35 миллионов мобильных приложений. Проектами App Inventor можно поделиться через галерею App Inventor под лицензией creative commons, которая содержит более 150 тысяч проектов в апреле 2020 года. 

Для этого исследования 88 606 проектов были удалены из галереи App Inventor и проанализированы с точки зрения размера, использования встроенных блоков программирования, компонентов дизайна и блоков компонентов.

С точки зрения размера исследователи обнаружили, что, хотя многие проекты были небольшими, 25% с 15 или менее блоками, некоторые были “удивительно большими проектами” с более чем 60 000 блоками. В то время как среднее количество блоков на проект составляло 162,5, 75% состояли из менее чем 137 блоков, что указывает на то, что среднее значение было сильно искажено длинным хвостом распределения.

Рассматривая использование различных типов блоков, исследователи обнаружили, что блоки событий для обработки событий интерфейса, таймеров, датчиков и т. Д. На сегодняшний день являются наиболее часто используемыми, присутствуя более чем в 91% проектов.

В качестве комментария в статье отмечается:

Это подтверждает событийный характер языка программирования App Inventor.

Он также обращает внимание на вывод о том, что:

Методы Set, Get и Call также широко используются для настройки компонентов App Inventor и выполнения сложных функций, инкапсулированных методами вызова.

Проводя различие между компонентами проектирования и блоками компонентов, в отчете объясняется, что используется меньше компонентов проектирования, чем блоков программирования:

как правило, для правильной работы необходимо несколько программных блоков для каждого компонента дизайна в проекте App Inventor.

Компоненты дизайна в наибольшей степени зависят от пользовательского интерфейса и макета, где их использование затмевает использование блоков компонентов.

В отчете также приводятся интересные сравнения между App Inventor и Scratch, используя результаты анализа 233 491 проекта Scratch, о которых сообщили Айвалоглу и Германс в статье “Как дети кодируют и как мы знаем: исследовательское исследование репозитория Scratch”.:

В целом проекты App Inventor кажутся более крупными с точки зрения количества блоков в проекте, чем проекты Scratch. Хотя среднее количество блоков на проект (162,50 блоков в проектах App Inventor и 154,55 блоков в проектах Scratch) не сильно отличается, медиана блоков на проект в App Inventor (54) почти вдвое превышает медиану блоков на проект Scratch (29). Поэтому кажется, что проекты App Inventor в целом кажутся более сложными, чем программы, созданные с нуля.

Что мне кажется более интересным, так это работа с условными обозначениями и циклами – проекты App Inventor имеют гораздо меньше этих конструкций, чем проекты Scratch. В статье предпринята попытка объяснить это с точки зрения акцента App Inventor на обработку событий, указывая, что в проектах App Inventor некоторые условные поведения выражаются неявно через блоки событий (например, когда нажимается кнопка, сделайте что-нибудь). Кроме того, благодаря модели App Inventor, основанной на событиях, многие итерационные процессы, которые выражаются через циклы в Scratch, представлены с использованием блоков событий в App Inventor. 

Их анализ приводит исследователей к выводу:

Приняв App Inventor, студенты знакомятся с моделью обработки на основе событий, создающей мобильные приложения, что облегчает изучение некоторых понятий, таких как свойства компонентов и параметры событий, по сравнению с другими. С другой стороны, другие понятия, такие как условные обозначения и/или циклы, менее обязательны и, следовательно, гораздо менее охватываются при обучении вычислениям с помощью App Inventor.

Обработка событий, возможно, подходит для мобильных приложений, и это ядро почти всех пользовательских интерфейсов, но хорошо ли это для обучения информатике?


Добавить комментарий