Путь черепахи: эволюция LOGO-подобных языков
| Описание события | Путь черепахи: эволюция Logo-подобных языков. |
|---|---|
| Тип события | |
| Начало | 2023-09-25T10:00:32.000Z |
| Окончание | 2023-09-26T16:13:32.000Z |
| color | salmon |
| Адрес события | https://www.sorucom.org/programma/ |
| Видео запись события | |
| Среды и средства, которые использовались в рамках события | |
| Формируемые в рамках события компетенции | |
| Область знаний | |
| Местоположение | |
| Формат реализации |
- Аннотация
- Logo это название философии образования и, одновременно, постоянно развивающегося семейства языков программирования, как помогающих в ее реализации так и решающих такие задачи, как наглядное многоагентное моделирование для различных областей научных исследований. Статья рассматривает развитие многочисленных потомков языка Logo, изначально созданного в 1967 для обучения школьников математике и алгоритмам, включая советские и российские разработки. Кроме разнообразия направлений, в которых эволюционировал Logo, внимание уделено возникновению и развитию российского сообщества, связанного с этим языком.
- Ключевые слова – 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].
Предварительная версия 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перва это было реальное физическое устройство (Рис. 2), которое подключалось к компьютеру, ставилось большой лист бумаги и могло рисовать на нем, подчиняясь командам компьютера, таким как LEFT, RIGHT, FORWARD или BACK. Позже, в 70-х, даже появились коммерческие компании, производившие этих аппаратных черепах на коммерческой основе, например Terrapin Software. А затем черепаха стала спрайтом на графическом экране компьютера, который мог рисовать линии и картинки, используя те же команды черепах, которые управляли аппаратными черепахами [6].
В итоге, в первую официальную версию Logo, выпущенную BBN в 1968 году, были добавлены команды управления «Черепахой». Эта версия содержала 38 команд, 45 встроенных функций и 12 зарезервированных имен. На Рис. 3 показан пример кода с управлением Черепахой, использованный как демонстрационный пример Пейпертом [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]
