Учебные языки программирования. Языки программирования учебные
Учебные языки программирования Википедия
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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.
Литература
Ссылки
wikiredia.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 (англ.)русск.
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.
Литература[ | код]
Ссылки[ | код]
ru.wikibedia.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.
Литература
Ссылки
wikiredia.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.
Литература
Ссылки
wikipedia.green
Учебный язык программирования — Википедия. Что такое Учебный язык программирования
Статья из Википедии — свободной энциклопедии
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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.
Литература
Ссылки
wiki.sc
Учебный язык программирования — Википедия (с комментариями)
Материал из Википедии — свободной энциклопедии
Уче́бный язы́к программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как 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].
См. также
Напишите отзыв о статье "Учебный язык программирования"
Примечания
- ↑ Андрей Колесов. [www.visual.2000.ru/kolesov/nauka/basichis.htm Basic — этапы большого пути] (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. [oberoncore.ru/_media/library/n._wirth_-_recollections_about_the_development_of_pascal_hopl_ii_.pdf Recollections about the development of Pascal (HOPL II), 3.3]
- ↑ Bill Venners. [www.artima.com/intv/pythonP.html The Making of Python]. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ [chernykh.net/content/view/227/240/ Язык Лого] на сайте «История компьютера»
- ↑ [www.niisi.ru/kumir/books.htm Система программирования КуМир → Учебники]
- ↑ Александр Казанцев. [wiki.linuxformat.ru/wiki/LXF126:School1 Школа. Исполнители и алгоритмы] // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. [www.ict.edu.ru/vconf/files/3197.rtf Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем]. — Самаркандский государственный университет.
- ↑ Столяров А. В. [www.stolyarov.info/pvt/anti_c?page=1 Эссе «Язык Си и начальное обучение программированию»]
- ↑ Лобачёв А. А., Куликова О. В. [ito.edu.ru/2008/Moscow/VIII/1/VIII-1-7732.html Выбор языка для обучения программированию], ИТО-2008.
- ↑ [course.zjnu.cn/kcjx/uploadfile/2008112722134383.pdf Mini-languages: a way to learn programming principles]
- ↑ [chernykh.net/content/view/176/186/ Дейкстра Эдсгер] на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. [www.ict.edu.ru/ft/001735/1999_5_14-23.pdf Роль и место темы «Элементы программирования» в общем школьном информатическом образовании] // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. [www.altlinux.org/Books:Basic-256 Хотите научиться программировать?] = [basicbook.org/ So You Want To Learn to Programm?] / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. [www.salon.com/tech/feature/2006/09/14/basic/print.html Why Johnny can't code] // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ [download.microsoft.com/documents/rus/visualstudio/SmallBasic.pdf Small Basic для начинающих]
- ↑ Самарина А. Е. [79.133.86.67/virtual/expo/InfoKom10/dokald_10/Samarina.doc Использование свободного программного обеспечения в образовании] (Смоленский государственный университет)
- ↑ [www.microsoft.com/Express/VB/ Visual Basic Express Edition]
- ↑ [chernykh.net/content/view/481/693/ Сеймур Пейперт]. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // [www.intuit.ru/studies/courses/44/44/lecture/1309?page=2 Основы программирования на языке Пролог]. — ИНТУИТ. — 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. [repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. [www.ccs.neu.edu/scheme/pubs/jfp2004-fffk.pdf 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. [htdp.org/ How to Design Programs]. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. [cs.brown.edu/~sk/Publications/Books/ProgLangs/ 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. [realmofracket.com/ Realm of Racket: Learn to Program, One Game at a Time!]. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. [landoflisp.com/ 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. [www.haskell.org/onlinereport/preface-jfp.html Preface]. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. [www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf 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.
- ↑ [www.inr.ac.ru/~info21/ Международный научно-образовательный проект Информатика-21]
- ↑ Ткачёв Ф. В. [www.inr.ac.ru/~info21/texts/2003-08-JMLC/ru.htm Обучение программированию: российская перспектива] // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. [www.computer-museum.ru/books/n_ershov/2_ershov_school.htm Школьная информатика] // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
Литература
- Александр Казанцев. [wiki.linuxformat.ru/wiki/LXF126:School1 Школа. Исполнители и алгоритмы] // 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 // [www.cl.cam.ac.uk/teaching/1011/R201/ppig-book/ch3-5.pdf 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.
Ссылки
Отрывок, характеризующий Учебный язык программирования
Тихон Щербатый был один из самых нужных людей в партии. Он был мужик из Покровского под Гжатью. Когда, при начале своих действий, Денисов пришел в Покровское и, как всегда, призвав старосту, спросил о том, что им известно про французов, староста отвечал, как отвечали и все старосты, как бы защищаясь, что они ничего знать не знают, ведать не ведают. Но когда Денисов объяснил им, что его цель бить французов, и когда он спросил, не забредали ли к ним французы, то староста сказал, что мародеры бывали точно, но что у них в деревне только один Тишка Щербатый занимался этими делами. Денисов велел позвать к себе Тихона и, похвалив его за его деятельность, сказал при старосте несколько слов о той верности царю и отечеству и ненависти к французам, которую должны блюсти сыны отечества. – Мы французам худого не делаем, – сказал Тихон, видимо оробев при этих словах Денисова. – Мы только так, значит, по охоте баловались с ребятами. Миродеров точно десятка два побили, а то мы худого не делали… – На другой день, когда Денисов, совершенно забыв про этого мужика, вышел из Покровского, ему доложили, что Тихон пристал к партии и просился, чтобы его при ней оставили. Денисов велел оставить его. Тихон, сначала исправлявший черную работу раскладки костров, доставления воды, обдирания лошадей и т. п., скоро оказал большую охоту и способность к партизанской войне. Он по ночам уходил на добычу и всякий раз приносил с собой платье и оружие французское, а когда ему приказывали, то приводил и пленных. Денисов отставил Тихона от работ, стал брать его с собою в разъезды и зачислил в казаки. Тихон не любил ездить верхом и всегда ходил пешком, никогда не отставая от кавалерии. Оружие его составляли мушкетон, который он носил больше для смеха, пика и топор, которым он владел, как волк владеет зубами, одинаково легко выбирая ими блох из шерсти и перекусывая толстые кости. Тихон одинаково верно, со всего размаха, раскалывал топором бревна и, взяв топор за обух, выстрагивал им тонкие колышки и вырезывал ложки. В партии Денисова Тихон занимал свое особенное, исключительное место. Когда надо было сделать что нибудь особенно трудное и гадкое – выворотить плечом в грязи повозку, за хвост вытащить из болота лошадь, ободрать ее, залезть в самую середину французов, пройти в день по пятьдесят верст, – все указывали, посмеиваясь, на Тихона. – Что ему, черту, делается, меренина здоровенный, – говорили про него. Один раз француз, которого брал Тихон, выстрелил в него из пистолета и попал ему в мякоть спины. Рана эта, от которой Тихон лечился только водкой, внутренне и наружно, была предметом самых веселых шуток во всем отряде и шуток, которым охотно поддавался Тихон. – Что, брат, не будешь? Али скрючило? – смеялись ему казаки, и Тихон, нарочно скорчившись и делая рожи, притворяясь, что он сердится, самыми смешными ругательствами бранил французов. Случай этот имел на Тихона только то влияние, что после своей раны он редко приводил пленных. Тихон был самый полезный и храбрый человек в партии. Никто больше его не открыл случаев нападения, никто больше его не побрал и не побил французов; и вследствие этого он был шут всех казаков, гусаров и сам охотно поддавался этому чину. Теперь Тихон был послан Денисовым, в ночь еще, в Шамшево для того, чтобы взять языка. Но, или потому, что он не удовлетворился одним французом, или потому, что он проспал ночь, он днем залез в кусты, в самую середину французов и, как видел с горы Денисов, был открыт ими.Поговорив еще несколько времени с эсаулом о завтрашнем нападении, которое теперь, глядя на близость французов, Денисов, казалось, окончательно решил, он повернул лошадь и поехал назад. – Ну, бг'ат, тепег'ь поедем обсушимся, – сказал он Пете. Подъезжая к лесной караулке, Денисов остановился, вглядываясь в лес. По лесу, между деревьев, большими легкими шагами шел на длинных ногах, с длинными мотающимися руками, человек в куртке, лаптях и казанской шляпе, с ружьем через плечо и топором за поясом. Увидав Денисова, человек этот поспешно швырнул что то в куст и, сняв с отвисшими полями мокрую шляпу, подошел к начальнику. Это был Тихон. Изрытое оспой и морщинами лицо его с маленькими узкими глазами сияло самодовольным весельем. Он, высоко подняв голову и как будто удерживаясь от смеха, уставился на Денисова. – Ну где пг'опадал? – сказал Денисов. – Где пропадал? За французами ходил, – смело и поспешно отвечал Тихон хриплым, но певучим басом. – Зачем же ты днем полез? Скотина! Ну что ж, не взял?.. – Взять то взял, – сказал Тихон. – Где ж он? – Да я его взял сперва наперво на зорьке еще, – продолжал Тихон, переставляя пошире плоские, вывернутые в лаптях ноги, – да и свел в лес. Вижу, не ладен. Думаю, дай схожу, другого поаккуратнее какого возьму. – Ишь, шельма, так и есть, – сказал Денисов эсаулу. – Зачем же ты этого не пг'ивел? – Да что ж его водить то, – сердито и поспешно перебил Тихон, – не гожающий. Разве я не знаю, каких вам надо? – Эка бестия!.. Ну?.. – Пошел за другим, – продолжал Тихон, – подполоз я таким манером в лес, да и лег. – Тихон неожиданно и гибко лег на брюхо, представляя в лицах, как он это сделал. – Один и навернись, – продолжал он. – Я его таким манером и сграбь. – Тихон быстро, легко вскочил. – Пойдем, говорю, к полковнику. Как загалдит. А их тут четверо. Бросились на меня с шпажками. Я на них таким манером топором: что вы, мол, Христос с вами, – вскрикнул Тихон, размахнув руками и грозно хмурясь, выставляя грудь. – То то мы с горы видели, как ты стречка задавал через лужи то, – сказал эсаул, суживая свои блестящие глаза. Пете очень хотелось смеяться, но он видел, что все удерживались от смеха. Он быстро переводил глаза с лица Тихона на лицо эсаула и Денисова, не понимая того, что все это значило. – Ты дуг'ака то не представляй, – сказал Денисов, сердито покашливая. – Зачем пег'вого не пг'ивел? Тихон стал чесать одной рукой спину, другой голову, и вдруг вся рожа его растянулась в сияющую глупую улыбку, открывшую недостаток зуба (за что он и прозван Щербатый). Денисов улыбнулся, и Петя залился веселым смехом, к которому присоединился и сам Тихон. – Да что, совсем несправный, – сказал Тихон. – Одежонка плохенькая на нем, куда же его водить то. Да и грубиян, ваше благородие. Как же, говорит, я сам анаральский сын, не пойду, говорит. – Экая скотина! – сказал Денисов. – Мне расспросить надо… – Да я его спрашивал, – сказал Тихон. – Он говорит: плохо зн аком. Наших, говорит, и много, да всё плохие; только, говорит, одна названия. Ахнете, говорит, хорошенько, всех заберете, – заключил Тихон, весело и решительно взглянув в глаза Денисова. – Вот я те всыплю сотню гог'ячих, ты и будешь дуг'ака то ког'чить, – сказал Денисов строго. – Да что же серчать то, – сказал Тихон, – что ж, я не видал французов ваших? Вот дай позатемняет, я табе каких хошь, хоть троих приведу. – Ну, поедем, – сказал Денисов, и до самой караулки он ехал, сердито нахмурившись и молча. Тихон зашел сзади, и Петя слышал, как смеялись с ним и над ним казаки о каких то сапогах, которые он бросил в куст. Когда прошел тот овладевший им смех при словах и улыбке Тихона, и Петя понял на мгновенье, что Тихон этот убил человека, ему сделалось неловко. Он оглянулся на пленного барабанщика, и что то кольнуло его в сердце. Но эта неловкость продолжалась только одно мгновенье. Он почувствовал необходимость повыше поднять голову, подбодриться и расспросить эсаула с значительным видом о завтрашнем предприятии, с тем чтобы не быть недостойным того общества, в котором он находился. Посланный офицер встретил Денисова на дороге с известием, что Долохов сам сейчас приедет и что с его стороны все благополучно. Денисов вдруг повеселел и подозвал к себе Петю. – Ну, г'асскажи ты мне пг'о себя, – сказал он.
Петя при выезде из Москвы, оставив своих родных, присоединился к своему полку и скоро после этого был взят ординарцем к генералу, командовавшему большим отрядом. Со времени своего производства в офицеры, и в особенности с поступления в действующую армию, где он участвовал в Вяземском сражении, Петя находился в постоянно счастливо возбужденном состоянии радости на то, что он большой, и в постоянно восторженной поспешности не пропустить какого нибудь случая настоящего геройства. Он был очень счастлив тем, что он видел и испытал в армии, но вместе с тем ему все казалось, что там, где его нет, там то теперь и совершается самое настоящее, геройское. И он торопился поспеть туда, где его не было. Когда 21 го октября его генерал выразил желание послать кого нибудь в отряд Денисова, Петя так жалостно просил, чтобы послать его, что генерал не мог отказать. Но, отправляя его, генерал, поминая безумный поступок Пети в Вяземском сражении, где Петя, вместо того чтобы ехать дорогой туда, куда он был послан, поскакал в цепь под огонь французов и выстрелил там два раза из своего пистолета, – отправляя его, генерал именно запретил Пете участвовать в каких бы то ни было действиях Денисова. От этого то Петя покраснел и смешался, когда Денисов спросил, можно ли ему остаться. До выезда на опушку леса Петя считал, что ему надобно, строго исполняя свой долг, сейчас же вернуться. Но когда он увидал французов, увидал Тихона, узнал, что в ночь непременно атакуют, он, с быстротою переходов молодых людей от одного взгляда к другому, решил сам с собою, что генерал его, которого он до сих пор очень уважал, – дрянь, немец, что Денисов герой, и эсаул герой, и что Тихон герой, и что ему было бы стыдно уехать от них в трудную минуту. Уже смеркалось, когда Денисов с Петей и эсаулом подъехали к караулке. В полутьме виднелись лошади в седлах, казаки, гусары, прилаживавшие шалашики на поляне и (чтобы не видели дыма французы) разводившие красневший огонь в лесном овраге. В сенях маленькой избушки казак, засучив рукава, рубил баранину. В самой избе были три офицера из партии Денисова, устроивавшие стол из двери. Петя снял, отдав сушить, свое мокрое платье и тотчас принялся содействовать офицерам в устройстве обеденного стола. Через десять минут был готов стол, покрытый салфеткой. На столе была водка, ром в фляжке, белый хлеб и жареная баранина с солью. Сидя вместе с офицерами за столом и разрывая руками, по которым текло сало, жирную душистую баранину, Петя находился в восторженном детском состоянии нежной любви ко всем людям и вследствие того уверенности в такой же любви к себе других людей. – Так что же вы думаете, Василий Федорович, – обратился он к Денисову, – ничего, что я с вами останусь на денек? – И, не дожидаясь ответа, он сам отвечал себе: – Ведь мне велено узнать, ну вот я и узнаю… Только вы меня пустите в самую… в главную. Мне не нужно наград… А мне хочется… – Петя стиснул зубы и оглянулся, подергивая кверху поднятой головой и размахивая рукой. – В самую главную… – повторил Денисов, улыбаясь. – Только уж, пожалуйста, мне дайте команду совсем, чтобы я командовал, – продолжал Петя, – ну что вам стоит? Ах, вам ножик? – обратился он к офицеру, хотевшему отрезать баранины. И он подал свой складной ножик. Офицер похвалил ножик. – Возьмите, пожалуйста, себе. У меня много таких… – покраснев, сказал Петя. – Батюшки! Я и забыл совсем, – вдруг вскрикнул он. – У меня изюм чудесный, знаете, такой, без косточек. У нас маркитант новый – и такие прекрасные вещи. Я купил десять фунтов. Я привык что нибудь сладкое. Хотите?.. – И Петя побежал в сени к своему казаку, принес торбы, в которых было фунтов пять изюму. – Кушайте, господа, кушайте. – А то не нужно ли вам кофейник? – обратился он к эсаулу. – Я у нашего маркитанта купил, чудесный! У него прекрасные вещи. И он честный очень. Это главное. Я вам пришлю непременно. А может быть еще, у вас вышли, обились кремни, – ведь это бывает. Я взял с собою, у меня вот тут… – он показал на торбы, – сто кремней. Я очень дешево купил. Возьмите, пожалуйста, сколько нужно, а то и все… – И вдруг, испугавшись, не заврался ли он, Петя остановился и покраснел. Он стал вспоминать, не сделал ли он еще каких нибудь глупостей. И, перебирая воспоминания нынешнего дня, воспоминание о французе барабанщике представилось ему. «Нам то отлично, а ему каково? Куда его дели? Покормили ли его? Не обидели ли?» – подумал он. Но заметив, что он заврался о кремнях, он теперь боялся. «Спросить бы можно, – думал он, – да скажут: сам мальчик и мальчика пожалел. Я им покажу завтра, какой я мальчик! Стыдно будет, если я спрошу? – думал Петя. – Ну, да все равно!» – и тотчас же, покраснев и испуганно глядя на офицеров, не будет ли в их лицах насмешки, он сказал: – А можно позвать этого мальчика, что взяли в плен? дать ему чего нибудь поесть… может… – Да, жалкий мальчишка, – сказал Денисов, видимо, не найдя ничего стыдного в этом напоминании. – Позвать его сюда. Vincent Bosse его зовут. Позвать. – Я позову, – сказал Петя. – Позови, позови. Жалкий мальчишка, – повторил Денисов. Петя стоял у двери, когда Денисов сказал это. Петя пролез между офицерами и близко подошел к Денисову. – Позвольте вас поцеловать, голубчик, – сказал он. – Ах, как отлично! как хорошо! – И, поцеловав Денисова, он побежал на двор. – Bosse! Vincent! – прокричал Петя, остановясь у двери. – Вам кого, сударь, надо? – сказал голос из темноты. Петя отвечал, что того мальчика француза, которого взяли нынче. – А! Весеннего? – сказал казак. Имя его Vincent уже переделали: казаки – в Весеннего, а мужики и солдаты – в Висеню. В обеих переделках это напоминание о весне сходилось с представлением о молоденьком мальчике. – Он там у костра грелся. Эй, Висеня! Висеня! Весенний! – послышались в темноте передающиеся голоса и смех. – А мальчонок шустрый, – сказал гусар, стоявший подле Пети. – Мы его покормили давеча. Страсть голодный был! В темноте послышались шаги и, шлепая босыми ногами по грязи, барабанщик подошел к двери. – Ah, c'est vous! – сказал Петя. – Voulez vous manger? N'ayez pas peur, on ne vous fera pas de mal, – прибавил он, робко и ласково дотрогиваясь до его руки. – Entrez, entrez. [Ах, это вы! Хотите есть? Не бойтесь, вам ничего не сделают. Войдите, войдите.] – Merci, monsieur, [Благодарю, господин.] – отвечал барабанщик дрожащим, почти детским голосом и стал обтирать о порог свои грязные ноги. Пете многое хотелось сказать барабанщику, но он не смел. Он, переминаясь, стоял подле него в сенях. Потом в темноте взял его за руку и пожал ее. – Entrez, entrez, – повторил он только нежным шепотом. «Ах, что бы мне ему сделать!» – проговорил сам с собою Петя и, отворив дверь, пропустил мимо себя мальчика. Когда барабанщик вошел в избушку, Петя сел подальше от него, считая для себя унизительным обращать на него внимание. Он только ощупывал в кармане деньги и был в сомненье, не стыдно ли будет дать их барабанщику.
От барабанщика, которому по приказанию Денисова дали водки, баранины и которого Денисов велел одеть в русский кафтан, с тем, чтобы, не отсылая с пленными, оставить его при партии, внимание Пети было отвлечено приездом Долохова. Петя в армии слышал много рассказов про необычайные храбрость и жестокость Долохова с французами, и потому с тех пор, как Долохов вошел в избу, Петя, не спуская глаз, смотрел на него и все больше подбадривался, подергивая поднятой головой, с тем чтобы не быть недостойным даже и такого общества, как Долохов.
wiki-org.ru