Учебный язык программирования. Учебные языки программирования
Учебный язык программирования — Википедия
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[18]. Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[19].
Языки декларативного программирования[править | править код]
Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование[20]. Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.
Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы[21]. Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование[22].
Современный «академический» диалект Лиспа — язык 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]. Основными российскими образовательными языками являются:
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[13].
- ↑ Андрей Колесов. Basic — этапы большого пути (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ Bill Venners. The Making of Python. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев. Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑ Столяров А. В. Эссе «Язык Си и начальное обучение программированию»
- ↑ Лобачёв А. А., Куликова О. В. Выбор языка для обучения программированию, ИТО-2008.
- ↑ Mini-languages: a way to learn programming principles
- ↑ Дейкстра Эдсгер на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. Роль и место темы «Элементы программирования» в общем школьном информатическом образовании // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. Хотите научиться программировать? = So You Want To Learn to Programm? / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. Why Johnny can't code // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ Small Basic для начинающих
- ↑ Самарина А. Е. Использование свободного программного обеспечения в образовании (Смоленский государственный университет)
- ↑ Visual Basic Express Edition
- ↑ Сеймур Пейперт. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // Основы программирования на языке Пролог. — ИНТУИТ. — ISBN 978-5-9556-0034-5.
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190.
- ↑ 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. [1] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. The Structure and Interpretation of the Computer Science Curriculum // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. — DOI:10.1017/S0956796804005076.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to Design Programs. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. Programming Languages: Application and Interpretation.
- ↑ Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794.
- ↑ Daniel P. Friedman, Matthias Felleisen. The Little Schemer. — MIT Press, 1996. — ISBN 978-0-262-56099-3.
- ↑ Matthias Felleisen, David Van Horn, Conrad Barski et al. Realm of Racket: Learn to Program, One Game at a Time!. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. Land of Lisp: Learn to Program in Lisp, One Game at a Time!. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4.
- ↑ Jones, Simon Peyton. Preface. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. Why calculating is better than scheming // ACM SIGPLAN Notices. — 1987. — P. 83—94.
- ↑ Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
- ↑ Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5.
- ↑ Международный научно-образовательный проект Информатика-21
- ↑ Ткачёв Ф. В. Обучение программированию: российская перспектива // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. Школьная информатика // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
ru.wikiyy.com
Учебный язык программирования Википедия
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам
ru-wiki.ru
Учебный язык программирования — Википедия РУ
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. Не слишком хорошо подходят для обучения языки, поощряющие к использованию различных «программистских трюков»[7]. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками[8][9].
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[10].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[8].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков[11].
Бейсик
Языки декларативного программирования
Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование[20]. Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.
Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы[21]. Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование[22].
Современный «академический» диалект Лиспа — язык 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]. Основными российскими образовательными языками являются:
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[13].
См. также
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ Bill Venners. The Making of Python. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев. Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑ Столяров А. В. Эссе «Язык Си и начальное обучение программированию»
- ↑ Лобачёв А. А., Куликова О. В. Выбор языка для обучения программированию, ИТО-2008.
- ↑ Mini-languages: a way to learn programming principles
- ↑ Дейкстра Эдсгер на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. Роль и место темы «Элементы программирования» в общем школьном информатическом образовании // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. Хотите научиться программировать? = So You Want To Learn to Programm? / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. Why Johnny can't code // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ Small Basic для начинающих
- ↑ Самарина А. Е. Использование свободного программного обеспечения в образовании (Смоленский государственный университет)
- ↑ Visual Basic Express Edition
- ↑ Сеймур Пейперт. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // Основы программирования на языке Пролог. — ИНТУИТ. — ISBN 978-5-9556-0034-5.
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190.
- ↑ 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. [1] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. The Structure and Interpretation of the Computer Science Curriculum // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. — DOI:10.1017/S0956796804005076.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to Design Programs. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. Programming Languages: Application and Interpretation.
- ↑ Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794.
- ↑ Daniel P. Friedman, Matthias Felleisen. The Little Schemer. — MIT Press, 1996. — ISBN 978-0-262-56099-3.
- ↑ Matthias Felleisen, David Van Horn, Conrad Barski et al. Realm of Racket: Learn to Program, One Game at a Time!. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. Land of Lisp: Learn to Program in Lisp, One Game at a Time!. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4.
- ↑ Jones, Simon Peyton. Preface. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. Why calculating is better than scheming // ACM SIGPLAN Notices. — 1987. — P. 83—94.
- ↑ Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
- ↑ Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5.
- ↑ Международный научно-образовательный проект Информатика-21
- ↑ Ткачёв Ф. В. Обучение программированию: российская перспектива // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. Школьная информатика // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
Литература
Ссылки
http-wikipediya.ru
Учебный язык программирования - Gpedia, Your Encyclopedia
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[18]. Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[19].
Языки декларативного программирования
Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование[20]. Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.
Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы[21]. Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование[22].
Современный «академический» диалект Лиспа — язык 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]. Основными российскими образовательными языками являются:
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[13].
См. также
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ Bill Venners. The Making of Python. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев. Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑ Столяров А. В. Эссе «Язык Си и начальное обучение программированию»
- ↑ Лобачёв А. А., Куликова О. В. Выбор языка для обучения программированию, ИТО-2008.
- ↑ Mini-languages: a way to learn programming principles
- ↑ Дейкстра Эдсгер на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. Роль и место темы «Элементы программирования» в общем школьном информатическом образовании // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. Хотите научиться программировать? = So You Want To Learn to Programm? / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. Why Johnny can't code // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ Small Basic для начинающих
- ↑ Самарина А. Е. Использование свободного программного обеспечения в образовании (Смоленский государственный университет)
- ↑ Visual Basic Express Edition
- ↑ Сеймур Пейперт. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // Основы программирования на языке Пролог. — ИНТУИТ. — ISBN 978-5-9556-0034-5.
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190.
- ↑ 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. [1] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. The Structure and Interpretation of the Computer Science Curriculum // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. — DOI:10.1017/S0956796804005076.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to Design Programs. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. Programming Languages: Application and Interpretation.
- ↑ Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794.
- ↑ Daniel P. Friedman, Matthias Felleisen. The Little Schemer. — MIT Press, 1996. — ISBN 978-0-262-56099-3.
- ↑ Matthias Felleisen, David Van Horn, Conrad Barski et al. Realm of Racket: Learn to Program, One Game at a Time!. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. Land of Lisp: Learn to Program in Lisp, One Game at a Time!. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4.
- ↑ Jones, Simon Peyton. Preface. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. Why calculating is better than scheming // ACM SIGPLAN Notices. — 1987. — P. 83—94.
- ↑ Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
- ↑ Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5.
- ↑ Международный научно-образовательный проект Информатика-21
- ↑ Ткачёв Ф. В. Обучение программированию: российская перспектива // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. Школьная информатика // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
Литература
Ссылки
www.gpedia.com
Список учебных языков программирования Википедия
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоо
ru-wiki.ru
Учебный язык программирования — Википедия
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[18]. Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[19].
Языки декларативного программирования
Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование[20]. Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.
Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы[21]. Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование[22].
Современный «академический» диалект Лиспа — язык 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]. Основными российскими образовательными языками являются:
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[13].
См. также
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ Bill Venners. The Making of Python. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев. Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑ Столяров А. В. Эссе «Язык Си и начальное обучение программированию»
- ↑ Лобачёв А. А., Куликова О. В. Выбор языка для обучения программированию, ИТО-2008.
- ↑ Mini-languages: a way to learn programming principles
- ↑ Дейкстра Эдсгер на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. Роль и место темы «Элементы программирования» в общем школьном информатическом образовании // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. Хотите научиться программировать? = So You Want To Learn to Programm? / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. Why Johnny can't code // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ Small Basic для начинающих
- ↑ Самарина А. Е. Использование свободного программного обеспечения в образовании (Смоленский государственный университет)
- ↑ Visual Basic Express Edition
- ↑ Сеймур Пейперт. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // Основы программирования на языке Пролог. — ИНТУИТ. — ISBN 978-5-9556-0034-5.
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190.
- ↑ 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. [1] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. The Structure and Interpretation of the Computer Science Curriculum // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. — DOI:10.1017/S0956796804005076.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to Design Programs. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. Programming Languages: Application and Interpretation.
- ↑ Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794.
- ↑ Daniel P. Friedman, Matthias Felleisen. The Little Schemer. — MIT Press, 1996. — ISBN 978-0-262-56099-3.
- ↑ Matthias Felleisen, David Van Horn, Conrad Barski et al. Realm of Racket: Learn to Program, One Game at a Time!. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. Land of Lisp: Learn to Program in Lisp, One Game at a Time!. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4.
- ↑ Jones, Simon Peyton. Preface. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. Why calculating is better than scheming // ACM SIGPLAN Notices. — 1987. — P. 83—94.
- ↑ Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
- ↑ Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5.
- ↑ Международный научно-образовательный проект Информатика-21
- ↑ Ткачёв Ф. В. Обучение программированию: российская перспектива // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. Школьная информатика // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
Литература
Ссылки
wiki2.red
Учебные языки программирования - Википедия
Материал из Википедии — свободной энциклопедии
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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]. Специально для целей обучения созданы следующие диалекты Бейсика.
encyclopaedia.bid