Interested Article - Учебный язык программирования

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

Требования к учебному языку программирования

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

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

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

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

Бейсик

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

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

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

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

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

Современный «академический» диалект Лиспа — язык Scheme — был изначально ориентирован на образование . Он используется в таком знаменитом курсе компьютерного программирования, как « Структура и интерпретация компьютерных программ ». Публикация этой книги не только сделала Scheme популярным языком в университетской среде, но и изменила сам подход к изучению программированию . Этот язык используется также в целом ряде учебников, таких как « (англ.) » , « (англ.) » , « (англ.) » и др. Обучению программированию с нуля, с использованием Scheme, посвящена и книга (англ.) «The Little Schemer» , впервые изданная под названием «The Little Lisper» в 1974 году и ставшая началом своего рода трилогии. Первая книга, посвящённая языку Racket (прямому потомку Scheme), «Realm of Racket» , также представляет собой учебник для детей (впрочем, эта книга одновременно является переработанным вариантом учебника «Land of Lisp» , основанного на Common Lisp ).

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

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

Паскаль

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

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

Языки с русскими ключевыми словами

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

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

В Беларуси получил распространение диалект школьного алгоритмического языка под названием ИнтАл .

См. также

Примечания

  1. Андрей Колесов. от 5 марта 2010 на Wayback Machine (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале « Наука и жизнь », 2000, № 10. С. 18—20.
  2. Wirth N. от 22 декабря 2012 на Wayback Machine
  3. Bill Venners. от 1 сентября 2016 на Wayback Machine . A Conversation with Guido van Rossum. Part I. 2003, January 13.
  4. от 24 апреля 2012 на Wayback Machine на сайте «История компьютера»
  5. . Дата обращения: 16 апреля 2012. 3 апреля 2012 года.
  6. Александр Казанцев. // Linux Format . — январь 2010 г.. — № 126—127 (1) . 11 сентября 2016 года.
  7. , 1. Introduction, p. 176.
  8. Кобилов С. С. . — Самаркандский государственный университет . 26 марта 2014 года.
  9. Столяров А. В. от 10 мая 2012 на Wayback Machine
  10. Лобачёв А. А., Куликова О. В. от 13 декабря 2014 на Wayback Machine , ИТО-2008.
  11. . Дата обращения: 16 апреля 2012. Архивировано из 26 марта 2014 года.
  12. от 31 июля 2012 на Wayback Machine на сайте «История компьютера»
  13. Леонов А. Г., Первин Ю. А. // Компьютерные инструменты в образовании. Информатизация образования. — СПб. : ЦПО, 1999. — № 5 . — С. 14—23 . 9 февраля 2019 года.
  14. Джеймс М. Рено. = / Пер. с англ. С. Ирюпина, В. Чёрного. — М. : Альт Линукс , 2011. — 320 с. — ISBN 978-5-905167-06-5 . 10 апреля 2012 года.
  15. В нём, к примеру, отсутствуют процедуры и функции . Другой, подобный современный диалект — (англ.)
  16. David Brin. // . — 2006. — № от 14 сентября . 30 июля 2019 года.
  17. . Дата обращения: 17 апреля 2012. 15 августа 2011 года.
  18. Самарина А. Е. от 26 марта 2014 на Wayback Machine ( Смоленский государственный университет )
  19. . Дата обращения: 17 апреля 2012. 12 октября 2010 года.
  20. . История компьютера. Дата обращения: 25 марта 2014. 12 ноября 2013 года.
  21. Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // . — ИНТУИТ . — ISBN 978-5-9556-0034-5 . 26 марта 2014 года.
  22. , 3. The Misconception Problem: Prolog, pp. 186-190.
  23. Gerald Jay Sussman and Guy Lewis Steele, Jr. Scheme: An Interpreter for Extended Lambda Calculus. — MIT AI Lab. AI Lab Memo AIM-349. December 1975. от 3 сентября 2013 на Wayback Machine from (англ.)
  24. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. 11 мая 2008 года. doi : .
  25. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. . — MIT Press, 2001. — 723 p. — ISBN 9780262062183 . 26 июня 2018 года.
  26. Shriram Krishnamurthi. . 3 декабря 2013 года.
  27. Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794 .
  28. Daniel P. Friedman, Matthias Felleisen. . — MIT Press, 1996. — ISBN 978-0-262-56099-3 .
  29. Matthias Felleisen, David Van Horn, Conrad Barski et al. — No Starch Press, 2013. — ISBN 978-1-59327-491-7 . 7 октября 2018 года. . Дата обращения: 26 марта 2014. Архивировано 7 октября 2018 года.
  30. Conrad Barski. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4 . 13 декабря 2017 года.
  31. Jones, Simon Peyton. . The Haskell 98 report . Haskell 98 working group (2002). Дата обращения: 4 апреля 2009. 16 марта 2009 года.
  32. Philip Wadler. // ACM SIGPLAN Notices. — 1987. — P. 83—94. 31 мая 2014 года.
  33. Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
  34. Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5 .
  35. . Дата обращения: 26 марта 2014. 29 марта 2014 года.
  36. Ткачёв Ф. В. // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69—77 . 24 сентября 2015 года.
  37. Городняя Л. В. // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5 .
  38. Варсанофьев Д. В., Кушниренко А. Г. , Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы . — 1985. — № 3 . — С. 27—32 .
  39. . Дата обращения: 31 августа 2020. Архивировано 4 февраля 2020 года.

Литература

  • Александр Казанцев. // Linux Format . — январь 2010 г.. — № 126—127 (1) .
  • Patrick Mendelson, T. R. G. Green and Paul Brna. Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // / 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 .

Ссылки

  • в каталоге ссылок Curlie (dmoz)
Источник —

Same as Учебный язык программирования