Учебный язык программирования
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC [1] и Паскаль [2] . Из разработанного для обучения языка ABC вырос Python [3] . Популярным языком, разработанным специально для образования является LOGO [4] . Специально для российских школ разработана языковая среда КуМир [5] . Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования [6] .
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками. [7] [8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания) [9] .
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов [7] .
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков. [10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира. [11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру [11] .
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.) русск. [12] . Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования [11] . Специально для целей обучения созданы следующие диалекты Бейсика.
- BASIC-256[13] довольно близкий к «классическому» бейсик [14] , созданный в ответ на статью Дэвида Брина «Почему Джонни не умеет программировать» [15] .
- Microsoft Small Basic[16] — своего рода Visual Basic .NET «для самых маленьких».
В школьное образование также внедряется «Visual Basic для Linux» Gambas [17] , Доступна бесплатная образовательная экспресс-версия Visual Basic .NET [18] .
Другие
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
- ↑Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑The Making of Python, A Conversation with Guido van Rossum, Part I. by Bill Venners, January 13, 2003
- ↑Язык Лого на сайте «История компьютера»
- ↑Система программирования КуМир → Учебники
- ↑Александр КазанцевШкола. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ 12С. С. КобиловОбразовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑Эссе «Язык Си и начальное обучение программированию», А. В. Столяров
- ↑Выбор языка для обучения программированию, Лобачев Александр Александрович, Куликова Ольга Валентиновна, ИТО-2008
- ↑Mini-languages: a way to learn programming principles
- ↑ 123Леонов А.Г., Первин Ю.А.Роль и место темы «Элементы программирования» в общем школьном информатическом образовании. // Компьютерные инструменты в образовании. Информатизация образования. — СПб. : ЦПО, 1999. — № 5. — С. 14-23.
- ↑Дейкстра Эдсгер на сайте «История комьютера»
- ↑Джеймс М. РеноХотите научиться программировать? = So You Want To Learn to Programm? / пер. с англ. С. Ирюпин, В. Чёрный. — М .: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.) русск.
- ↑ Brin, David (Sept 14, 2006). «Why Johnny can’t code». Salon Magazine. Проверено 4/12/09.
- ↑Small Basic для начинающих
- ↑Использование свободного программного обеспечения в образовании, Самарина А.Е., Смоленский государственный университет
- ↑Visual Basic Express Edition
- ↑Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190
Литература
- Patrick Mendelson, T. R. G. Green and Paul Brna Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // Psychology of Programming / M. Hoc, T.R.G. Green, R. Samurçay and D.J. Gilmore (eds.). — Academic Press, 1990. — P. 175-200. — ISBN 0-12-350772-3
Ссылки
Имеется викиучебник по теме
«Учебный язык программирования»
- Александр КазанцевШкола. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- Educational programming languages в каталоге ссылок Open Directory Project (dmoz).
- Языки программирования для образования
Wikimedia Foundation . 2010 .
Глава №2 Информатика как учебный предмет
Информатика была введена как обязательный учебный предмет во все средние школы СССР с 1 сентября 1985 года и получила название «Основы информатики и вычислительной техники» , сокращенно ОИВТ . С 2004 года данный предмет назывался «Информатика и информационно ‐ коммуникационные технологии» или сокращенно – «Информатика и ИКТ» , с 2011 года снова -«Информатика». Между возникновением информатики как самостоятельной науки и введением ее в практику массовой общеобразовательной школы прошло очень мало времени – всего 10 ‐ 15 лет. Поэтому определение содержания школьного курса информатики и ИКТ в настоящее время является непростой и актуальной задачей.
Можно выделить три основных этапа в истории отечественного образования в этой области:
- первый этап – с начала постройки первых советских ЭВМ и до введения в школе учебного предмета ОИВТ в 1985 году;
- второй – с 1985 по 1990 гг. до начала массового поступления в школы компьютерных классов;
- третий – с 1991 г. и по настоящее время.
Программное обеспечение школьной информатики поддерживает информационную, управляющую и обучающую системы средней школы. В области технического обеспечения она имеет цель, которая заключается в экономическом обосновании выбора технических средств для сопровождения учебно-воспитательного процесса школы. Учебно-методическое обеспечение школьной информатики состоит в разработке учебных программ, методических пособий, учебников по курсу информатики и т.п. Организационное обеспечение связано с внедрением и поддержанием новой информационной технологии учебного процесса.
Школьный предмет информатики должен отражать наиболее общезначимые, фундаментальные понятия и сведения, вооружать учащихся знаниями, умениями и навыками, необходимыми для изучения основ информатики и других наук, а также готовить учащихся к будущей практической деятельности.
Среди принципов формирования содержания образования дидактика выделяет, как наиболее важный, принцип единства и противоположности логики науки и учебного предмета .
Изучение информатики и ИКТ в школе направлено на достижение следующих целей:
в основной школе:
- освоение знаний, составляющих основу научных представлений об информации, информационных процессах, системах, технологиях и моделях;
- овладение умениями работать с различными видами информации с помощью компьютера и других средств информационных и коммуникационных технологий (ИКТ), организовывать собственную информационную деятельность и планировать ее результаты;
- развитие познавательных интересов, интеллектуальных и творческих способностей средствами ИКТ;
- воспитание ответственного отношения к информации с учетом правовых и этических аспектов ее распространения; избирательного отношения к полученной информации;
- выработка навыков применения средств ИКТ в повседневной жизни, при выполнении индивидуальных и коллективных проектов, в учебной деятельности, дальнейшем освоении профессий, востребованных на рынке труда.
в старшей школе на базовом уровне: - освоение системы базовых знаний, отражающих вклад информатики в формирование современной научной картины мира, роль информационных процессов в обществе, биологических и технических системах;
- овладение умениями применять, анализировать, преобразовывать информационные модели реальных объектов и процессов, используя при этом информационные и коммуникационные технологии (ИКТ), в том числе при изучении других школьных дисциплин;
- развитие познавательных интересов, интеллектуальных и творческих способностей путем освоения и использования методов информатики и средств ИКТ при изучении различных учебных предметов;
- воспитание ответственного отношения к соблюдению этических и правовых норм информационной деятельности;
- приобретение опыта использования информационных технологий в индивидуальной и коллективной учебной и познавательной, в том числе проектной деятельности.
в старшей школе на углубленном уровне: - освоение и систематизация знаний, относящихся к математическим объектам информатики; построению описаний объектов и процессов, позволяющих осуществлять их компьютерное моделирование; средствам моделирования; информационным процессам в биологических, технологических и социальных системах;
- овладение умениями строить математические объекты информатики, в том числе логические формулы и программы на формальном языке, удовлетворяющие заданному описанию; создавать программы на языке программирования по их описанию; использовать общепользовательские инструменты и настраивать их для нужд пользователя;
- развитие алгоритмического мышления, способностей к формализации, элементов системного мышления;
- воспитание чувства ответственности за результаты своего труда; формирование установки на позитивную социальную деятельность в информационном обществе, на недопустимости действий, нарушающих правовые, этические нормы работы с информацией;
- приобретение опыта проектной деятельности, создания, редактирования, оформления, сохранения, передачи информационных объектов различного типа с помощью современных программных средств; построения компьютерных моделей, коллективной реализации информационных проектов, информационной деятельности в различных сферах, востребованных на рынке труда.
Становление школьного курса информатики в СССР в 60-80 годы
В начале 50-х годов отдельные группы энтузиастов в НИИ и вузовских вычислительных центрах вели поисковые работы по обучению школьников началам программирования. В начале 60-х годов стали открываться школы с математической специализацией, и для них были созданы первые официальные учебные программы по курсу программирования, ориентированных на учащихся средних школ. В этих специализированных школах предусматривалась профессиональная подготовка вычислителей ‐ программистов на базе общего среднего образовния. После школьной реформы 1966 года в учебные планы средней школы были введены новые формы учебной работы – факультативы . По математике и ее приложениям было разработано три факультативных курса: «Программирование» , «Вычислительная математика» и «Векторные пространства и линейное программирование» . В начале 70-х годов начала развиваться система межшкольных учебно ‐ производственных комбинатов, в некоторых из которых стали возникать специализации по профессиональной подготовке учащихся старших классов в области применения вычислительной техники. В конце 70-х годов появились массовые и дешевые программируемые микрокалькуляторы. После экспериментальной проверки решением Минпроса СССР они были введены в школьный учебный процесс. В начале 80-х годов была создана интегрированная система программирования «Школьница» – первая отечественная программная система, специально ориентированная на школьный учебный процесс.
Компьютерная грамотность как основная цель преподавания информатики в 80-90 годы
Все, о чем шла речь выше, создало предпосылки для последующего решения проблемы компьютеризации школьного образования. В ходе реформы школы 1984 года была объявлена задача введения информатики и вычислительной техники в учебный процесс школы и обеспечения всеобщей компьютерной грамотности молодежи. Перед промышленностью страны была поставлена задача – в сжатые сроки развернуть массовое производство персональных компьютеров и компьютерных классов для оснащения школ. Эта задача была успешно выполнена – в конце 80-х – начале 90-х годов в школы стали массово поступать отечественные компьютерные классы с персональными ЭВМ типа «ДВК» , «Корвет» , «Микроша» , «Агат» , «Электроника» и др., что ознаменовало переход от безмашинного курса информатики к собственно машинному обучению .
Информатизация образования за рубежом
Вслед за появлением термина «кибернетика» стало использоваться англоязычное словосочетание «computer science» (компьютерная наука). Этот термин и сейчас широко распространен в США, Канаде и странах Латинской Америки. Позднее (60-70 годы) во Франции ввели термин «informatique» (информатика), образованный от двух слов (информация и автоматика). Этот новый термин получил распространение в СССР и странах Западной Европы.
Безмашинный и машинный варианты преподавания информатики в 80-90 годы
В 80-е годы курсы информатики строились в условиях безмашинного обучения и не получили широкого распространения, что было связано как с неподготовленностью преподавателей, так и с отсутствием в школах материальной базы. В 1985 и 1986 гг. была проведена массовая переподготовка учителей математики и физики на специальных курсах, а также начата регулярная подготовка учителей информатики на физико-математических факультетах пединститутов. В то время отечественные персональные ЭВМ в педагогических вузах были в очень ограниченном количестве, а подготовка учителей информатики не соответствовала требованиям преподавания нового предмета. Только в небольшой части ведущих вузов были установлены первые отечественные компьютерные классы, а также японские компьютеры «Ямаха» (в том числе и в Глазовском пединституте). Тем не менее машинный вариант обучения стал возможен.
Первая программа курса ОИВТ 1985 года содержала три базовых понятия: информация , алгоритм , ЭВМ . Эти понятия определяли обязательный для усвоения учащимися объем теоретической подготовки. Содержание обучения складывалось на основе компонентов алгоритмической культуры и компьютерной грамотности учащихся. Курс ОИВТ предназначался для изучения в двух старших классах – в девятом и десятом. В 9 классе отводилось 34 часа (1 час в неделю), а в 10 классе содержание курса дифференцировалось на два варианта – полный и краткий. Полный курс в 68 часов был рассчитан для школ, располагающих вычислительными машинами или имеющими возможность проводить занятия со школьниками в вычислительном центре. Краткий курс объемом 34 часа предназначался для школ, не имеющих возможности проводить занятия с применением ЭВМ. Таким образом, сразу были предусмотрено два варианта – машинный и безмашинный . Но в безмашинном варианте планировались экскурсии объемом 4 часа в вычислительный центр или на предприятия, использующие ЭВМ. Однако реальное состояние школ и готовность учительских кадров привели к тому, что курс был изначально ориентирован на безмашинный вариант обучения. Большая часть учебного времени отводилась на алгоритмизацию и программирование, через которые преимущественно и рассматривалось общеобразовательное значение предмета информатики.
Первый собственно машинный вариант курса ОИВТ был разработан в 1986 году в объеме 102 часа для двух старших классов. В нем на знакомство с ЭВМ и решение задач на ЭВМ отводилось 48 часов. В то же время существенного отличия от безмашинного варианта не было. Тем не менее, курс был ориентирован на обучение информатике в условиях активной работы учащихся с ЭВМ в школьном кабинете вычислительной техники (в это время начались первые поставки в школы персональных компьютеров). Курс сопровождался соответствующим программным обеспечением: операционной системой, файловой системой, текстовым редактором. Были разработаны прикладные программы учебного назначения, которые стали неотъемлемым компонентом методической системы преподавателя информатики. Предполагалась постоянная работа школьников с ЭВМ на каждом уроке в кабинете информатики. Было предложено три вида организационного использования кабинета вычислительной техники – проведение демонстраций на компьютере, выполнение фронтальных лабораторных работ и практикума. Безмашинный вариант сопровождался несколькими учебными пособиями, например, учебники А.Г.Кушниренко с соавторами в то время получили широкое распространение. Но все же и машинный вариант во многом продолжал линию на алгоритмизацию и программирование и практически не содержал фундаментальных основ информатики. В 1990 годы с поступлением компьютеров в большинстве школ курс информатики начал преподаваться в полноценном машинном варианте, а основное внимание учителя стали уделять освоению приемов работы на компьютере и информационных технологий.
Язык сломаешь. Советские алгоритмические языки для обучения программированию

В школе, где я учился до девятого класса, уроков информатики не было. Учебное заведение вообще испытывало некоторые проблемы с оснащением: из наглядных пособий у нас имелся только бюст Ленина в актовом зале. Тем не менее, в СССР, оказывается, планомерно развивали информатику в школах, для чего было разработано несколько специальных языков программирования для обучения детей. Об этих языках я узнал совершенно случайно, когда искал информацию по Fortran 77 — этот язык мы проходили в институте. Любопытство заставило меня копнуть чуть глубже. Полезных сведений оказалось не так уж и много, и тем, что удалось найти, я решил поделиться с вами.
▍ Робик
Этот язык со смешным названием придумали в 1975 году основоположник советской школьной информатики Г.А. Звенигородский и академик А.П. Ершов для обучения основам программирования детей в возрасте 8—11 лет. «Робик» использовался в Харьковской «Школе юных программистов», занятия в которой проводил сам Геннадий Анатольевич Звенигородский. В 1977 году разработчик языка перебрался в Новосибирск, где устроился на работу в Вычислительный центр Сибирского отделения АН СССР, после чего уроки для юных программистов продолжились уже в этом городе в формате воскресной школы и летних образовательных лагерей.
Позже «Робик» был переработан и включён в состав пакета образовательных программ «Школьница» для ПК «Агат», которыми тогда оснащались многие компьютерные классы в советских учебных заведениях. Предполагалось, что после изучения «Робика» дети смогут перейти на более сложный учебно-производственный язык «РАПИРА». Полноценных изданий по «Робику», к сожалению, не сохранилось (возможно, я просто не смог их найти), зато до нас дошли документы из архива академика Ершова, в которых встречается довольно лаконичное описание этого языка.

В основе синтаксиса «Робика» лежит русский язык, хотя авторы утверждали, что относительно несложно переработать «Робик» для использования других языков народов СССР. Набор базовых конструкций «Робика» был весьма ограничен, однако его возможности значительно расширялись за счёт так называемых «исполнителей» — объектов, выполняющих задаваемые программистом команды. Каждый исполнитель действовал в определённой для него среде, состоящей, в свою очередь, из элементов, которые могут находиться в разных состояниях. Для каждого исполнителя существует свой набор предписаний (команд).
Исполнители обладали собственными блоками памяти, в которые записывалась информация о состоянии элементов среды и результаты действий, выполненных самим исполнителем — например, процедур и подпрограмм. В наборе программ «Школьница» присутствовал стандартный набор исполнителей — для базовых арифметических операций, рисования на экране, управления внешними устройствами.
Прежде чем школьник начнёт отдавать команды исполнителю, необходимо запустить хотя бы один экземпляр этого исполнителя и опционально присвоить ему уникальное имя (этот параметр обязателен только если оператор работает с несколькими экземплярами исполнителей одного типа). Делалось это с помощью команды ВКЛЮЧИТЬ, например, так:
ВКЛЮЧИТЬ ОБХОДЧИК:МИША;
Эта команда запускала экземпляр исполнителя «ОБХОДЧИК», которому присваивалось уникальное имя «МИША». Соответственно, завершалась программа командой ВЫКЛЮЧИТЬ. Кстати, «ОБХОДЧИК» — это стандартный исполнитель из комплекта программ «Школьница», предназначенный для решения простых математических задач. Среда «ОБХОДЧИКА» представляет собой железнодорожную ветку определённой длины, состоящую из некоторого количества стыков. «ОБХОДЧИК» может двигаться по этой железной дороге вперёд или назад, если путь перед следующим шагом свободен (там есть рельсы), и проверять стыки.
Как работает этот исполнитель, можно понять на примере простой математической задачи. Имеется прямая железнодорожная ветка неизвестной длины, состоящая из некоторого количества стыков. Расстояние между стыками составляет 24 метра. «ОБХОДЧИК» стоит в начале этой железнодорожной ветки. Требуется проверить все стыки, найти неисправные, а затем вернуть «ОБХОДЧИКА» в начало ветки. Программа на языке «Робик» для решения этой задачи выглядит следующим образом:
ВКЛЮЧИТЬ ОБХОДЧИК; ЗАПОМНИТЬ ПРОЦЕДУРУ ПРОВЕРКА_СТЫКА; ЕСЛИ ОБХОДЧИК.СТЫК = “НЕИСПРАВЕН” ТО ОТМЕНИТЬ СТЫК; ВПЕРЕД 24М; ЗАКОНЧИТЬ; ПОКА ОБХОДЧИК.ВПЕРЕДИ = “СВОБОДНО“ ПОВТОРЯТЬ ПРОВЕРКА_СТЫКА; ПОКА ОБХОДЧИК.СЗАДИ = “СВОБОДНО“ ПОВТОРЯТЬ НАЗАД 24М; ВЫКЛЮЧИТЬ ОБХОДЧИК;
Результат выполнения этой программы будет наглядно продемонстрирован на дисплее «Агата»: пользователь увидит и железнодорожную ветку (пунктирную линию), и движущегося по ней «обходчика», и счётчик неисправных стыков. Именно поэтому результат работы этой программы, например, количество выявленных дефектов и пройденное расстояние, не сохраняются в переменные и никуда не выводятся. Эти значения записываются в память внутри самого исполнителя, инициализируются автоматически и обнуляются при выключении экземпляра исполнителя — что значительно упрощает процесс программирования для детей. Им уже не нужно думать об объявлении переменных, об их типах, а вместо этого можно сосредоточиться на решении самой практической задачи.

Как видно из этого примера, «Робик» — довольно простой алгоритмический язык, позволяющий составлять программы из набора команд, которые способен обработать каждый исполнитель. Расширение возможностей языка происходит за счёт добавления новых исполнителей, для каждого из которых можно придумать свой набор команд и, соответственно, свои интересные логические или математические задачи. Причем исполнителей для «Робика» можно писать на самом «Робике». Программы на этом языке могут содержать ветвления по условию и циклы, могут обрабатывать вводимые пользователем значения с клавиатуры компьютера, а результаты работы — выводить на экран, сохранять на магнитном носителе или распечатывать на АЦПУ (алфавитно-цифровом печатающем устройстве, заграничное слово «принтер» в те времена еще не вошло в обиход).
Использование в синтаксисе «Робика» кириллицы имело одно неоспоримое преимущество: программы на этом языке можно было набивать на обычной пишущей машинке, которые имелись в приемных и секретариатах всех без исключения советских школ. Такие машинки не имели латиницы, а принтерами были оборудованы далеко не все школьные классы информатики, поэтому работающие с «Робиком» преподаватели оказались избавлены от грустной необходимости записывать программы на листочках авторучкой, как это делали несчастные, имевшие дело с Бейсиком.
▍РАПИРА
«Расширенный адаптированный поплан-интерпретатор, редактор, архив», или, сокращенно, РАПИРА — еще один язык для обучения школьников основам программирования. Он был предназначен для перехода от простого «Робика» к более сложным языкам высокого уровня, базировался на синтаксисе Поплан и Сетл, и тоже использовал для записи команд кириллицу (хотя существовала и английская версия языка).
Созданием РАПИРА в 1978-1979 годах занимались выпускники Новосибирского государственного университета под руководством автора «Робика» Геннадия Звенигородского. Изначально разработка велась на БЭСМ-6, но позже язык был адаптирован для ПК «Агат» и вошел в состав пакета образовательных программ «Школьница» — вместе с редактором кода. Чуть позже появились версии РАПИРА для Yamaha MSX/MSX2 и ЕС ЭВМ на базе советских клонов процессоров с архитектурой x86 — специально под стандартные КУВТ (комплексы учебной вычислительной техники), которыми оборудовались советские классы информатики.

Между «Робиком» и РАПИРА было много общего — например, язык являлся регистронезависимым, допускалось произвольное расположение директив в строке. Переменные не требовалось объявлять заранее и указывать их тип: каждая переменная считалась объявленной в момент ее первого использования, а тип автоматически присваивался в зависимости от ее текущего значения. Уже инициализированной переменной можно присваивать значения типов, отличающихся от первоначально присвоенного. РАПИРА поддерживала высокоуровневые типы данных — кортежи и множества, — и на этом языке уже можно было писать полноценные программы, не зависящие от возможностей принятых в «Робике» исполнителей. Вот, например, как на РАПИРА выглядит классический «hello, world» в виде программной процедуры:
ПРОЦ СТАРТ(); ВЫВОД: "ЗДРАВСТВУЙ, МИР!"; КНЦ;
В отличие от «Робика», РАПИРА давала программисту возможность работать с файлами. За рисование графики средствами языка отвечал входящий в состав «Школьницы» графический пакет «Шпага». Вообще, структура и ассортимент выражений в РАПИРА отличались заметным разнообразием по сравнению с «Робиком», что давало учащимся большую свободу действий и значительно расширяло круг учебных задач, которые можно было реализовать с помощью этого языка.
Язык РАПИРА допускал ветвления, проверки условий и циклы, причем в языке существовало четыре разновидности циклов с разными условиями выхода из них. В качестве оператора присваивания использовалось сочетание символов «->», причем слева от него записывалось присваиваемое значение, а справа — имя переменной, которой это значение присваивалось. Например, код, который сравнивает значения переменных «А» и «В», присваивает большей переменной значение 1, а затем выводит на экран значение меньшей переменной, в РАПИРА выглядит так:
ЕСЛИ А > В ТО 1 -> А; ВЫВОД: В; ИНАЧЕ 1 -> В; ВЫВОД: А; ВСЕ;
Благодаря простоте синтаксиса язык РАПИРА быстро завоевал определённую популярность в Советском Союзе. Его использовали авторы рубрики «Заочная школа программирования», регулярно публиковавшейся в журнале «Квант» начиная с 1980 года. Вообще, образовательный проект, в рамках которого разрабатывался пакет программ «Школьница», был глобальным — он охватывал не только весь СССР вместе с союзными республиками, но и страны СЭВ. Создатели проекта планировали внедрить единый стандарт изучения информатики и программирования для детей разного возраста и разных народов — именно поэтому существовала версия РАПИРА на основе латиницы, велись работы по созданию версий языка с синтаксисом на эстонском и грузинском языках. В школах, оборудованных КУВТ на основе ПК «Агат», РАПИРА успешно использовалась для обучения старшеклассников вплоть до конца 80-х, а кое-где — до начала 90-х, когда классы информатики стали оснащать более современными IBM-совместимыми компьютерами.
▍Язык РАЯ (учебный алгоритмический язык)
Ходят легенды, будто Русский Алгоритмический Язык (язык РАЯ) стал своего рода симметричным ответом на буржуазный язык программирования Ада, названный так в честь Ады Лавлейс, хотя политика и теология тут совершенно ни при чем. Гораздо чаще его называли «школьным алгоритмическим языком» или «учебным алгоритмическим языком» — под этим наименованием он и вошел в официальную документацию, просто аббревиатура «РАЯ» звучала чуть благозвучнее.
Учебный алгоритмический язык — это абстрактный язык для изучения программных алгоритмов в рамках школьной программы, в отличие от «Робика» и РАПИРА, не привязанный к какой-либо конкретной аппаратной архитектуре или модели компьютера. Этот язык был придуман и внедрен в конце 70-х годов соавтором «Робика» академиком А.П. Ершовым для так называемого «безмашинного курса информатики», то есть, для преподавания основ программирования в школах, не оборудованных компьютерными классами. А таких школ на просторах СССР, в частности, в небольших городах и сёлах, насчитывалось очень и очень много. Советская промышленность к началу 80-х уже освоила серийный выпуск нескольких моделей ЭВМ, но обеспечить компьютерами каждую школу в каждом райцентре все-таки не могла. Вот почему этот язык оказался столь необходим и востребован советской системой образования.
Учебный алгоритмический язык также использовал для записи команд кириллицу, а синтаксис А.П. Ершов частично позаимствовал из Алгола. До середины 80-х язык применялся в основном для обучения детей в рамках внешкольных программ образования, но после всех бюрократических согласований и утверждений в 1985 году был принят в качестве основного языка в школьном учебнике «Основы информатики и вычислительной техники». Таковым он и оставался в течение последующих лет вплоть до конца существования СССР: последний школьный учебник на основе этого языка был выпущен в 1990 году общим тиражом 7 млн. экземпляров.
Поскольку учебный алгоритмический язык был придуман именно для формального описания алгоритмов, он и применялся в качестве такового при решении типовых школьных задач. Для выделения логических блоков алгоритма использовались отступы, а парные значения соединялись вертикальными чертами. Вот так, например, на этом языке выглядело описание алгоритма вычисления суммы квадратов целых чисел от 1 до n:
алг Сумма квадратов (арг цел n, рез цел S) дано | n > 0 надо | S = 1*1 + 2*2 + 3*3 + … + n*n нач цел i | ввод n; S:=0 | нц для i от 1 до n | | S := S + i * i | кц | вывод "S plaintext">| выбор параметр | | при знач значение 1 | | | действия 1 | | при знач значение 2 | | | действия 2 | | иначе | | | действия по умолчанию | кон
Этот язык, пожалуй, уникален тем, что был изначально разработан для «программирования в тетрадке». Однако в 1985 году группа студентов, аспирантов и преподавателей мехмата МГУ разработала редактор-компилятор «Е-практикум» («Е» — в честь А.П. Ершова), позволявший набирать и компилировать программы на РАЯ. Это вдохнуло в учебный алгоритмический язык вторую жизнь — теперь его можно было назвать полноценным языком программирования.
▍Вместо заключения
Казалось бы, советские технологии образования и учебные языки программирования давно ушли в прошлое: их сменил Бейсик, который в последние годы потеснили Scratch и Python — именно их изучением чаще всего занимаются школьники на уроках информатики. Но в начале 90-х Научно-исследовательский институт системных исследований РАН представил собственную разработку: язык и систему программирования для поддержки начальных курсов информатики «КуМир» (Комплект Учебных Миров). Примечательно, что «КуМир» основывается на учебном алгоритмическом языке А.П. Ершова — том самом РАЯ — и включает ряд идей, воплощенных ранее в проекте «Е-практикум». Вторую версию «КуМир» разработчики выпустили в 2018 году, причем версии редактора этого языка, распространяемого под лицензией GNU GPL 2.0, есть как для Windows так и для Linux.

«КуМир» был рекомендован Министерством образования РФ в качестве основного учебного материала по курсу «Основы информатики и вычислительной техники», и в настоящее время активно развивается. Так идеи, заложенные академиком А.П. Ершовым и его коллегами еще в начале 80-х, находят свое применение уже в XXI веке.
RUVDS | Community в telegram и уютный чат

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