No Image

Языки программирования для учебных целей

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC [1] и Паскаль [2] . Из разработанного для обучения языка ABC вырос Python [3] . Популярным языком, разработанным специально для образования является LOGO [4] . Специально для российских школ разработана языковая среда КуМир [5] . Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования [6] .

Содержание

Требования к учебному языку программирования [ править | править код ]

Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. Не слишком хорошо подходят для обучения языки, поощряющие к использованию различных «программистских трюков» [7] . С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками [8] [9] .

При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания) [10] .

Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов [8] .

Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков [11] .

Бейсик [ править | править код ]

BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 году расширили язык структурными средствами и отказались от практики использования GOTO. В 1980-х годах они создали обновлённый вариант языка, названный True BASIC [12] . Современные распространённые диалекты Бейсика (QBasic, Visual Basic) отличаются от этого варианта и имеют microsoftовское происхождение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования [13] . Специально для целей обучения созданы следующие диалекты Бейсика.

  • BASIC-256[14] довольно близкий к «классическому» бейсик [15] , созданный в ответ на статью Дэвида Брина «Почему Джонни не умеет программировать» [16] .
  • Microsoft Small Basic[17] — своего рода Visual Basic .NET «для самых маленьких».

В школьное образование также внедряется «Visual Basic для Linux» Gambas [18] . Доступна бесплатная образовательная экспресс-версия Visual Basic .NET [19] .

Языки декларативного программирования [ править | править код ]

Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование [20] . Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.

Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы [21] . Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование [22] .

Читайте также:  Тип дисплея экрана ips

Современный «академический» диалект Лиспа — язык Scheme — был изначально ориентирован на образование [23] . Он используется в таком знаменитом курсе компьютерного программирования, как «Структура и интерпретация компьютерных программ». Публикация этой книги не только сделала Scheme популярным языком в университетской среде, но и изменила сам подход к изучению программированию [24] . Этот язык используется также в целом ряде учебников, таких как «How to Design Programs (англ.) русск. » [25] , «Programming Languages: Application and Interpretation (англ.) русск. » [26] , «Essentials of Programming Languages (англ.) русск. » [27] и др. Обучению программированию с нуля, с использованием Scheme, посвящена и книга Даниэля Фридмана (англ.) русск. «The Little Schemer» [28] , впервые изданная под названием «The Little Lisper» в 1974 году и ставшая началом своего рода трилогии. Первая книга, посвящённая языку Racket (прямому потомку Scheme), «Realm of Racket» [29] , также представляет собой учебник для детей (впрочем, эта книга одновременно является переработанным вариантом учебника «Land of Lisp» [30] , основанного на Common Lisp).

Серьёзным конкурентом различным вариантам Лиспа в университетских курсах функционального программирования стал язык Haskell. Авторы этого языка предназначили его в равной мере для обучения, научных исследоваий и практических приложений [31] . Его отличает то, что он представляет собой чисто функциональный язык программирования, реализующий типизированное лямбда-исчисление, его синтаксис приближён к традиционной математической нотации [32] [33] .

В 1991 году профессор Лувенского католического университета в Бельгии Герт Смолка начал разработку мультипарадигмального языка Oz. Язык позволяет писать программы в стиле любой из основных распространённых парадигм программирования: как декларативных, таких как логическое и функциональное программирование, так и императивных. Этот язык используется как основа для обучающего курса «Concepts, Techniques, and Models of Computer Programming (англ.) русск. » [34] .

Паскаль [ править | править код ]

Разработанный в качестве развития линии Algol-60 Никлаусом Виртом язык программирования Паскаль автор с самого начала использовал для вводного курса программирования для студентов [2] . Этот язык быстро начал набирать популярность в таком качестве.

Turbo Pascal, Delphi и Free Pascal широко использовались и продолжают использоваться для обучения студентов и школьников. Зародившийся в 2002 году на физфаке МГУ международный научно-образовательный проект «Информатика-21» [35] поставил своей целью внедрение в российское образование системы программирования BlackBox Component Builder [36] , реализации Компонентного Паскаля, диалекта Oberon-2 — объектно-ориентированного языка паскаль-семейства, разработанного Виртом. Как и другие языки Никлауса Вирта, он отличается (в том числе от Объектного Паскаля в стиле Borland) минимализмом.

Языки, разработанные для российской школы [ править | править код ]

Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами [37] . В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и РАПИРА [13] . Основными российскими образовательными языками являются:

  • Робик (включает ряд графических исполнителей: «Муравей», «Маляр» и др.)
  • РАПИРА (предназначен для изучения после Робика)
  • Школьный алгоритмический язык и его реализация Е-практикум[38]
  • КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители «Чертёжник» и «Робот»)

Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру [13] .

Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками. [7] [8]

При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания) [9] .

Читайте также:  12 Или 14 бит raw

Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов [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] .

Специфика обучения программированию в отечественных школах

Обучение программированию на уроках информатики в отечественных школах трудно назвать эффективным. Чаще всего дети заканчивают средние общеобразовательные учреждения с навыками, непригодными для практического применения. Причины этого следовало бы искать в образовательной реформе, проводившейся в середине 1980-х гг., когда в стране внедрялась программа преподавания информатики. Связаны они, как и многие изъяны отечественного образования, с чрезмерной зарегулированностью и инертностью составления учебных программ для обучения в школах: спущенные "сверху" концепции, пусть и прогрессивные для своего времени, надолго остаются руководством к действию, тогда как технологии, особенно информационные, меняются стремительно.

Рисунок 1. Урок программирования в 1980-х гг. Автор24 — интернет-биржа студенческих работ

Несмотря на то, что преподаватель информатики может "по своему вкусу" в широких пределах выбирать используемый на уроках материал (в том числе и для уроков программирования), на ЕГЭ перечень языков, по которым выпускники могут продемонстрировать свои знания, жестко регламентирован. В него входят:

Попробуй обратиться за помощью к преподавателям

  • алгоритмический учебный язык;
  • Паскаль (и его производные);
  • Бейсик;
  • Си.

Языки программирования применительно к учебному процессу

Паскаль

Читайте также:  Собрат по несчастью legends of eisenwald

К достоинствам Паскаль можно отнести следующие:

  • он действительно был создан Никлаусом Виртом для учебных целей (правда, было это в 1970 г. и с тех пор многое изменилось);
  • существуют версии этого языка (TurboPascal, FreePascal), которые легко установить на персональный компьютер, причем эти программы находятся в свободном доступе, что немаловажно в условиях школы, где использование пиратского ПО недопустимо не только по юридическим, но и по этическим причинам.

Удобство оболочек TurboPascal, FreePascal заключается в также в том, что все действия по написанию, отладке, компиляции и запуску программы можно выполонять не выходя из единой программы. С другой стороны, следует учитывать, что консольный интерфейс (среда DOS), в котором работают эти версии Паскаля, устарел и мало похож на современные инструменты разработки. Альтернативой с полноценным графическим интерфейсом является пакет Lazarus, позволяющий программировать в среде, похожей на промышленную систему Delphi (правда, и ее трудно назвать соответствующей современным реалиям).

Задай вопрос специалистам и получи
ответ уже через 15 минут!

Язык Си

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

Программирование на Си в рамках школьного курса информатики сдерживает, помимо отсутствия специалистов, и то, что трудно подобрать подходящие для школьников инструменты. Несмотря на то, что существуют пригодные для написания программ на Си инструменты разработки (Eclipse, IntelliJ, Net Beans, Visual Studio), они сами по себе являются довольно сложными для освоения.

Следует учитывать, что редактор Sublime и среда разработки Visual Studio являются коммерческими продуктами, хотя и могут предоставляться бесплатно для персонального использования и в образовательных целях.

Выходом может стать сочетание простых редакторов кода (Notepad++, Sublime, Visual Code, Atom) и свободных компиляторов. Для Windows, например, существует свободно распространяемый пакет CygWin, включающий простые консольные инструменты для Си (компилятор, библиотеки и т.п.).

Рисунок 2. Редактор Notepad++. Автор24 — интернет-биржа студенческих работ

Бейсик

Несмотря на то, что время сверхпопулярности Бейсика давно прошло, он вполне может использоваться в качестве учебного языка программирования. Существует пакет FreeBasic, содержащий много примеров, и поддерживаемый в актуальном состоянии сообществом энтузиастов даже в наши дни (конец 2010-х гг.).

Язык КуМир

В некоторых школах на уроках программирования используется язык КуМир, ведущий свое происхождение от алгоритмического языка, разработанного еще в 1980-х гг. по методике основоположника отечественной школьной информатики академика А.П. Ершова. Этот язык переживает сейчас второе рождение. Пример программы:

Рисунок 3. Оболочка для разработки на языке КуМир. Автор24 — интернет-биржа студенческих работ

В 2019 г. НИИ системных исследований РАН запланировал развитие КуМир в качестве учебного языка.

Перспективы преподавания программирования в школе

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

В будущем государственным органам для успешного воспитания передовых навыков программирования у школьников, следовало бы обратить внимание на следующие моменты:

  1. высокая динамика развития информационных технологий; пересматривать учебные программы по информатике следует, как минимум, ежегодно, в том числе особенно тщательно — в части, касающейся преподаваемых языков программирования;
  2. отказ от устаревших языков программирования;
  3. внедрение преподавания современных популярных языков (Python, JavaScript) для всех учащихся и более сложных (Swift, Go, C#, Java) для тех, кто планирует связать будущую профессиональную деятельность с информационными технологиями;
  4. обучение не только программированию, но и смежным технологиям: подключению необходимых библиотек, работе с системами управления версиями, устройству современных >

Так и не нашли ответ
на свой вопрос?

Просто напиши с чем тебе
нужна помощь

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector