Путь черепахи: эволюция LOGO-подобных языков
Описание события | Путь черепахи: эволюция Logo-подобных языков // В.В.Буров, Е.Д.Патаракин // VI международная конференция, «РАЗВИТИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ В РОССИИ, СТРАНАХ БЫВШЕГО СССР И СЭВ» Россия, Нижний Новгород, НИУ ВШЭ, 25–27 сентября 2023 года |
---|---|
Тип события | Доклад |
Начало | 2023-09-25T10:00:32.000Z |
Окончание | 2023-09-26T16:13:32.000Z |
color | salmon |
Адрес события | https://www.sorucom.org/programma/ |
Видео запись события | |
Среды и средства, которые использовались в рамках события | Logo, Snap!, NetLogo |
Формируемые в рамках события компетенции | |
Область знаний | Информатика |
Местоположение | 56° 19' 29.87" N, 44° 1' 23.83" E |
Формат реализации | |
Карта |
- Аннотация
- Logo это название философии образования и, одновременно, постоянно развивающегося семейства языков программирования, как помогающих в ее реализации так и решающих такие задачи, как наглядное многоагентное моделирование для различных областей научных исследований. Статья рассматривает развитие многочисленных потомков языка Logo, изначально созданного в 1967 для обучения школьников математике и алгоритмам, включая советские и российские разработки. Кроме разнообразия направлений, в которых эволюционировал Logo, внимание уделено возникновению и развитию российского сообщества, связанного с этим языком.
- https://www.iis.nsk.su/files/page/burov_v.v._patarakin_e.d.pdf
- Ключевые слова – Logo, языки программирования, конструкционизм, сообщества
ВВЕДЕНИЕ
Появление вычислительной техники повлияло на образование как с точки зрения появления самостоятельной отрасли обучения, так и новых концепций образования в целом. Одним из наиболее ярких проявлений этого – выдвинутая Сеймуром Пейпертом (Seymour Papert) идея конструкционизма. Пейперт считал, что дети не выступают пассивными получателями знаний, а наоборот, сами их активно конструируют. Пейперт продолжил развивать подход известного идеолога конструктивизма в педагогике Жана Пиаже (Jean Piaget) — идею о том, что дети учатся быстрее всего, когда они сами формируют свои представления об увиденном и делают собственные заключения, а не когда им говорят, как они должны воспринимать мир. Эту идею Пейперт дополнил положением, что люди учатся лучше, если они вовлечены в создание конкретных объектов, которые им сами интересны. При этом ставку он сделал не на традиционные формы обучения, а на только начавшие тогда становиться массовыми компьютеры, приехав работы с Пиаже в Швейцарии в Массачусетский технологический институт (MIT), где вместе с Марвином Мински (Marvin Lee Minsky) стал основателем знаменитой лаборатории искусственного интеллекта.
Одним из продуктов этой работы стало появление языка Logo – ставшего одновременно и символом нового философского подхода в образовании, и важной точкой в развитии языков программирования, и родоначальником целой группы специализированных языков программирования, выходящих за рамки чисто образовательных целей.
В этой статье представлены исторический фон и цели создания Logo, а также его отражение в России, в виде как самостоятельных реализаций, так и формирования сообщества вокруг образовательных практик.
Во многих публикациях название оригинального языка пишут как LOGO, что не совсем корректно. Название Logo не является акронимом, а происходит от греческого ‘logos’ [1]. Поэтому мы будем употреблять именно оригинальное написание наименования.
ИСТОРИЯ СОЗДАНИЯ
Первый интерпретатор Logo появился в 1966 году на компьютере PDP-1 [2]. Он был написан Даниэлем Боброу (Daniel Bobrow) в компании Bolt Beranek and Newman, Inc. (BBN) и стал одним из результатов активно развивавшегося в 60-е годы сотрудничества BBN с MIT в сфере искусственного интеллекта, в первую очередь c лабораторией искусственного интеллекта Марвина Мински. Их исследовательские проекты в области искусственного интеллекта включали понимание естественного языка, распознавание образов и обучение с помощью компьютера.
К этому времени, Боброу уже создал в рамках своей диссертации систему STUDENT для решения алгебраических задач, известную как одно из первых успешных приложений искусственного интеллекта [3]. При этом в создании Logo он выступил именно как программист, сама же концепция языка была разработана незадолго перед этим приехавшим из Швейцарии в лабораторию Минского в MIT Сеймуром Пейпертом, а также Уолесом Фёрзигом (Wally Feurzeig), и Синтией Соломон (Cynthia Solomon).
Как позже отмечал Фёрзиг, катализатором внимания BBN к тематике образования послужил успех компании в реализации концепции разделения времени – BBN продемонстрировала первый успешный компьютер с разделением времени в 1964 году. [4] В условиях очень дорогого в 60х машинного времени, это показало потенциал для проникновения компьютеров в образование в будущем – за долго до революции персональных компьютеров.
Концепция языка программирования, предназначенного для студентов и обучения, возникла в результате исследовательской работы в системах разделения времени в классах, которая помогла детям изучать математику. Это исследование было проведено с использованием языка TELCOMP в 1965-66 годах при поддержке Управления образования США. В исследовательскую группу входили четверо сотрудников BBN – Уоллес Фёрзейг, Даниэлем Боброу, Ричард Грант (Richard Grant) и Синтия Соломон, – и Сеймур Пейперт из Массачусетского технологического института. [5]. Пейперт отвечал за функциональные спецификации, а Боброу отвечал за разработку первой реализации [4]. Название Logo было придумано Фёрзейгом, чтобы подчеркнуть тот факт, что язык является символическим, а не количественным [1].
Первоначально постановка целей разработки Logo BBN '67 выглядела так [4]:
- Третьеклассники должны иметь возможность использовать его для простых задач с очень небольшой подготовкой.
- Его структура должна включать математически важные концепции с минимальным вмешательством в соглашения программирования.
- Он должен позволять выражать математически богатые нечисловые, а также численные алгоритмы.
Большинство языков того времени плохо поддерживали нечисловые вычисления и не имели хороших функций взаимодействия (отладки и редактирования). В результате команда разработала систему с высокой интерактивностью. Также требованием была поддержка файловой системы для возможности сохранить и продолжить потом работу учеников. [2]. Также, изначально как ключевые особенности языка Logo рассматривались модульность, расширяемость, интерактивность и гибкость. Эти конструктивные особенности тесно связаны с образовательными целями языка [6].
Но задумка в создании Logo была более глубокой. Он создавался не только – и не столько – для того, чтобы обучать навыкам программирования. Цель была более глобальной: обучение метакогнитивным навыкам и решению проблем, реализуя с помощью компьютера зарождавшуюся тогда концепцию конструкционизма Пейперта [7].
Description | |
---|---|
Конструкционизм | Конструкционизм - философия обучения, развитая Сеймуром Пейпертом на основании конструктивизма. К активной позиции конструктивизма конструкционизм добавляет идею того, что люди создают новое знание особенно эффективно, когда они вовлечены в создание продуктов, наделенных личностным смыслом, будь то песочные замки, Лего машины или компьютерные программы. |
Предварительная версия Logo 1967 года состояла из 20 команд и 14 встроенных функций. На Рис.1 показана простейшая демонстрационная программа, написанная для этого интерпретатора [8]. Поскольку он был разработан в некотором смысле как «детская» версия LISP, Logo находится под сильным его влиянием. Исходный интерпретатор для PDP-1 был написан на LISP, и в его среде было возможно выполнение s-выражении с помощью команды LISP. А в разработке следующей версии в 1968 году принял участие один из разработчиков первой реализации LISP Майкл Левин (Michael Levin). Такие концепции LISP как сборка мусора, рекурсия и манипуляции с символами, заняли центральное место в Logo [2].
Первая версия LOGO была протестирована на учащихся шестого и седьмого классов полевой школы Hanscom в Линкольне, штат Массачусетс, в июле 1967 года. Но, как это не удивительно, в той версии отсутствовало то, что все сейчас неразрывно связывают с языком Logo – не было виртуального исполнителя «черепаха» и ни одной связанной с этим команды.
Она появилась только в следующей версии. Cперва это было реальное физическое устройство, которое подключалось к компьютеру, ставилось большой лист бумаги и могло рисовать на нем, подчиняясь командам компьютера, таким как LEFT, RIGHT, FORWARD или BACK. Позже, в 70-х, даже появились коммерческие компании, производившие этих аппаратных черепах на коммерческой основе, например Terrapin Software. А затем черепаха стала спрайтом на графическом экране компьютера, который мог рисовать линии и картинки, используя те же команды черепах, которые управляли аппаратными черепахами [6].
В итоге, в первую официальную версию Logo, выпущенную BBN в 1968 году, были добавлены команды управления «Черепахой». Эта версия содержала 38 команд, 45 встроенных функций и 12 зарезервированных имен. Здесь показан пример кода с управлением Черепахой, использованный как демонстрационный пример Пейпертом [9].
- Код Logo для управления Черепахой
TO ROLL :DISTANCE
IF :DISTANCE = 0 [stop]
CIRCLE 360
FORWADD 10
ROLL :DISTANCE - 1
END
TO POLY :STEP :ANGLE
FORWARD :STEP
RIGHT :ANGLE
POLY :STEP :ANGLE
END
TO POLYSPI :STEP :ANGLE
FORWARD :STEP
RIGHT :ANGLE
POLY :STEP + 10 :ANGLE
END
С сентября 1968 года по ноябрь 1969 года она использовалась при обучении математике в начальной и средней школе в рамках годичного исследовательского проекта Национального научного фонда [4]. После этого центр дальнейшего развития Logo переместился из BBN в Массачусетский технологический институт. Вокруг Пейперта собралась группа, которая занималась исследованиями и разработками в области Logo и развитием практического воплощения идей конструкционизма. До конца 1970-х годов Logo фактически не использовался за пределами местных школ недалеко от Массачусетского технологического института, а также в Эдинбурге (Шотландия) и Тасмании (Австралия) – где в университетах образовались партнерские исследовательские группы. [6]
РАЗВИТИЕ ЯЗЫКА LOGO И ЕГО НАСЛЕДНИКИ
- (Logo OR Ancestors
- Logo)
- AlgoBlock (Ancestors: Лого)
- App Inventor (Ancestors: Scratch, Лого, Blockly)
- Boxer (Ancestors: Лого)
- DBSnap (Ancestors: Scratch, Snap!, Лого)
- GP (Ancestors: Scratch, Лого)
- Josef (Ancestors: Лого)
- KTurtle (Ancestors: Лого, Kumir)
- LogoBlocks (Ancestors: Лого)
- LogoWriter (Ancestors: Лого)
- Move the Turtle (Ancestors: Лого)
- NetLogo (Ancestors: Лого, StarLogo)
- NetsBlox (Ancestors: Scratch, Snap!, Лого)
- Scratch (Ancestors: Лого, Squeak, Agentsheets)
- Smalltalk (Ancestors: Лого, Lisp)
- Snap! (Ancestors: Scratch, Лого, Lisp, Smalltalk, Scheme)
- StarLogo (Ancestors: Лого)
- StarLogo Nova (Ancestors: NetLogo, Scratch, Лого)
- UCB Logo (Ancestors: Лого, Lisp)
- Лого (Ancestors: Lisp)
- ПервоЛого (Ancestors: Лого)
После публикации в 1980 году книги Сеймура Пейперта Mindstorms [5] интерес к Logo резко возрос, плюс это совпало с массовым появлением домашних и школьных компьютеров. В результате было выпущено множество версий Logo для них. Язык широко поддерживался тогдашними лидерами рынка Apple, Atari, IBM и TI. Atari даже создала Кембриджский исследовательский центр Atari, которым руководила Синтия Соломон, возглавлявшая программу обучения учителей использованию Logo на занятиях. Поддерживали Logo и популярные игровые компьютеры Commodore, для которых в интерпретаторы добавляли «игровые» качества.
В результате к середине 80-х существовало три основных ветви языка Logo. Компания Logo Computer Systems, Inc. (LCSI), основанная Сеймуром Пейпертом, производила Apple Logo, Apple Logo II, Atari Logo и IBM Logo, и все программы, написанные на этих диалектах LCSI Logo, были независимыми от платформы и переносимыми. Другой разновидностью Logo, тесно связанной и совместимой с LCSI Logo, был MIT Logo – над которым продолжала работать команда Пейперта в Массачусетском технологическом. Эти версии работали на Commodore, Apple и IBM PC и продавались под названием Krell and Terrapin. Третьей разновидностью были системы Logo, созданные в компании LISP Machine, которые существенно отличались от других реализаций, больше напоминая LISP. Существовали и другие реализации Logo, некоторые из них не были совместимы с тогдашними стандартными системами LCSI и MIT LOGO [10].
Возникали и исследовательские модификации Logo для изучения различных вопросов в образовании. Например, Брайан Сильверман (Brian Silverman) и Майкл Темпл (Michael Temple) внесли элемент случайной ошибки в Logo, создав «Fuzzy Logo» – диалект который не всегда дает желаемые результаты. Стандартные команды «вправо», «влево», «вперед» и «назад» в нем имели «случайную ошибку до десяти процентов», так что команда «вперед 100» могла привести к перемещению черепахи между 90 и 110 единицами [11].
Интересным направлением стал LEGO Logo. В нем использовался более аппаратно-ориентированный подход, позволяя размещать источники света и моторы, размещенные в кубиках LEGO, и управлять ими с помощью программы в Logo. Его потомками с одной стороны стал ориентированный на самую младшую школьную аудиторию Scratch с его визуальным подходом к программированию, а с другой –линейка LEGO Mindstorm, занявшая место мирового стандарта для начального обучения в области робототехники.
Дальнейшие усилия Пейперта и его группы, ставших значимой частью Media MIT Lab, были направлены на перенос управляемого исполнителя Черепахи в компьютерную среду и разработку среды для обучения на базе высокоуровневого языка – Logo, Logo for Children и LogoWriter. LogoWriter был разновидностью LCSI Logo, содержавшей текстовый процессор и несколько черепах. Он был первым из потомков Logo, который действительно изменил среду программирования учащихся; пользовательский интерфейс стал более интуитивно-понятным, а пакет был переведен на многие языки – включая русский, о чем пойдет речь далее.
На идеях Logo построен NetLogo – переросший образовательную нишу и ставший одним из основных средств многоагентного моделирования в академической практике социальных наук и биологии.
- NetLogo Web
Среди современных потомков также можно отметить Snap!, StarLogo Nova, Squeak и другие – выходящие уже за границу нашего исследования.
Snap!
StarLogo Nova
ПОТОМКИ LOGO В РОССИИ И ВОСТОЧНОЙ ЕВРОПЕ
Несколько мини-языков были разработаны с использованием Logo и широко использовались в СССР, например, Путник, Turingal и Turtoise [12]. Множество учебных проблем было связано с задачами управления простым агентом «Путником», перемещающимся по отмеченному полю со стенами. Формальная концепция исполнителя была разработана российскими исследователями Г.А. Звенигородским и А.Г. Кушниренко. Исполнитель включает агент, действующий в микромире, и небольшой набор команд и запросов к агенту, возвращающих значения. Концепция исполнителя делает возможным использование нескольких агентов в рамках одного языка программирования. Философия КуМир заключается в том, что язык имеет компактное ядро, которое можно динамически расширять путем загрузки одного или нескольких отдельно подготовленных модулей, то есть исполнителей с новыми микромирами и субъектами, или даже новых числовых пакетов и абстрактных типов данных. Такой подход позволяет легко настроить систему с несколькими исполнителями [14].
В странах Восточной Европы появились многочисленные потомки Черепашки Logo. Logo Comenius, мощная по своим возможностям версия Logo, была написана в Словацкой Республике [14]. KIDLOGO, компактный микромир для использования в детских садах и для специального образования, был разработан в Венгрии [15]. Geomland — версия Logo, включающая инструментарий эвклидовой геометрии, была разработана в Болгарии [16]. IconLogo, разработанный доктором Сергеем Сопруновым и его группой в Институте новых технологий в образовании (Москва), включал текстовый процессор, графический редактор и музыкальный синтезатор [17]. Другие российские программы, предназначенные для обучения алгоритмам и программированию, такие как МикроМир, Алгоритмика и Роботландия, также использовали концепцию исполнителя.
Такое разнообразие не породило какого-либо популярного в глобальном масштабе продукта, но явилось важной отправной точкой для развития сообщества вокруг конструкционистских подходом и обучения информационным технологиям.
РАЗВИТИЕ LOGO-СООБЩЕСТВА В РОССИИ
Ставший в определенном смысле революционным LogoWriter представлял собой сочетание языка программирования, текстового процессора, графики и анимации. LogoWriter, безусловно, был хорошим инструментом для реализации проектно-ориентированного подхода – и стал катализатором для формирования российского сообщества и ряда интересных проектов. В России его продвигал и поддерживал Институт новых технологий в образовании [18].
Формирование сетевого сообщества российский преподавателей, использующих в своей практике язык Logo и его разновидности, такие как LogoWriter, Splash LogoWriter, LogoExpress и MSWindows Logo, началось в начале 1990-х годов и было связано с организацией летних компьютерных школ в г. Переславль и информационно-образовательной сети «Uchcom», созданной в 1992 году Институтом программных систем Российской Академии Наук. Uchcom специализировался на таких аспектах образования, как физика, математика, когнитивная психология, мультимедиа. Однако Logo Media была самой успешной работой в Uchcom, потому что LogoWriter активно использовался в телекоммуникационных проектах: Космонавт (была реализована идея «чата»), Компьютерный театр (реализована идея телеконференции), Микромир (реализована идея переписки), Фантастический мир (реализована идея упоминания) [19]. Это базировалось на возможности делиться работами и объединять страницы LogoWriter в совместный проект.
Целью Logo Media было исследование образовательных возможностей телекоммуникаций в среде Logo и создание телекоммуникационной ассоциации русских пользователей Logo. В июле 1993 года участники проекта из разных городов России (Москва, Санкт-Петербург, Череповец, Ярославль, Нижний Новгород, Саранск, Омск, Норильск) приняли участие в двухнедельном семинаре Международной компьютерной школы в Переславле-Залесском. Школа имела телекоммуникационный доступ в Интернет и могла распространять свои материалы через образовательную сеть «ТВ-ИНФОРМ».
Телекоммуникации Logo и LogoNet — это термины, используемые для описания возможности общения групп учеников и преподавателей в разных местах по Интернету через программный интерфейс LogoExpress и LogoNet [20]. Участники сети обменивались статическими текстовыми, графическими и цифровыми видеоизображениями LogoWriter, отформатированными в виде файлов LogoWriter. Таким образом, ученики в Переславле-Залесском могли «общаться» с учениками в Омске и делиться друг с другом историями, графикой и картинками.
ВЫВОДЫ И ЗАКЛЮЧЕНИЕ
Графика черепашки Logo оказала огромное влияние на формирование направления мини-языков, первым из которых была графика черепашки Logo. У мини-языков скромный синтаксис и простая семантика. Поэтому ученик, даже очень маленький, может овладеть всем мини-языком и использовать его, получая интересные результаты. Второе важное преимущество состоит в том, что мини-языки построены на интересных и визуально привлекательных метафорах. В каком-то смысле все языки с графическим исполнителем, активно используемые в образовании, являются потомками Logo. Как писал Петр Брусиловский (Petr Brusilovsky), используя большинство существующих мини-языков, «ученик узнает, что такое программирование, изучая, как управлять действующим субъектом, которым может быть черепаха, робот или любой другой активный агент, действующий в микромире» [13]. Хотя действующим агентом может быть и физическое устройство, ученик обычно имеет дело с программной моделью такого устройства и наблюдает за поведением исполнителя на экране. Действующий агент может выполнять небольшой набор команд и отвечать на несколько запросов, возвращающих значения. Обычно ученик управляет агентом сначала посредством отдельных команд, затем посредством написания небольших программ на специальном мини-языке программирования.
Logo оказал влияние на российское образование, не только представив отдельный язык программирования и его потомков, но и сформировав международную культуру Logo, в которой можно делиться радостью от обучения, использовать свои ошибки в творческом контексте, работать с учениками и учителями как с партнерами в научно-исследовательской группе. В конце двадцатого века Черепаха Logo была интересным граничным объектом [21], который объединил людей из разных стран и разных профессиональных сообществ.
К сожалению, сегодня в России нет известных проектов, продолжающих развитие семьи Logo как новых учебных или специализированных языков программирования. Однако на опыте ранних сообществ, сформированных вокруг Logo, живет и активно развивается сообщество Scratch, включающее как учителей и учеников, появляются успешные коммерческие проекты, базирующиеся на этой базе, такие как Robbo (ранее ScratchDuino). turn motors on for (1) secs :: #4A3
Что позволяет надеяться, что когда-то может вернуться и активная позиция в разработке и перспективных исследованиях.
СПИСОК ЛИТЕРАТУРЫ
- Goldenberg, E. Paul. "Logo – A Cultural Glossary". Byte. August 1982 p. 218.
- Weiner, W. et al. The LOGO Processor: A Guide for System Programmers. Volume 4. Cambridge, MA. Bolt Beranek and Newman, Inc.
- Norvig, Peter. Paradigms of artificial intelligence programming:case studies in Common Lisp. San Francisco, California: Morgan Kaufmann. pp. 109–149. 1992. ISBN 1-55860-191-0.
- Feurzeig, W. The LOGO Lineage. Digital Deli. Workman Publishing Company, New York, NY. 1984.
- Papert, S. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books. New York, NY. 1980.
- Logo History https://el.media.mit.edu/logo-foundation/what_is_logo/history.html
- Tayla, Robert (editor). The Computer in the School. Teacher College Press, Columbia University, NY. 1980.
- Frazier, F. The LOGO System: Preliminary Manual. Cambridge, MA. BBN. 1967.
- Papert, S. (1972). Teaching Children Thinking. Programmed Learning and Educational Technology, 9(5), 245–255. https://doi.org/10.1080/1355800720090503
- Harvey, B. Computer Science LOGO Style: Intermediate Programming. Volume 1. The MIT Press, Cambridge, MA. 1985.
- Fuzzy Logo http://cher.media.mit.edu/pub/logo/literature/Fuzzy_Logo.txt
- Brusilovsky P. et al. Mini-languages: a way to learn programming principles // Education and Information Technologies. 1997. Vol. 2, № 1. P. 65–83.
- Brusilovsky P. et al. Teaching Programming to Novices: A Review of Approaches and Tools. Vancouver, BC, Canada., 1994. P. 103–109.
- Blaho A., Kalas I., Tomcsanyi P. Comenius Logo: Environment for teachers and Environment for learners // Proceedings of the EUROLOGO. 1993. Vol. 93.
- Turcsányi-Szabó M. Approaching Arts through Logo // Proceedings of the Sixth European Logo Conference. 1997. P. 284–294.
- Sendov B., Sendova E. East orWest—GEOMLAND is Best, or Does the Answer Depend on the Angle? // Computers and exploratory learning. Springer, 1995. P. 59–78.
- Soprunov S., Yakovleva. The Russian School System and the Logo Approach: Two Methods Worlds Apart // Logo Philosophy and Implementation. Logo Computer Systems Incorporated, 1999.
- Parmentier C., Pervin Y. Les nouvelles technologies informatiques dans l’enseignement, un vecteur de la perestroïka // Bulletin de l’EPI (Enseignement Public et Informatique). 1992. № 67. P. 209–219.
- Patarakin E.D. New educational BBS established in Russia // Internet Society News. 1993. № 1. P. 14–14.
- Dickinson S. Logo Telecommunications: Crossing Boundaries and Opening Minds. 1995. P. 16.
- Wenger E. Communities of Practice: Learning, Meaning, and Identity. Cambridge University Press, 1999. 340 p.