Какие отечественные языки программирования разработаны для учебных целей: Раздел 2. Методика преподавания базового курса информатики. Какие отечественные языки программирования были специально разработаны для учебных целей
Содержание
Раздел 2. Методика преподавания базового курса информатики. Какие отечественные языки программирования были специально разработаны для учебных целей
ГлавнаяРазноеКакие отечественные языки программирования были специально разработаны для учебных целей
3.2 Языки программирования
Программирование и языки программирования. Программирование – это раздел информатики, который изучает процесс создания программ. Любая программа, создаваемая для исполнения компьютером, пишется на языке программирования. Язык программирования – это формальный язык, предназначенный для создания программных алгоритмов. Языки программирования принято разделять на языки низкого уровня (машинные) и языки высокого уровня.
Языки программирования низкого уровня достаточно сложны для человека, так как все команды необходимо писать на компьютерном (машинном) языке. На компьютерном языке любая команда представляет собой двоичный код. Представьте, что нам просто необходимо ввести два числа и вывести их сумму. Мы должны сообщить компьютеру, что мы вводим данные, то есть ввести код этой операции. После ввода, мы сообщаем компьютеру, что введенное число необходимо отправить в оперативную память. При этом необходимо указать точный адрес ячейки (или ячеек) в которой будет храниться число. Эти операции проделываем столько раз, сколько данных необходимо ввести. После ввода всех данных мы сообщаем компьютеру, что будем производить сложение и по одному отправить все данные из оперативной памяти в процессор. Полученный результат мы отправляем в оперативную память, откуда мы выводим его. После завершения действия мы должны сообщить компьютеру, что надо очистить используемые нами при решении ячейки оперативной памяти. Вот такая процедура для сложения двух чисел. Но от программистов требуется выполнение задач «немного посложнее».
Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня, которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят «исходный код» (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге «заставляют» компьютер выполнять соответствующие команды, которые даются на машинном языке. Трансляторы можно разделить на две группы по их работе – компиляторы и интерпретаторы.
Языки программирования, имеющие в своем составе интерпретатор, чаще всего являются строчно-ориентированными языками, т.е. команды записываются в строке, каждая из которых имеет свой номер. Выполнение программы происходит в последовательности номеров строк, если нет указания на изменение порядка. Интерпретатор читает строку программы, транслирует ее в компьютерные коды и немедленно выполняет, затем переходит к следующей строке и вновь повторяет все действия. При этом происходит проверка правильности написания строк программы с точки зрения правил языка. При обнаружении ошибок специальный отладчик сообщает об ошибке, исполнение программы останавливается.
Компилятор действует иначе. Он сначала просматривает всю программу, отмечает все ошибки и только после того, как все ошибки исправлены, – компилирует программу, т.е. в памяти или на диске создает программу в машинных кодах и после этого ее исполняет.
Развитие языков программирования. До 60-х годов ХХ века использовались только машинные языки. К машинным языкам относятся двоичный язык (непосредственный компьютерный язык) и шестнадцатеричный (модификация двоичного языка, в которой четыре цифры двоичного кода заменяются одной шестнадцатеричной).
Язык Ассемблер – это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Программисту не обязательно употреблять настоящие адреса ячеек памяти с размещенными в них данными, участвующими в операции, и вычисляемые результаты, а также адреса тех команд, к которым программа не обращается. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист, реализующий какую-либо задачу на языках высокого уровня, с помощью Ассемблера может определить осмыслено ли решение данной задачи, с точки зрения использования компьютера.
Один из самых старых языков программирования Фортран был создан в 50-х гг. ХХ века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами. Среди причин долголетия Фортрана можно отметить простую структуру, как самого Фортрана, так и предназначенных для него трансляторов. Программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации), и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков.
Например, Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Создали Basic ученые Дж. Кемени и Т. Куртц для использования в Дортмутском колледже, как средство для обучения программированию. Basic – один из самых популярных языков программирования высокого уровня, который используется и по сей день (в основном в школах для обучения программированию).
Язык программирования Алгол создан в 1960 г. (поэтому его иногда называют Алгол – 60). Развитием языка Алгол – 60 является Алгол – 68, созданный в Западной Европе Международной Федерацией. Версия Алгол – 68 обладала богатым набором средств, высокой строгостью и стройностью, но и большой сложностью. Ее реализация затянулась на долгие годы, в результате чего время было упущено и данный язык в некотором смысле, пережил самого себя – устарел, практически прекратив свое существование.
Самый известный отечественный язык программирования Рефал, разработанный в СССР в 1966 году. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами. Программирование на Рефале имеет специфику, связанную, прежде всего, с тем, что Рефал является языком функционального типа в отличие от обычных операторных языков. Если программа на операторных языках – ни что иное, как совокупность приказов-операторов, то программа на Рефале представляет собой по существу описание связей и отношений между определенными понятиями. Вследствие того, что в Рефале программист сам определяет структуру обрабатываемой информации, эффективность программы существенно зависит от удачного или неудачного выбора этой структуры. Для задания структур в Рефале используются скобки, а специфика всех реализаций языка такова, что использование скобок резко повышает эффективность выполнения программы. Это достигается с помощью адресного соединения скобок.
Язык программирования Паскаль является прямым развитием направления Алгола, он стал одним из наиболее популярных процедурных языков программирования среди прикладных программистов. Он разработан в 1970 г. швейцарским специалистом в области вычислительной техники профессором Н. Виртом, назван в честь французского математика Блеза Паскаля и, по замыслу автора, предназначался для обучения программированию.
Язык программирования АДА разработан в 1979 г. ведущими специалистами в области программирования по заказу Министерства обороны США для использования во встроенных системах с управляющими ЭВМ, что требует поддержки режима реального времени. Язык назван в честь Августы Лады Лавлейс, она по праву считается первым в мире программистом. АДА является продолжением направления Алгола. Язык отталкивает своей громоздкостью, хотя с 1986 г. он стал обязательным для многих военных приложений в США.
Язык программирования Си первоначально разработан в начале 70–х гг. для реализации разработки систем, трансляторов, баз данных и других системных и прикладных программ, т.е. создавался не как учебный, а как инструментальный язык. Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке. Язык Си предъявляет достаточно высокие требования к квалификации использующего его программиста. При изучении Си желательно иметь представление о структуре и работе компьютера. Большую помощь и более глубокое понимание идей Си, как языка системного программирования, обеспечат хотя бы минимальное знание языка ассемблер. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Сейчас очень популярна модификация языка Си – язык Си ++ (Си плюс плюс), разработанный в 1983 году.
Вопросы:
1. Что значит программный алгоритм?
2. Почему машинный язык программирования неудобен для человека?
3. Чем отличается интерпретатор от компилятора?
4. Какие вы знаете языки программирования?
studfiles.net
Учебный язык программирования — WiKi
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. Не слишком хорошо подходят для обучения языки, поощряющие к использованию различных «программистских трюков»[7]. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками[8][9].
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[10].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[8].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков[11].
Бейсик
Языки декларативного программирования
Язык Logo, появившийся на свет между Бейсиком и Паскалем, стал первым языком программирования, изначально предназначенным для обучения детей. Этот язык можно рассматривать как диалект Лиспа — языка, с которого началось функциональное программирование[20]. Хотя этот язык более известен своей черепашьей графикой и рассматривается как первый из графических исполнителей, но такие черты Лиспа, как управление последовательностью действий через рекурсию и списки в качестве основной структуры данных, также остаются свойствами этого (мультипарадигмального по своей сути) языка.
Хотя Пролог — язык, с которого началось логическое программирование, — редко рассматривают как язык начального обучения, он легко осваивается теми, кто только начинает изучать программирование. Этому способствует его ориентированность на человеческое мышление, простой, единообразный синтаксис и отсутствие таких конструкций, как ветвления или циклы[21]. Простота изучения была одной из целей дизайна языка, хотя этот язык остаётся недопонятым. Одна из причин малой распространённости Пролога в начальном обучении — отсутствие в нём удобных средств работы с интерактивной графикой, которая не слишком гладко вписывается в чистое декларативное программирование[22].
Современный «академический» диалект Лиспа — язык Scheme — был изначально ориентирован на образование[23]. Он используется в таком знаменитом курсе компьютерного программирования, как «Структура и интерпретация компьютерных программ». Публикация этой книги не только сделала Scheme популярным языком в университетской среде, но и изменила сам подход к изучению программированию[24]. Этот язык используется также в целом ряде учебников, таких как «How to Design Programs (англ.)русск.»[25], «Programming Languages: Application and Interpretation (англ.)русск.»[26], «Essentials of Programming Languages (англ.)русск.»[27] и др. Обучению программированию с нуля, с использованием Scheme, посвящена и книга Даниэля Фридмана (англ.)русск. «The Little Schemer»[28], впервые изданная под названием «The Little Lisper» в 1974 году и ставшая началом своего рода трилогии. Первая книга, посвящённая языку Racket (прямому потомку Scheme), «Realm of Racket»[29], также представляет собой учебник для детей (впрочем, эта книга одновременно является переработанным вариантом учебника «Land of Lisp»[30], основанного на Common Lisp).
Серьёзным конкурентом различным вариантам Лиспа в университетских курсах функционального программирования стал язык Haskell. Авторы этого языка предназначили его в равной мере для обучения, научных исследоваий и практических приложений[31]. Его отличает то, что он представляет собой чисто функциональный язык программирования, реализующий типизированное лямбда-исчисление, его синтаксис приближён к традиционной математической нотации[32][33].
В 1991 году профессор Лувенского католического университета в Бельгии Герт Смолка начал разработку мультипарадигмального языка Oz. Язык позволяет писать программы в стиле любой из основных распространённых парадигм программирования: как декларативных, таких как логическое и функциональное программирование, так и императивных. Этот язык используется как основа для обучающего курса «Concepts, Techniques, and Models of Computer Programming (англ.)русск.»[34].
Паскаль
Разработанный в качестве развития линии Algol-60 Никлаусом Виртом язык программирования Паскаль автор с самого начала использовал для вводного курса программирования для студентов[2]. Этот язык быстро начал набирать популярность в таком качестве.
Turbo Pascal, Delphi и Free Pascal широко использовались и продолжают использоваться для обучения студентов и школьников. Зародившийся в 2002 году на физфаке МГУ международный научно-образовательный проект «Информатика-21»[35] поставил своей целью внедрение в российское образование системы программирования BlackBox Component Builder[36], реализации Компонентного Паскаля, диалекта Oberon-2 — объектно-ориентированного языка паскаль-семейства, разработанного Виртом. Как и другие языки Никлауса Вирта, он отличается (в том числе от Объектного Паскаля в стиле Borland) минимализмом.
Языки, разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами[37]. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира[13]. Основными российскими образовательными языками являются:
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[13].
См. также
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути (авторский вариант статьи). Опубликована с незначительной литературной правкой в журнале «Наука и жизнь», 2000, № 10. С. 18—20.
- ↑ 1 2 Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ Bill Venners. The Making of Python. A Conversation with Guido van Rossum. Part I. 2003, January 13.
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев. Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ Psychology, 1990, 1. Introduction, p. 176.
- ↑ 1 2 Кобилов С. С. Образовательная информатика: подход к обучению, выбор учебных языков и создание программных систем. — Самаркандский государственный университет.
- ↑ Столяров А. В. Эссе «Язык Си и начальное обучение программированию»
- ↑ Лобачёв А. А., Куликова О. В. Выбор языка для обучения программированию, ИТО-2008.
- ↑ Mini-languages: a way to learn programming principles
- ↑ Дейкстра Эдсгер на сайте «История компьютера»
- ↑ 1 2 3 Леонов А. Г., Первин Ю. А. Роль и место темы «Элементы программирования» в общем школьном информатическом образовании // Компьютерные инструменты в образовании. Информатизация образования. — СПб.: ЦПО, 1999. — № 5. — С. 14-23.
- ↑ Джеймс М. Рено. Хотите научиться программировать? = So You Want To Learn to Programm? / Пер. с англ. С. Ирюпина, В. Чёрного. — М.: Альт Линукс, 2011. — 320 с. — ISBN 978-5-905167-06-5.
- ↑ В нём, к примеру, отсутствуют процедуры и функции. Другой, подобный современный диалект — Basic4GL (англ.)русск.
- ↑ David Brin. Why Johnny can’t code // Salon Magazine. — 2006. — № от 14 сентября.
- ↑ Small Basic для начинающих
- ↑ Самарина А. Е. Использование свободного программного обеспечения в образовании (Смоленский государственный университет)
- ↑ Visual Basic Express Edition
- ↑ Сеймур Пейперт. История компьютера. Проверено 25 марта 2014.
- ↑ Шрайнер П. А. Лекция 1: Введение в язык логического программирования Пролог // Основы программирования на языке Пролог. — ИНТУИТ. — ISBN 978-5-9556-0034-5.
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190.
- ↑ Gerald Jay Sussman and Guy Lewis Steele, Jr. Scheme: An Interpreter for Extended Lambda Calculus. — MIT AI Lab. AI Lab Memo AIM-349. December 1975. [1] from Lambda Papers (англ.)русск.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. The Structure and Interpretation of the Computer Science Curriculum // Journal of Functional Programming. — 2004. — Vol. 14. — P. 365. — DOI:10.1017/S0956796804005076.
- ↑ Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. How to Design Programs. — MIT Press, 2001. — 723 p. — ISBN 9780262062183.
- ↑ Shriram Krishnamurthi. Programming Languages: Application and Interpretation.
- ↑ Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages. 3rd edition. — MIT Press, 2008. — 432 p. — ISBN 9780262062794.
- ↑ Daniel P. Friedman, Matthias Felleisen. The Little Schemer. — MIT Press, 1996. — ISBN 978-0-262-56099-3.
- ↑ Matthias Felleisen, David Van Horn, Conrad Barski et al. Realm of Racket: Learn to Program, One Game at a Time!. — No Starch Press, 2013. — ISBN 978-1-59327-491-7.
- ↑ Conrad Barski. Land of Lisp: Learn to Program in Lisp, One Game at a Time!. — No Starch Press, October 2010. — 504 p. — ISBN 978-1-59327-281-4.
- ↑ Jones, Simon Peyton. Preface. The Haskell 98 report. Haskell 98 working group (2002). Проверено 4 апреля 2009.
- ↑ Philip Wadler. Why calculating is better than scheming // ACM SIGPLAN Notices. — 1987. — P. 83—94.
- ↑ Richard Bird. Introduction to Functional Programming using Haskell. 2nd edition. — Prentice Hall, 1998. — P. 66.
- ↑ Peter Van Roy, Seif Haridi. Concepts, Techniques, and Models of Computer Programming. — MIT Press, March 2004. — ISBN 0-262-22069-5.
- ↑ Международный научно-образовательный проект Информатика-21
- ↑ Ткачёв Ф. В. Обучение программированию: российская перспектива // Modular Programming Languages. Lecture Notes in Computer Science 2789. — Springer-Verlag, 2003. — С. 69-77.
- ↑ Городняя Л. В. Школьная информатика // Марчук А. Г. Андрей Петрович Ершов — учёный и человек. — Новосибирск: Изд-во СО РАН, 2006. — 503 с. — (Наука Сибири в лицах). — ISBN 978-5-7692-0819-5.
- ↑ Варсанофьев Д. В., Кушниренко А. Г., Лебедев Г. В. E-практикум — программное обеспечение школьного курса информатики и вычислительной техники // Микропроцессорные средства и системы. — 1985. — № 3. — С. 27—32.
Литература
Ссылки
ru-wiki.org
Учебный язык программирования — это… Что такое Учебный язык программирования?
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC[1] и Паскаль[2]. Из разработанного для обучения языка ABC вырос Python[3]. Популярным языком, разработанным специально для образования является LOGO[4]. Специально для российских школ разработана языковая среда КуМир[5]. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования[6].
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками.[7][8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[9].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[7].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков.[10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира.[11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[11].
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.)русск.[12]. Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования[11]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[17], Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[18].
Другие
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
- ↑ Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ The Making of Python, A Conversation with Guido van Rossum, Part I. by Bill Venners, January 13, 2003
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ 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 (англ.)русск.
- ↑ Brin, David (Sept 14, 2006). «Why Johnny can’t code». Salon Magazine. Проверено 4/12/09.
- ↑ Small Basic для начинающих
- ↑ Использование свободного программного обеспечения в образовании, Самарина А.Е., Смоленский государственный университет
- ↑ Visual Basic Express Edition
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190
Литература
- Patrick Mendelson, T. R. G. Green and Paul Brna Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // Psychology of Programming / M. Hoc, T.R.G. Green, R. Samurçay and D.J. Gilmore (eds.). — Academic Press, 1990. — P. 175-200. — ISBN 0-12-350772-3
Ссылки
dic.academic.ru
Структура и содержание первой
Отечественной программы учебного
Предмета оивт. Учебный алгоритмический
Язык а. П. Ершова
В основу разработки первой программы школьного курса «Основы информатики и вычислительной техники» (1985) были положены три базовых понятия: информация, алгоритм, ЭВМ [23]. Эти понятия и составили концептуальную основу первой версии содержания школьного предмета информатики, именно этой системой понятий определялся обязательный для усвоения учащимися объем теоретической подготовки.
Содержание обучения складывалось на основе фундаментальных компонентов алгоритмической культуры и далее компьютерной грамотности учащихся (см. подраздел 3.2) и определялось через задачи нового школьного курса следующим образом [23, с. 5-6]:
• систематизация и завершение алгоритмической линии курса алгебры восьмилетней школы;
• овладение основными умениями алгоритмизации;
• формирование представлений о возможности автоматизации выполнения алгоритма;
• усиление прикладной и политехнической направленности алгоритмической линии, заключающееся в конкретной реализации алгоритмов решения задач с помощью ЭВМ;
• ознакомление с основами современной вычислительной техники на примере рассмотрения общих принципов работы микрокомпьютера;
• формирование представления об этапах решения задачи на ЭВМ;
• ознакомление с основными сферами применения вычислительной техники, ее ролью в развитии общества.
Курс ОИВТ ставился в двух старших классах средней школы (по действующему в то время учебному плану — IX и X кл.). В IX кл. на изучение курса отводилось 34 часа (1 час в неделю). В X кл. в зависимости от возможности организации практической работы школьников на ЭВМ объем и содержание курса дифференцировались на два варианта — полный и краткий:
— полный курс (68 часов) — для школ, располагающих вычислительными машинами или имеющих возможность организовать систематические занятия школьников на ВЦ других организаций;
— краткий курс (34 часа) — для школ, не имеющих такой возможности.
Теоретическая часть курса для X кл. — единая для обоих вариантов, отличие только в объеме и содержании практической части. Для школ, имеющих доступ к ЭВМ, дополнительные 34 часа рекомендовалось использовать для решения на ЭВМ различных задач, отработки навыков применения компьютера и его программного обеспечения. При определении содержания курса остается важным вопрос о последовательности изучения его тем. Две эти задачи (определения содержания обучения и построение оптимальной последовательности изучения, соответствующей логике науки и уровню развития учащихся) тесно взаимосвязаны. Основное содержание школьного курса ОИВТ в соответствии с программой [23] складывалось из следующих тем:
IX класс
(1 ч в неделю, всего 34 ч)
1. Введение — 2ч.
2. Алгоритмы. Алгоритмический язык — 6ч.
3. Алгоритмы работы с величинами — 10 ч.
4. Построение алгоритмов для решения задач — 16ч.
X класс
(1 ч в неделю, всего 34 ч)
5. Принципы устройства и работы ЭВМ — 12 ч.
6. Знакомство с программированием — 16 ч.
7. Роль ЭВМ в современном обществе. Перспективы развития вычислительной техники — 2ч.
8. Экскурсии на вычислительный центр — 4ч.
Подробный логико-дидактический анализ всех тем первой версии курса ОИВТ приведен в двух первых (соответственно, по первой и второй частям курса) специально составленных книгах для учителя [8, 9], в которых подробно разъяснялись новые для школьных учителей разделы учебного материала и методические особенности его преподавания.
В результате изучения первой части курса учащийся должен был получить представления об информатике как науке о методах и средствах решения задач на ЭВМ, взаимосвязи информатики и вычислительной техники. Важнейшее понятие первой части курса — понятие алгоритма, важнейшее умение — представить решение задачи в виде алгоритма и записать его на алгоритмическом языке. В связи с этим учащийся должен был понимать сущность алгоритма, знать его свойства, правила записи основных конструкций алгоритмического языка, типы величин, уметь проследить безмашинный процесс исполнения алгоритмов, используя так называемую таблицу значений, как способ наглядного фиксирования шагов алгоритма. В результате изучения последней темы первой части курса (построение алгоритмов для решения задач) учащиеся знакомились с этапами решения задач на ЭВМ, что позволяло дать первое представление о компьютерном подходе к решению практических задач.
Содержание второй части курса развивает и обогащает понятия, введенные на первом году обучения информатике, закладывает научные основы для формирования всех основных компонентов компьютерной грамотности учащихся. Получают дальнейшее развитие приобретенные в первой части курса первоначальные сведения об устройстве ЭВМ, раскрывается принцип программного управления работой ЭВМ, организации автоматического исполнения программы. Вместе с тем центральное место во второй части курса занимал раздел программирования, при изучении которого завершалось формирование знаний учащихся об основных алгоритмических структурах, умений применять эти знания для построения алгоритмов решения задач. С этой целью вводятся новые (по сравнению с первой частью курса) конструкции алгоритмического языка: команда выбора, цикл с параметром, алгоритм вычисления значений функций и операции работы с текстами. Кроме того, дается краткое изложение начальных сведений о языке программирования, что в условиях хотя бы эпизодического доступа учащихся к ЭВМ позволяло бы практически показывать процесс исполнения программы.
Завершающий раздел курса — знакомство учащихся с основными областями применения ЭВМ, формирование хотя бы начальных представлений о компьютерах, как о средстве повышения эффективности деятельности человека. При отсутствии в школе кабинета вычислительной техники главная роль при изучении этой темы принадлежала экскурсии на предприятия или учреждения, использующие ЭВМ.
Основным средством описания алгоритмов, заложенным в самой программе курса ОИВТ [23] и последовательно используемом в обеих частях пробного учебного пособия для учащихся [21, 22] является специально разработанный под руководством А. П. Ершова учебный алгоритмический язык. Теперь, по прошествии уже достаточно большого времени можно уверенно сказать, что приобретенная этим языком с самого начала его использования репутация наилучшего средства обучения основам алгоритмизации в «безмашинном варианте» полностью подтвердилась. Обладая определенной свободой записей (в нем нет на начальной стадии применения строгих и формальных правил нотации), учебный алгоритмический язык позволяет, тем не менее, познакомиться со всеми основными понятиями и методами алгоритмизации. Кроме того, он обладает целым рядом привлекательных свойств, которые и объясняют, почему при выборе дидактического средства для записи алгоритмов в курсе информатики именно этому языку было отдано предпочтение перед широко распространенными в то время официальными языками программирования (например, Бейсиком):
1. Русская (или национальная) лексика. Служебные слова языка пишутся на русском (или родном) языке и понятны школьнику. В то время как иностранные слова (равно как и аббревиатуры, составленные на основе иноязычных слов), принятые для обозначения конструкций в распространенных языках программирования, создают при изучении (особенно при первоначальном изучении) дополнительные трудности, не имеющие никакого отношения к сути предмета.
2. Структурность. Учебный алгоритмический язык (в отличие, скажем от того же Бейсика, использующего построчную алгоритмическую нотацию) построен на куда более современных идеях структурного программирования. Внутренняя структурная единица алгоритмического языка — составная команда — обеспечивает единство структуры алгоритма и его записи, что наилучшим образом соответствует операционному мышлению человека.
3. Независимость от ЭВМ. В алгоритмическом языке нет деталей, связанных с устройством машины, что позволяет сосредоточить внимание на алгоритмической сути решаемых задач.
При введении курса ОИВТ в школу программа этого предмета, на основе которой писались пробные учебные пособия, сами эти пособия, как и выбранная для размещения в школьном учебном плане позиция для курса ОИВТ (два завершающих года обучения в школе) — все это подвергалось резкой, иногда просто уничижительной критике. Одна из главных мишеней для критики — это относительная избыточность алгоритмизации и программирования (действительно, на непосредственно связанные с программированием разделы 2, 3, 4 и 6 программы в явном виде выделялось 48 часов из 68). Объяснение здесь простое: при составлении программы принимался во внимание не столько научно-методический анализ соответствующих тому времени требований к общеобразовательной подготовке школьников в области информатики, сколько реальное состояние отечественной практики в этой области, реальные возможности оснащения школ материально-технической базой, реальное состояние готовности учительских кадров. Этим объяснялось многое: и то, что вопреки желанию самих разработчиков первой программы она умышленно ориентировалась на «безмашинный» вариант обучения, и то, что вместо широкой подготовки к жизни и деятельности в современном информационном обществе она едва ли не подавляющую часть учебного времени отводила на алгоритмизацию и программирование, через которые в первой программе преимущественно и рассматривалась общеобразовательная функция предмета информатики.
studfiles.net
Проблемы выбора языка программирования в школьном курсе информатики
Мнения о том, какой язык программирования лучше преподавать в школе, разнятся: от того, что программирование изучать не нужно, а следует просто поднимать компьютерную грамотность и осваивать офисные программы (как Западе), до того, что нужно изучать операционные системы и несколько языков программирования с различными парадигмами. Это крайние случаи, но золотую середину найти непросто. В первую очередь, нужно определить цель. Научить школьников логически и алгоритмически мыслить? Познакомить с компьютерами на бытовом уровне, чтобы школьники умели пользоваться Интернетом, электронной почтой, текстовым графическим редакторами? Заложить базовые знания, необходимые для будущих инженеров, математиков, физиков и специалистов по информационным технологиям? А может, нужно каждого школьника познакомить с программированием как явлением, чтобы он представлял потенциал компьютерных систем? Много ли школьников станет программистами? Немного. Безусловно, в науке о программировании есть фундаментальная составляющая, но определить её непросто. Некоторые считают, что не так важно, какой язык программирования взять: на уроках информатики нужно учить не языку программирования, а методам программирования и системному подходу решения задач. Нужно развивать алгоритмическое мышление и на примерах знакомиться с принципами построения современных компьютерных систем.
Неужели действительно не так важно, какая среда и какой конкретный язык программирования будет использован для практических занятий? У каждого преподавателя есть свой список требований к учебному языку программирования. Набор требований может быть, например, таким: простой, интуитивный синтаксис, наличие высокоуровневых инструментов для обнаружения и недопущения ошибок и для отладки программ, наличие качественной документации с примерами, наличие дружелюбной среды разработки, кроссплатформенность (наличие версий под различные платформы), …
С одной стороны, школьная программа не предполагает подготовку специалистов и базовые понятия алгоритмизации можно традиционно давать на Паскале. Для школы нет особой разницы, какой именно язык учить, база у всех языков идентична, надстройку над базой дают уже в профильных учебных заведениях. Ученику достаточно знать набор базовых понятий бинарной логики, условий, циклов и т. п. а они присутствуют практически в любом языке программирования. Проблема кроется в том, что в школе стоит задача ознакомить с тем, что такое программирование и дать примерное представление о том, как это делается.
С другой стороны IT-технологии развиваются очень быстро, появляются новые платформы, языки программирования (Java, C#, Python…), технологии. Современному программисту приходится постоянно «держать руку на пульсе». Именно поэтому программу обучения школьников программированию нужно тщательно продумывать со взглядом в будущее.
Подходы к программированию в частности и информационным технологиям, в общем, постоянно изменяются, но что-то остается неизменным. Эту базу необходимо передавать учащимся, в первую очередь, чтобы школьники учились самостоятельно искать нужный материал и изучать его. Нужно учить базовые вещи, которые будут востребованы всегда, независимо от технологий.
В программировании есть несколько парадигм, подходов к созданию программ: модульная парадигма, процедурные парадигма, объектно-ориентированная парадигма. В школах обычно преподают процедурный подход к программированию, в то время как ООП (объектно-ориентированное программирование) — очень редко или никогда.
Выбор языка и системы программирования имеет принципиальное значение, т. к. от этого во многом зависит методика изучения курса, содержание и последовательность предъявления учебного материала, система учебных заданий и, главное, вся дальнейшая работа по овладению программированием для решения реальных практических задач на компьютере. От этого выбора напрямую зависит доступность восприятия, изучения и овладения учащимся приемами и методами программирования.
Какие из современных используемых на практике языков годятся на роль первого языка? Наверное, это императивный, строго типизированный, со статической типизацией и строгой семантикой язык. Turbo-Pascal всему этому соответствует, но он уже почти мертв.
В последнее время наметилась явная тенденция перехода обучения от алгоритмических к объектно-ориентированным языкам с использованием визуальных систем программирования (Delphi, Visual Basic, Visual C++ и т. д.). Прежде всего, программирование подразумевает написание программы, а что для учащегося означает «программа»? Ответ очевиден, программа — это то, с чем он работает на компьютере каждый день, например, текстовый процессор или Интернет- обозреватель. Т. е. для ученика программа — это приложение с графическим оконно-кнопочным интерфейсом. Значит, программа, которую он будет составлять должна быть такой же. И здесь визуальные среды программирования дают широкие возможности ученику в реализации такого приложения. Старый добрый Turbo-Pascal тоже хорош для изучения принципов программирования, но его терминальный интерфейс плохо воспринимается современными школьниками.
Так как объектно-ориентированное программирование (ООП) — это основа всех современных языков программирования, то его необходимо начинать изучать ещё в школе, чтобы учащиеся, придя в высшие учебные заведения, уже имели правильное представление о программировании. Такое утверждение очевидно не является бесспорным, так как для большинства учащихся их дальнейшее образование не связано с разработкой IT технологий.
Первый язык программирования должен быть требовательным к ученику. Необходимо, чтобы ученик имел чёткое представление о том, что его программа делает на каждом шаге, и уметь записывать алгоритмы на строгом формальном языке, без лишних “вольностей”. Первый язык должен быть cтрого типизированным, ибо смешение целых чисел, вещественных чисел и текстовых переменных приводит у начинающих программистов к неправильному представлению о методах хранения данных в памяти компьютера. Чем больше сообщений об ошибках ученики увидят от компилятора, и чем больше из этих сообщений они поймут, тем больше фундаментальных знаний о программировании они получат. Паскаль — неплохой язык в этом смысле. Но этот язык редко применяется на практике, и специалист по Паскалю оказывается мало востребованным на рынке труда.
Вероятно, в этом заключается основная “неудовлетворенность” учащихся, которые решили совершенствоваться в программировании. Для реальной работы им приходится учить более популярный язык (Java, C/C++, PHP, Python и т. д.). Однако использование Си в качестве начального языка программирования имеет ряд проблем: в нём много отпугивающих конструкций даже для интересующихся программированием учащихся. С другой стороны, никто не заставляет учителей показывать все глубины Си. С ним можно работать на том же уровне, что и с Паскалем, используя соответствующие конструкции.
Одним из лучших языков программирования для старта считался и считается Pascal, так как он был придуман специально для обучения основам программирования. Но есть «но»: язык устарел, его никто из компаний не использует в коммерческих целях. Можно, конечно, начать изучение программирования с Pascal, но после основ всем придётся учить новый язык, с другим синтаксисом, с новыми правилами. Паскаль даёт свои плюсы в обучении и, возможно, даже стоит самые основные понятия показать на Паскале. Но нет смысла обучать всему «от и до» на языке Pascal и его библиотеки. Лучше это время потратить на изучение языков и технологий, которые сейчас используются и будут использоваться ближайшие 10–20 лет.
Паскаль — это тот самый инструмент (более упрощённый, чем С), который научит, как вообще нужно «идеологически» подходить к программированию. Почему сначала нужно объявлять типы переменных, что операция присваивания значения и логическое равенство — это разные вещи. Когда делаешь элементарные ошибки в Паскале, то программа не будет работать. Это чисто обучающая база. Существуют альтернативы для Turbo Pascal, которые можно использовать в учебном процессе.
FreePascal — бесплатный компилятор Паскаля, отвечающий современным требованиям и обладающий средой разработки один в один похожей на Turbo Pascal, что делает возможным использования большей части методической литературы, написанной для последнего. Работает под Windows и Linux. Рекомендуется как самый простой способ замены Turbo Pascal. Отсутствуют проблемы с лицензией.
PascalABC — удобная среда разработки, работающая под Windows. С 2007 года разрабатывается версия PascalABC.net — та же среда, но написанная с использованием технологии.NET. Система создавалась на факультете математики, механики и компьютерных наук ЮФУ как учебная среда программирования. С лицензией проблем нет.
Lazarus — среда разработки, использующая компилятор FreePascal, но при этом поддерживающая разработку современных оконных приложений. Позиционируется как, совместимая с Delphi, но учебный материал, написанный для последней, применим не всегда. Интерфейс более сложен по сравнению с IDE FreePascal. Рекомендуется использовать при достаточной квалификации преподавателя.
Использование Turbo/Free Pascal в процессе обучения программированию — это почти идеальный вариант для обучения алгоритмам, без понимания которых дальше лучше не программировать (и не имеет значения дальнейшая специализация — будет ли человек работать на ассемблере под микроконтроллеры, или посвятит себя разработке софта на языках высокого уровня с применением современных парадигм).
Выбор современных систем визуального проектирования (Delphi, Lazarus, Visual Studio и т. д.) на начальном этапе обучения программирования вызывает ряд проблем. При создании проекта система автоматически генерирует большой объем кода, связанный с работой визуальных компонентов и не относящийся к решению поставленной задачи. Всё сразу объектно-ориентированное, а ученику, для начала бы, разобратьсяс циклами, массивами, условными операторами…
На сегодняшний день наиболее удачным выбором, скорее всего, был бы Питон (Python) + приличная IDE (Eclipse или PyCharm), с тестированием приложений во встроенной консоли. Питон был создан более 20 лет назад и по сей день используется и в обучении основам программирования, и в коммерческих целях. На нем можно разрабатывать серверные и клиентские программы, сайты и веб сервисы, мобильные приложения и программировать роботов. Самое главное, что на рынке труда Python-программисты получают широкую востребованность, и она будет расти еще много лет, ведь язык Python используют крупные корпорации в своих коммерческих проектах.
Python — это полноценный язык программирования высокого уровня. Он поддерживает целый ряд парадигм: модульная парадигма, процедурная парадигма, объектно-ориентированная парадигма, функциональная парадигма. Немаловажно, что Python распространяется свободно на основании лицензии подобной GNU General Public License.
Программа на Питоне зачастую не требует изменений для запуска ее на другой операционной системе. Программы успешно работают как под Linux, так и под Windows. Питон является интерпретируемым языком. Это очень хорошо, так как можно пробовать идеи «на ходу», без ввода ненужного кода. Python характеризуется ясным синтаксисом. Читать код на этом языке программирования достаточно легко, т. к. в нем мало вспомогательных элементов, а правила языка заставляют программистов делать отступы. Понятно, что хорошо оформленный текст с малым количеством отвлекающих элементов читать и понимать легче.
Питон относится к языкам с динамической типизацией. В этом случае нагрузка на программиста меньше ввиду того, что теперь не надо самостоятельно следить за типами данных. Иногда это приводит к трудноотлавливаемым ошибкам (это является существенным недостатком на начальном этапе изучения программирования), но в основном достаточно хорошо помогает писать код. Паскаль или Си относятся к языкам с статической типизацией и начинающему программисту самому приходиться следить за типами данных.
Питон относится к языкам с практическим отсутствием программной «магии». Исключения составляют только метаклассы, но до них нужно дорасти. А это минимум 2–3 года изучения. Питон обладает большим количеством готовых решений и библиотек. Большая часть из них бесплатна.
В ряде школ проводят интересные эксперименты по преподаванию программирования на базе языка Python. Отзывы учителей и школьников очень положительные. За рубежом накоплен большой опыт в преподавании информатики в школах и колледжах с практикой программирования на самых разных языках, в частности и на Python. Конечно переход в школьной информатике на “новый” язык программирования Python связан целым рядом трудностей, в первую очередь отсутствие учебно-методического материала и необходимости самостоятельно изучать особенности языковых конструкций.
Не смотря на то, что в учебниках по информатике есть только один язык программирования Pascal и всё примеры приводятся на нём, наблюдается общая тенденция перехода на Python преподавателей информатики для обучения основам программирования. И всё больше и больше появляется олимпиад, которые предоставляют возможность решать задачи на Python.
Многие преподаватели заявляют, что не важно, какому языку обучать, главное — чтобы ученик разбирался в алгоритмах. Это правда, но только отчасти. Изучение алгоритмистики, умение читать и составлять качественные алгоритмы — это основы основ. Понимая азы программирования, и разбираясь в синтаксисе одного языка, можно разобраться в синтаксисе другого языка. Но есть языки с отличными синтаксисами, собственными конструкциями, которых нет в других языках. В результате может получиться так, что понимание алгоритма есть, а синтаксис без справочника прочитать сложно или невозможно.
Нет необходимости знакомить учащихся со всеми тонкостями и техническими подробностями языка программирования. Необходимые детали он сможет узнать сам, если его научат пользоваться документацией. Гораздо важнее познакомить учащегося с различными парадигмами программирования. Но при этом есть опасность того, что учащиеся столкнутся с большими трудностями в написании программы для решения конкретной задачи. Мнений очень много, и нельзя ничего здесь категорично заявлять.
Важно, чтобы учитель информатики не забывал о главном — что цель не изучить конкретный язык программирования, а развивать алгоритмическое мышление, знакомить с разными стилями мышления и методами, которые применимы при решении различных задач. Одним из вариантов такого подхода является знакомство (без детального изучения) с несколькими языками программирования. Достаточно вместе с классом разобрать несколько простых классических алгоритмических задач.
Литература:
- Лапчик М. П., Семакин И. Г., Хеннер Е. Г. Методика преподавания информатики: Учебное пособие для студентов педвузов — М.: Издательский центр “Академия”, 2003–624 с.
- Захарова И. Г. Информационные технологии в образовании: Учебное пособие для студ. высш. учеб. заведений — М.: Издательский центр “Академия”, 2005–192 с.
- Угринович Н. Д. Информатика и ИКТ. Профильный уровень: учебник для 10 класса / 9-е изд., испр. и доп. — М.: БИНОМ, Лаборатория знаний. 2012. — 295с.
- Поляков К. Ю. Информатика. Углубленный уровень: учебник для 10 класса: в 2ч. Ч. 2 — М.: БИНОМ, Лаборатория знаний. 2013. — 304 с.
- Поляков К. Ю. Информатика. Углубленный уровень: учебник для 11 класса: в 2ч. Ч. 2 — М.: БИНОМ, Лаборатория знаний. 2013. — 304 с.
- Авдошин С. М., Ахметсафина Р. З., Максименкова О. В. Информатика и ИКТTU”Учебно-справочные материалы. М.: СПб.: Просвещение. 2012.-252с.
moluch.ru
Контрольные вопросы и задания 34 (3) — Контрольные вопросы
С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
Какие отечественные языки программирования были специально разработаны для учебных целей? (80)
А. Альфа. Б. Бета. В. Гамма. Г. Алгол 60. Д. Рапира. Е. Лого. Ж. Кумир.
Почему не во всех школьных учебниках информатики приводится строгое определение алгоритма? (100)
Какие типы задач следует рассматривать при изучении понятия алгоритма? (100)
Что такое «учебный исполнитель»? (80)А. Робот. Б. Компьютер. В. Исполнитель, работающий под управлением ученика. Г. Исполнитель, удовлетворяющий ряду условий.
Приведите примеры учебных исполнителей, описанных в учебниках и задачниках по информатике. (80)Кукарача, Муравей, Кенгуренок, Черепашка, Чертежник, Магнитофон, Робот.
Для каких целей используют на уроках информатики блок-схемы?(60)
В какой методической последовательности следует изучать понятие величины и ее свойств?(100)
Какие методические проблемы возникают при изучении понятий «переменная» и «присваивание»? как их разрешать? (100)
Почему при обучении программированию следует изучать архитектуру ЭВМ?(80)
В каком объеме следует изучать программирование в базовом курсе информатики?(80)
Какие языки программирования наиболее подходят для вводного курса по программированию? (70)
На каких примерах и аналогиях следует объяснять ученикам разницу между языками программирования и системами программирования?(80)
53. Как со временем менялось содержание линии «Ин-формационные технологии» в школьной информати-
ке?(80)
Чем в принципе должно отличаться преподавание информационных технологий в базовом курсе информатики от их изучения в рамках образовательной области « Технология»? (80)
Какие базовые технологические навыки получают ученики при освоении текстового редактора? (80)
Какие вопросы, изучаемые в базовом курсе информатики относятся к теоретическим основам компьютерной графики?(80)
Какие практические навыки должны получить ученики при изучении компьютерной графики в базовом курсе информатики?(80)
Какие методические преимущества имеет применение локальной сети в учебном процессе по сравнению с набором отдельных компьютеров? (80)
Разделы 3 и 4. Методика преподавания профильных курсов информатики.
Методика преподавания информатики в начальной
школе.
Методические указания по проведению контрольной работы
Вопросы и варианты заданий предназначены для проверки знаний и умений студентов по указанным темам, а также знания по педагогической психологии. Проверяемые умения: анализ содержания обучения и программ профильных курсов по информатике и ИКТ; выбор методов и средств обучения. Варианты контрольной работы содержат по 5 вопросов, одна часть которых с выбором ответов, а другая — предусматривает свободное конструирование ответа.
Контрольные вопросы
Для какой цели в учебный план школы включены профильные курсы по информатике?
Когда целесообразно начинать изучение школьниками профильных курсов?
Какое название имеют два типа профильных курсов по информатике в старших классах?
Какие методические подходы имеют место при определении содержания образования для учащихся-пользователей персонального компьютера?
Какие методические приемы и аналогии следует использовать при объяснении устройства и работы глобальной сети?
Какие методические приемы и аналогии следует использовать при объяснении технологии «сервер-клиент»?
Какие практические задачи можно предлагать учащимся для работы в Интернете?
С какими элементами теории баз данных следует знакомить учащихся в базовом курсе информатики?
Какие языки программирования рекомендуется изучать в профильных курсах, ориентированных на программирование?
A. Алгол и Фортран.
Б. Бейсик и Ассемблер.
B. Паскаль и Рапира.Г. Бейсик и Паскаль.A.Visual Basic.
Е. Пролог.
Ж. Турбо Паскаль.
Какие типовые конструкции алгоритмов следует изучать в профильных курсах, ориентированных на программирование?
Что должно быть содержанием образования в профильных курсах, ориентированных на информационные технологии?
Перечислите названия информационных технологий, которые следует изучать с учащимися?
Какие типы задач для электронных таблиц можно предлагать учащимся в профильном курсе?
Какие методические приемы следует использовать при объяснении смысла относительной адресации в электронных таблицах?
На каких школьных предметах, кроме информатики, ученики могут использовать электронные таблицы?
Какие аналогии следует использовать при изучении протокола передачи сообщений электронной почты?
С какого класса целесообразно начинать изучение информатики?
Каковы цели и задачи обучения информатике младших школьников?
Каковы особенности преподавания информатики в начальной школе?
Для чего нужна пропедевтика основ информатики в начальной школе?
Какие основные понятия информатики следует изучать с учащимися младших классов?
Что должно быть содержанием обучения по информатике для младших школьников?
Каким образом вводят единицы измерения информации в школьном курсе информатики?
Опишите особенности работы на компьютере младших школьников.
Требования к обучающим программам для младших школьников.
Приведите дидактические требования к развивающим компьютерным играм для младших школьников.
Сколько часов в неделю в базисном учебном плане школы выделено на изучение информатики в начальных классах?
Опишите психологические особенности обучения информатике младших школьников.
Сколько времени допускается непрерывная работа на компьютере для учащихся 2 — 4 классов?
А. 10 минут. Б. 15 минут. В. 20 минут. Г. 25 минут. Д. 30 минут.
30. Какие типы программ входят в пакет «Роботландия»?
31. В каких целях можно использовать на занятиях пакет программ «Роботландия»?
Раздел 5. Методика преподавания математики с применением информационных технологий
Методические указания к проведению работы
Работа по данному разделу предусматривает проверку знаний и умений студентов по методике преподавания математики с применением информационных технологий. Проверяются умения осуществлять межпредметные связи в преподавании математики и информатики, отбору соответствующего учебного материала по математике, которому можно успешно обучать с использованием информационных технологий. Проверяются также практические навыки работы с распространенными прикладными математическими пакетами программ.
Все варианты заданий содержат вопросы, требующие свободного конструирования ответов.
Контрольные вопросы к тесту
Какие методические подходы имеют место при отборе содержания курса школьной математики с применением информационных технологий?
Какие прикладные программы математического профиля целесообразно использовать на уроках математики в школе?
Какие информационные ресурсы Интернет можно рекомендовать учащимся при изучении математики?
Приведите примеры математических задач, которые целесообразно решать с помощью компьютера. Обоснуйте их выбор.
Какие математические задачи с применением информационных технологий вы решали на практике в школе?
Каковым должен быть объем практических умений и навыков, необходимый для решения математических задач с помощью компьютера в младших классах?
Каковым должен быть объем практических умений и навыков, необходимый для решения математических задач с помощью компьютера в средних классах?
Каковым должен быть объем практических умений и навыков, необходимый для решения математических задач с помощью компьютера в старших классах?
Какие программные средства офисного пакета можно использовать при обучении школьников геометрии.
При решении какого класса задач можно использовать систему программирования Mathematica?
При решении какого класса задач можно использовать систему программирования Maple 6?
При решении какого класса задач можно использовать систему программирования Matlab?
При решении какого класса школьных задач по математике можно использовать программы, записанные на Бейсике?
При решении какого класса школьных задач по математике можно использовать программы, записанные на Паскале?
Какие компьютерные программы целесообразно использовать для выпуска школьных математических газет?
Приведите названия программ, предназначенных для математических вычислений и работы с математическими задачами.
Какой класс школьных математических задач можно решать с помощью программы MS Excel?
В каком классе на уроках математики можно предлагать учащимся решать задачи на расчет стоимости израсходованной электроэнергии с помощью программы MS Excel?
Дидактические особенности проведения занятий по математике с применением компьютеров.
Психологические особенности проведения занятий по математике с применением компьютеров
Приведите названия известных вам обучающих и контролирующих программ по математике.
Дидактическая характеристика обучающей программы по математике для учащихся старших классов фирмы 1С.
23. Дидактическая характеристика пакета развивающихигр для младших школьников «Суперинтеллект».
Ответы
Раздел 1. Общие вопросы методики
Вариант 1
Научная, техническая, технологическая дисциплина, сбор, хранение, обработка, передача, представление, данных, информации, компьютерная техника. Концепция управления. Общие законы движения информации. Кибернетические принципы.
В. С 1 сентября 1985 года.
Понятие об алгоритме, его свойствах, средствах и методах описания алгоритмов, программе как форме представления алгоритма для ЭВМ; основы программирования на одном из языков; практические навыки обращения с ЭВМ; принцип действия и устройство ЭВМ; применение и роль компьютеров.
В. 3.
Первый этап (1-6 кл.) — пропедевтический: знакомство с компьютером, формирование элементов информационной культуры при использовании учебных игровых программ, тренажеров на уроках математики, русского языка и других предметов. Второй этап (7-9 кл.) — базовый курс -обязательный общеобразовательный минимум подготовки по информатике: овладение методами и средствами информационных технологий, формирование навыков использования компьютеров в учебной, а затем профессиональной деятельности. Третий этап (1011 кл.) — продолжение образования как профильного обучения, дифференцированного по объему и
содержанию в зависимости от интересов и направленности допрофессиональной подготовки.
А. Б. В. Г. Д. Е. Ж.
Вводный, периодический.
uchebana5.ru
Раздел 2. Методика преподавания базового курса информатики
Методические указания к проведению контрольной ра боты.
Вопрос задания выделен синим цветом. В скобках приведен максимальный бал для оценки данного вопроса (исходя из 100 балльной шкалы). Оценка правильности выполнения заданий должна проводится с использовани ем ключей ответов или ключевых слов, которые приве дены после текста вопроса и выделены синим цветом. Ключевые слова должны обязательно присутствовать в тексте ответа. Порядок расположения в ответе клю чевых слов не обязательно должен следовать приведен ному, но, тем не менее, располагаться в соответствии принятой логической последовательности ответа.
Варианты заданий включают по 5 вопросов. Вари анты неравноценны в смысле суммы весов вопросов, по этому преподавателю после проверки следует провести нормировку набранной суммы баллов на 500, что необхо димо для проведения процедуры выведения полученной отметки и сравнения с ответами других студентов и в целом всей группы.
Примерные нормы оценивания результатов вы полнения контрольной работы и набранных баллов по сле процедуры нормировки:
450–500баллов – отлично400–449баллов – хорошо
300–399баллов – удовлетворительно менее 300 баллов – неудовлетворительно
Список вопросов
1.Каково назначение базового курса информатики? (100)
460
2.Каким образом понимается общедоступность базового курса информатики? (8
3.Приведите названия содержательных линий базового курса информатики. (100)
4.Какие вопросы рассматриваются в содержательной ли нии «информация и информационные процессы»? (100)
5.Опишите методические подходы к определению поня тия информации. (100)
6.В чем, на ваш взгляд, состоит проблема определения понятия информации? (90)
7.Объясните методический смысл введения понятия «информативность сообщения». (80)
8.Перечислите методические подходы к определению единиц измерения информации. (50)
9.Опишите содержательный подход к измерению ин формации.(100)
10.Приведите примеры объяснения школьникам содер жательного подхода к измерению информации.(80)
11.Опишите кибернетический подход к измерению ин формации.(100)
12.Какие вопросы изучаются по теме «Процесс хранения информации»? (50)
13.Какие вопросы изучаются по теме «Процесс обработки информации»?(50)
14.Какие вопросы изучаются по теме «Процесс передачи информации»? (50)
15.Приведите примеры, иллюстрирующие следующие по нятия: носитель информации, хранилище информации, передача информации, шум и защита от шума.(50)
16.Расположите в порядке возрастания информационной емкости следующие носители информации: ОЗУ, ПЗУ,
461
регистры процессора, магнитная лента, магнитный диск, лазерный диск. (50) ПЗУ, регистры процессора, магнитная лента, ОЗУ, лазерный диск, магнитный диск.
17.Можно ли говорить учащимся, что компьютер может работать с любой информацией, с которой имеет дело человек? (30)
18.Как объяснить учащимся смысл терминов «фиксиро ванная точка» и «плавающая точка»? (80)
19.Какие основные принципы организации таблиц сим вольной кодировки следует объяснить ученикам.(80)
20.Предложите аналогии, поясняющие учащимся принцип растрового и векторного представления изображе ний.(70)
21.Предложите рисунок, схему или чертеж, поясняющий смысл процесса дискретизации для представления зву ка в памяти компьютера. (70)
22.Перечислите обязательный минимальный набор све дений, которые должны знать учащиеся об устройстве компьютера.(60)
23.Каково назначение моделей учебных компьюте ров?(60)
24.Приведите названия моделей учебных компьютеров, описанных в методической литературе. (30)
25.Какие общие сведения об архитектуре компьютера должны получить учащиеся, независимо от типа ис пользуемого в обучении персонального компьютера? (80)
26.С какими основными свойствами операционных систем должны быть ознакомлены учащиеся? (80)
27.Какие первоначальные сведения о системах програм мирования должны быть сообщены учащимся?(80)
462
28.Почему, на ваш взгляд, следует изучать моделирова ние в базовом курсе информатики?(80)
29.В каких учебниках информатики линия моделирования представлена ведущей? (50).
30.Какие средства программного обеспечения могут рас сматриваться при изучении моделирования в инфор матике? (50)
31.Что называют информационной моделью? (80).
32.Каким основным признакам должна удовлетворять компьютерная информационная модель? (80)
33.На каких примерах можно объяснять учащимся мо дельный характер базы данных? (50)
34.С какими методическими проблемами связано реше ние задачи проектирования базы данных? (80)
35.Какие свойства электронных таблиц делают их удоб ным инструментом для математического моделирова ния? (70)
36.Какое место может занимать язык Пролог в базовом курсе информатики? С какими содержательными линиями он может пересекаться? (80)
37.Перечислите набор понятий, входящих в обязательный минимум содержания образования по алгоритмиче ской линии. (80)
38.Почему алгоритмизация и программирование объеди нены в одну общую содержательную линию? (80)
39.С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
40.С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
41.Какие отечественные языки программирования были специально разработаны для учебных целей? (80)
463
А. Альфа. Б. Бета. В. Гамма. Г. Алгол 60. Д. Рапира. Е. Лого. Ж. Кумир.
42.Почему не во всех школьных учебниках информатики приводится строгое определение алгоритма? (100)
43.Какие типы задач следует рассматривать при изучении понятия алгоритма? (100)
44.Что такое «учебный исполнитель»? (80)А. Робот. Б. Компьютер. В. Исполнитель, работающий под управле нием ученика. Г. Исполнитель, удовлетворяющий ряду условий.
45.Приведите примеры учебных исполнителей, описан ных в учебниках и задачниках по информатике. (80)Кукарача, Муравей, Кенгуренок, Черепашка, Чертежник, Магнитофон, Робот.
46.Для каких целей используют на уроках информатики блок схемы?(60)
47.В какой методической последовательности следует изучать понятие величины и ее свойств?(100)
48.Какие методические проблемы возникают при изуче нии понятий «переменная» и «присваивание»? как их разрешать? (100)
49.Почему при обучении программированию следует изу чать архитектуру ЭВМ?(80)
50.В каком объеме следует изучать программирование в базовом курсе информатики?(80)
51.Какие языки программирования наиболее подходят для вводного курса по программированию? (70)
52.На каких примерах и аналогиях следует объяснять уче никам разницу между языками программирования и системами программирования?(80)
464
53.Как со временем менялось содержание линии «Ин формационные технологии» в школьной информати ке?(80)
54.Чем в принципе должно отличаться преподавание ин формационных технологий в базовом курсе информа тики от их изучения в рамках образовательной области «Технология»? (80)
55.Какие базовые технологические навыки получают уче ники при освоении текстового редактора? (80)
56.Какие вопросы, изучаемые в базовом курсе информа тики относятся к теоретическим основам компьютер ной графики?(80)
57.Какие практические навыки должны получить ученики при изучении компьютерной графики в базовом курсе информатики?(80)
58.Какие методические преимущества имеет применение локальной сети в учебном процессе по сравнению с набором отдельных компьютеров? (80)
465
studfiles.net
Учебный язык программирования — это… Что такое Учебный язык программирования?
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC[1] и Паскаль[2]. Из разработанного для обучения языка ABC вырос Python[3]. Популярным языком, разработанным специально для образования является LOGO[4]. Специально для российских школ разработана языковая среда КуМир[5]. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования[6].
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками.[7][8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[9].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[7].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков.[10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира.[11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[11].
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.)русск.[12]. Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования[11]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[17], Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[18].
Другие
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
- ↑ Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ The Making of Python, A Conversation with Guido van Rossum, Part I. by Bill Venners, January 13, 2003
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ 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 (англ.)русск.
- ↑ Brin, David (Sept 14, 2006). «Why Johnny can’t code». Salon Magazine. Проверено 4/12/09.
- ↑ Small Basic для начинающих
- ↑ Использование свободного программного обеспечения в образовании, Самарина А.Е., Смоленский государственный университет
- ↑ Visual Basic Express Edition
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190
Литература
- Patrick Mendelson, T. R. G. Green and Paul Brna Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // Psychology of Programming / M. Hoc, T.R.G. Green, R. Samurçay and D.J. Gilmore (eds.). — Academic Press, 1990. — P. 175-200. — ISBN 0-12-350772-3
Ссылки
Учебный язык программирования — это… Что такое Учебный язык программирования?
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC[1] и Паскаль[2]. Из разработанного для обучения языка ABC вырос Python[3]. Популярным языком, разработанным специально для образования является LOGO[4]. Специально для российских школ разработана языковая среда КуМир[5]. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования[6].
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками.[7][8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[9].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[7].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков.[10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира.[11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[11].
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.)русск.[12]. Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования[11]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[17], Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[18].
Другие
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
- ↑ Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ The Making of Python, A Conversation with Guido van Rossum, Part I. by Bill Venners, January 13, 2003
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ 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 (англ.)русск.
- ↑ Brin, David (Sept 14, 2006). «Why Johnny can’t code». Salon Magazine. Проверено 4/12/09.
- ↑ Small Basic для начинающих
- ↑ Использование свободного программного обеспечения в образовании, Самарина А.Е., Смоленский государственный университет
- ↑ Visual Basic Express Edition
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190
Литература
- Patrick Mendelson, T. R. G. Green and Paul Brna Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // Psychology of Programming / M. Hoc, T.R.G. Green, R. Samurçay and D.J. Gilmore (eds.). — Academic Press, 1990. — P. 175-200. — ISBN 0-12-350772-3
Ссылки
Учебный язык программирования — это… Что такое Учебный язык программирования?
Уче́бный язык программи́рования — язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC[1] и Паскаль[2]. Из разработанного для обучения языка ABC вырос Python[3]. Популярным языком, разработанным специально для образования является LOGO[4]. Специально для российских школ разработана языковая среда КуМир[5]. Набирает популярность созданный в Массачусетском технологическом институте язык визуального программирования Scratch и тому подобные среды программирования[6].
Требования к учебному языку программирования
Учебный язык должен обеспечивать простоту, ясность и удобочитаемость конструкций. Излишняя гибкость, «вседозволенность» синтаксиса может затруднить понимание программ. С этим связаны преимущества использования в образовательном процессе языков семейства Pascal перед Си-подобными языками.[7][8]
При выборе языка программирования не играют роль такие факторы, как его новизна, эффективность реализации (в виде компилятора или интерпретатора). Фактор распространённости имеет как психологическое значение (влияя на мотивацию учащихся), так и практическое (востребованность получаемых знаний без необходимости переучивания)[9].
Учебный язык программирования должен обеспечивать плавный переход от псевдокода к собственно программированию. Полезным в обучении может быть возможность использования национальной лексики для ключевых слов и идентификаторов[7].
Альтернативой относительно трудоёмким для изучения комплексным языкам программирования общего назначения могут составить простые миниязыки, в которых, для наглядности, имеется графический исполнитель, вроде черепашки в Лого — первом и одном из самых известных таких языков.[10]
Языки разработанные для российской школы
Для преподавания элементов программирования в рамках курсов информатики было разработан ряд учебных языков программирования с русскими ключевыми словами. В группе академика А. П. Ершова был выработан подход с изучением двух языков программирования — более простого, предназначенного в основном для управления графическим исполнителем, и более продвинутого универсального. В качестве такой пары были разработаны языки Робик и Рапира.[11] Основными российскими образовательными языками являются:
- Робик (включает ряд графических исполнителей: Муравей, Маляр и др.)
- Рапира (предназначен для изучения после Робика)
- Школьный алгоритмический язык и его реализация Е-практикум
- КуМир (современный диалект школьного алгоритмического языка, включает графические исполнители Чертёжник и Робот)
Для начального обучения программированию могут также использоваться простые языки управления графическими исполнителями, такими как Кукарача в системе Роботландия или Кенгурёнок Ру[11].
Бейсик
BASIC, англ. Beginner’s All-purpose Symbolic Instruction Code — стал в начале 60-х первым, получившем распространение языком программирования для обучения начинающих. Однако он получил резкую критику за несоответствие принципам структурного программирования и лёгкость создания спагетти-кода. Известно высказывание Эдсгера Дейкстры — «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Под влиянием этой критики создатели Бейсика Джон Кемени и Томас Курц в 1975 расширили язык структурными средствами и отказались от практики использования GOTO. В 80-х годах они создали обновлённый вариант языка, названный True BASIC (англ.)русск.[12]. Современные распространённые диалекты Бейсика (QBasic, Visual Basic) имеют microsoftовское подтверждение, однако и они имеют мало общего с прародителем, являясь вполне современными структурными языками программирования[11]. Специально для целей обучения созданы следующие диалекты Бейсика.
В школьное образование также внедряется «Visual Basic для Linux» Gambas[17], Доступна бесплатная образовательная экспресс-версия Visual Basic .NET[18].
Другие
Примечания
- ↑ Андрей Колесов. Basic — этапы большого пути Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале «Наука и жизнь» № 10/2000, с. 18—20.
- ↑ Wirth N. Recollections about the development of Pascal (HOPL II), 3.3
- ↑ The Making of Python, A Conversation with Guido van Rossum, Part I. by Bill Venners, January 13, 2003
- ↑ Язык Лого на сайте «История компьютера»
- ↑ Система программирования КуМир → Учебники
- ↑ Александр Казанцев Школа. Исполнители и алгоритмы // Linux Format. — январь 2010 г.. — № 126-127 (1).
- ↑ 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 (англ.)русск.
- ↑ Brin, David (Sept 14, 2006). «Why Johnny can’t code». Salon Magazine. Проверено 4/12/09.
- ↑ Small Basic для начинающих
- ↑ Использование свободного программного обеспечения в образовании, Самарина А.Е., Смоленский государственный университет
- ↑ Visual Basic Express Edition
- ↑ Psychology, 1990, 3. The Misconception Problem: Prolog, pp. 186-190
Литература
- Patrick Mendelson, T. R. G. Green and Paul Brna Ch. 2.5. Programming Languages in Education: The Search for an Easy Start // Psychology of Programming / M. Hoc, T.R.G. Green, R. Samurçay and D.J. Gilmore (eds.). — Academic Press, 1990. — P. 175-200. — ISBN 0-12-350772-3
Ссылки
Раздел 2. Методика преподавания базового курса информатики
Методические указания к проведению контрольной ра боты.
Вопрос задания выделен синим цветом. В скобках приведен максимальный бал для оценки данного вопроса (исходя из 100 балльной шкалы). Оценка правильности выполнения заданий должна проводится с использовани ем ключей ответов или ключевых слов, которые приве дены после текста вопроса и выделены синим цветом. Ключевые слова должны обязательно присутствовать в тексте ответа. Порядок расположения в ответе клю чевых слов не обязательно должен следовать приведен ному, но, тем не менее, располагаться в соответствии принятой логической последовательности ответа.
Варианты заданий включают по 5 вопросов. Вари анты неравноценны в смысле суммы весов вопросов, по этому преподавателю после проверки следует провести нормировку набранной суммы баллов на 500, что необхо димо для проведения процедуры выведения полученной отметки и сравнения с ответами других студентов и в целом всей группы.
Примерные нормы оценивания результатов вы полнения контрольной работы и набранных баллов по сле процедуры нормировки:
450–500 баллов – отлично 400–449 баллов – хорошо
300–399 баллов – удовлетворительно менее 300 баллов – неудовлетворительно
Список вопросов
1.Каково назначение базового курса информатики? (100)
460
2.Каким образом понимается общедоступность базового курса информатики? (8
3.Приведите названия содержательных линий базового курса информатики. (100)
4.Какие вопросы рассматриваются в содержательной ли нии «информация и информационные процессы»? (100)
5.Опишите методические подходы к определению поня тия информации. (100)
6.В чем, на ваш взгляд, состоит проблема определения понятия информации? (90)
7.Объясните методический смысл введения понятия «информативность сообщения». (80)
8.Перечислите методические подходы к определению единиц измерения информации. (50)
9.Опишите содержательный подход к измерению ин формации.(100)
10.Приведите примеры объяснения школьникам содер жательного подхода к измерению информации.(80)
11.Опишите кибернетический подход к измерению ин формации.(100)
12.Какие вопросы изучаются по теме «Процесс хранения информации»? (50)
13.Какие вопросы изучаются по теме «Процесс обработки информации»?(50)
14.Какие вопросы изучаются по теме «Процесс передачи информации»? (50)
15.Приведите примеры, иллюстрирующие следующие по нятия: носитель информации, хранилище информации, передача информации, шум и защита от шума.(50)
16.Расположите в порядке возрастания информационной емкости следующие носители информации: ОЗУ, ПЗУ,
461
регистры процессора, магнитная лента, магнитный диск, лазерный диск. (50) ПЗУ, регистры процессора, магнитная лента, ОЗУ, лазерный диск, магнитный диск.
17.Можно ли говорить учащимся, что компьютер может работать с любой информацией, с которой имеет дело человек? (30)
18.Как объяснить учащимся смысл терминов «фиксиро ванная точка» и «плавающая точка»? (80)
19.Какие основные принципы организации таблиц сим вольной кодировки следует объяснить ученикам.(80)
20.Предложите аналогии, поясняющие учащимся принцип растрового и векторного представления изображе ний.(70)
21.Предложите рисунок, схему или чертеж, поясняющий смысл процесса дискретизации для представления зву ка в памяти компьютера. (70)
22.Перечислите обязательный минимальный набор све дений, которые должны знать учащиеся об устройстве компьютера.(60)
23.Каково назначение моделей учебных компьюте ров?(60)
24.Приведите названия моделей учебных компьютеров, описанных в методической литературе. (30)
25.Какие общие сведения об архитектуре компьютера должны получить учащиеся, независимо от типа ис пользуемого в обучении персонального компьютера? (80)
26.С какими основными свойствами операционных систем должны быть ознакомлены учащиеся? (80)
27.Какие первоначальные сведения о системах програм мирования должны быть сообщены учащимся?(80)
462
28.Почему, на ваш взгляд, следует изучать моделирова ние в базовом курсе информатики?(80)
29.В каких учебниках информатики линия моделирования представлена ведущей? (50).
30.Какие средства программного обеспечения могут рас сматриваться при изучении моделирования в инфор матике? (50)
31.Что называют информационной моделью? (80).
32.Каким основным признакам должна удовлетворять компьютерная информационная модель? (80)
33.На каких примерах можно объяснять учащимся мо дельный характер базы данных? (50)
34.С какими методическими проблемами связано реше ние задачи проектирования базы данных? (80)
35.Какие свойства электронных таблиц делают их удоб ным инструментом для математического моделирова ния? (70)
36.Какое место может занимать язык Пролог в базовом курсе информатики? С какими содержательными линиями он может пересекаться? (80)
37.Перечислите набор понятий, входящих в обязательный минимум содержания образования по алгоритмиче ской линии. (80)
38.Почему алгоритмизация и программирование объеди нены в одну общую содержательную линию? (80)
39.С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
40.С какими двумя целевыми аспектами связано изучение алгоритмизации? (70)
41.Какие отечественные языки программирования были специально разработаны для учебных целей? (80)
463
А. Альфа. Б. Бета. В. Гамма. Г. Алгол 60. Д. Рапира. Е. Лого. Ж. Кумир.
42.Почему не во всех школьных учебниках информатики приводится строгое определение алгоритма? (100)
43.Какие типы задач следует рассматривать при изучении понятия алгоритма? (100)
44.Что такое «учебный исполнитель»? (80)А. Робот. Б. Компьютер. В. Исполнитель, работающий под управле нием ученика. Г. Исполнитель, удовлетворяющий ряду условий.
45.Приведите примеры учебных исполнителей, описан ных в учебниках и задачниках по информатике. (80)Кукарача, Муравей, Кенгуренок, Черепашка, Чертежник, Магнитофон, Робот.
46.Для каких целей используют на уроках информатики блок схемы?(60)
47.В какой методической последовательности следует изучать понятие величины и ее свойств?(100)
48.Какие методические проблемы возникают при изуче нии понятий «переменная» и «присваивание»? как их разрешать? (100)
49.Почему при обучении программированию следует изу чать архитектуру ЭВМ?(80)
50.В каком объеме следует изучать программирование в базовом курсе информатики?(80)
51.Какие языки программирования наиболее подходят для вводного курса по программированию? (70)
52.На каких примерах и аналогиях следует объяснять уче никам разницу между языками программирования и системами программирования?(80)
464
53.Как со временем менялось содержание линии «Ин формационные технологии» в школьной информати ке?(80)
54.Чем в принципе должно отличаться преподавание ин формационных технологий в базовом курсе информа тики от их изучения в рамках образовательной области «Технология»? (80)
55.Какие базовые технологические навыки получают уче ники при освоении текстового редактора? (80)
56.Какие вопросы, изучаемые в базовом курсе информа тики относятся к теоретическим основам компьютер ной графики?(80)
57.Какие практические навыки должны получить ученики при изучении компьютерной графики в базовом курсе информатики?(80)
58.Какие методические преимущества имеет применение локальной сети в учебном процессе по сравнению с набором отдельных компьютеров? (80)
465
Обучение программированию детей: какой язык программирования мы должны использовать?
Один из наиболее частых вопросов, которые я получаю от учителей и родителей: какой язык программирования мы должны использовать, чтобы научить детей программировать? Важно ли всегда начинать с блочных языков, таких как Scratch? В каком возрасте им следует перейти на текстовые языки? И как мне выбрать между Python, Java или JavaScript?
Я преподавал программирование сотням студентов почти 10 лет и часто выступаю на конференциях или провожу семинары для учителей, плохо знакомых с информатикой.Многие учителя впервые пытаются создать программу CS в своих школах, и понятно, почему они беспокоятся о том, какой язык программирования выбрать. Учителя не только пытаются понять, что лучше для их учеников, но и должны находить баланс между тем, что им удобно преподавать, и тем, что, по мнению администраторов, родителей и учеников, им следует изучать.
Итак, есть ли один «правильный» язык программирования для начала?
Язык кодирования не важен.Понятия программирования есть!
Как нетрудно догадаться, ответ: нет! Важен не язык, а то, как научить студентов решать проблемы с помощью кода. Понимание того, как создать алгоритм (пошаговые инструкции) для выполнения задания, и придумать лучший способ записать это в коде, вероятно, является самой сложной частью.
Языки программирования приходят и уходят, и вы будете адаптироваться.
Выучить довольно небольшое количество ключевых слов и простой синтаксис конкретного языка программирования легко — намного проще, чем выучить реальный разговорный человеческий язык! Напротив, чтобы программировать независимо, нужно понимать основные концепции программирования — например, переменные, списки, условные выражения, циклы и функции — а затем знать, когда, где и как их использовать для преобразования вашего алгоритма в код.
Как только студент усвоит эти концепции и в течение некоторого времени успешно программировал на одном языке, программировать на другом языке не так уж и сложно. Переключить язык не сразу, но можно.
Однако изменит ли этот первый язык то, как вы думаете и пишете код в будущем? Насколько важно сегодня выучить самый популярный язык в индустрии?
Языки программирования приходят и уходят, и вы будете адаптироваться.
Популярность языков программирования меняется, и нет никакой гарантии, что то, чему мы учим наших детей сегодня, будет использовано к тому времени, когда они выйдут на рынок труда.Моим первым языком программирования был Паскаль. (Да, вам, вероятно, придется поискать это сейчас.)
С годами я научился использовать разные языки на разных машинах, некоторые из которых слишком малопонятны, чтобы упоминать их. За последние 10 лет в качестве преподавателя я выучил достаточно Logo, Scratch, Processing, JavaScript, Arduino и Python, чтобы использовать его в качестве учебного языка в своих классах.
Шесть лет назад я посоветовал детям начинать с Logo, самого раннего языка обучения CS, и я все еще считаю, что он остается сильным вариантом, доступным сегодня.Вот самая важная часть: если вы можете научить детей основным концепциям программирования, и они потратили достаточно времени на кодирование на одном языке, то им следовало бы разработать основы для переключения языков позже по мере необходимости.
Часто возникает еще один вопрос: нужно ли начинать всех детей с блочных языков вместо текстовых?
Блок или текст?
Я начал использовать Scratch, возможно, самый популярный и удобный для детей блочный язык, в классе цифрового дизайна для шестиклассников почти 10 лет назад, и мне по-прежнему нравится использовать его на всех уровнях обучения.Я очень рад использовать только что выпущенные новые функции Scratch 3.0, особенно расширения для поддержки преобразования текста в речь и языкового перевода.
Блочное программирование избавляет молодых и начинающих программистов от многих разочарований, таких как пропуск запятой или закрытие скобок, и оставляет больше времени, чтобы сосредоточиться на понимании концепций. Кроме того, внимание Scratch к творчеству и легкому доступу к созданию графики, редактированию звука, совместному использованию и созданию ремиксов делает его идеальным первым языком программирования для всех возрастов.Он позиционируется как инструмент для создания иллюстраций, анимации, историй и игр, а не как язык «кодирования», брендинг, который делает Scratch более приветливым и менее устрашающим.
Важен не язык, а то, как научить студентов решать проблемы с помощью кода.
Я обнаружил, что после нескольких лет использования Scratch студенты хотят попробовать текстовое кодирование, потому что они ассоциируют его со «взрослыми» и «настоящим» кодированием, которое используется в промышленности. Я также видел, что иногда нужно просто изменить язык, чтобы рассмотреть такие концепции, как переменные и циклы.
Мои ученики средней школы готовы приложить дополнительные усилия, чтобы изучить текстовое кодирование; часто они замедляются, чтобы быть осторожными с орфографией и синтаксисом, когда решают задачу программирования на Python, JavaScript, Arduino и Processing. Но как только учащиеся могут пройти начальную часть «Я должен действительно смотреть, что я печатаю», они часто ценят гибкость и мощь текстового кодирования, особенно когда они обнаруживают, насколько проще копировать, вставлять, изменять и сотрудничать. по текстовому коду для создания проектов.
В ускоренном курсе информатики KCI Foothill College, который я преподаю каждое лето, я предлагаю учителям как Scratch, так и Python, и показываю один и тот же проект на обоих языках. Им нравится видеть параллели между двумя типами языков, и даже больше, если мы сначала начнем с «псевдокода» или блок-схемы — способа записать алгоритм перед написанием любого кода. Вот как выглядит небольшой проект, связанный с проверкой пароля, в виде блок-схемы в Scratch и Python.
Блок-схема средства проверки паролей Та же программа проверки паролей в Scratch Та же программа проверки паролей в Python
И учителя, и студенты, не знакомые с блочным программированием, легко могут изучать Python в моих классах, показывая, что с правильными проектами, начиная с текстовый язык тоже работает.
Что делает любой язык программирования хорошим языком для обучения детей программированию? Есть ли критерии, по которым можно выбрать язык?
Хотя может быть полезно знать, что обучение программированию — это больше о концепциях и что вам не нужно беспокоиться о выборе идеального первого языка, остается вопрос: что должен иметь язык, который сделает его хорошим выбором для обучения? дети кодировать? Хотя языки программирования часто оцениваются по-разному — по скорости, приложениям, доступным библиотекам, поддержке отрасли — вот несколько важных критериев, которые я принимаю во внимание.
Есть ли сильное сообщество преподавателей?
Одна из причин, по которой я всегда указываю на Scratch и Python, — это их доступ к сети преподавателей, использующих эти языки в своих классах. За ними стоят такие большие сообщества, потому что они всегда были бесплатными, открытыми и желанными для широкого круга пользователей со всего мира. Наличие большого сообщества означает, что вы можете найти больше ресурсов, таких как проекты, планы уроков, учебные пособия, видео и книги, посвященные преподаванию языка в классе.Также вероятно, что вы можете прийти на образовательную конференцию и найти сессию, которая даст вам советы.
… обучение хорошему программированию важнее преподавания популярного языка.
Легко ли забрать?
Есть много текстовых языков на выбор — некоторые более популярны сегодня в технической индустрии, чем другие, некоторые с особыми функциями, которые делают их удобными для создания конкретного проекта. Хотя многим старшеклассникам, возможно, придется в конечном итоге изучить Java для курса AP Computer Science, это не обязательно самый простой язык для начала.Python намного проще и набирает популярность в образовании, потому что он настолько прост. После трех лет использования Python в факультативных занятиях по информатике я постоянно удивляюсь, как мало нужно сделать что-то и как быстро мои ученики средней школы учатся программировать на Python. Вдохновленный тем, насколько хорошо Python работает в обучении детей программированию, я потратил время на написание книги об этом.
В чем заключается философия дизайна? Был ли он разработан для этой возрастной группы?
Важно предлагать инструменты, соответствующие возрасту, а языки программирования могут скрывать или демонстрировать функции в зависимости от целевой возрастной группы.Scratch, основанный на философии использования кода для творческого выражения, намеренно упрощает некоторые конструкции, которые можно ожидать от языка программирования. Scratch Jr. разработан для детей, которые все еще учатся читать, и не имеет переменных или условных выражений, которые могут быть слишком запутанными в их возрасте. Python предлагает расширения для поддержки многих типов проектов, но они доступны в виде модулей, которые необходимо явно добавлять, поэтому вам не нужно их видеть, пока они не понадобятся. Языки для старшеклассников, работающих над сложными программами, должны поддерживать отладку, что является фундаментальным навыком.Если обучение «объектно-ориентированному» программированию имеет решающее значение, то использование Java — неплохой выбор.
Насколько легко его установить и работает ли он на разных платформах?
Об этом следует помнить, особенно если важно, чтобы учащиеся продолжали программировать дома. Некоторые работают только в определенных средах, например, в языке программирования Apple Swift. Если учащиеся работают с Chromebook, то наличие стабильного инструмента на основе браузера имеет решающее значение. Еще одна вещь, которую следует учитывать: действительно ли язык доступен бесплатно, чтобы каждый учащийся мог использовать его дома, или есть скрытые расширения, доступные только за плату?
Насколько легко делиться проектами с сообществом?
Одной из фундаментальных идей, лежащих в основе Scratch, было сообщество, позволяющее детям делиться друг с другом и учиться друг у друга.Это сообщество полезно и для учителей. Однако совместное использование также требует планирования: когда и в какой степени вы хотите, чтобы учащиеся делились, комментировали, повторно использовали и перенаправляли проекты других. Хотя JavaScript может быть осужден как первый текстовый язык для изучения и не так прост, как Python, у него есть то преимущество, что он просто запускается в Интернете. Продемонстрировать проекты так же просто, как опубликовать их на школьном веб-сервере.
При выборе языка необходимо учитывать множество других факторов.Какие проекты возможны? У разных языков есть поддержка и расширения для разных типов проектов; например, Processing и P5.js упрощают работу с медиапроектами, а также искусство и анимацию. Python делает возможным написание сложных проектов анализа данных и даже проектов машинного обучения. Учителям также могут потребоваться мощные классные инструменты для управления заданиями и выставлением оценок, особенно для групповых проектов.
Один из наиболее частых вопросов: «Популярен ли этот язык сегодня?» Популярность, безусловно, может повлиять на выбор языка программирования, чтобы побудить студентов записаться на занятия.Понятно, что родители хотят, чтобы преподаватели учили тому, что нужно для работы. Однако обучение хорошим навыкам программирования важнее обучения популярному языку.
Хотя мы можем сделать упор на поиске «идеального» языка программирования для начала, давайте не будем забывать, что конечная цель — дать студентам возможность изучить фундаментальные концепции программирования. Они могут никогда не захотеть заниматься программированием после вашего урока, а язык, который вы преподаете, может стать устаревшим по мере взросления. Важно то, что обучение программированию поможет студентам понять, как компьютеры решают проблемы, приобрести навыки критического мышления и, надеюсь, узнать, насколько весело создавать вещи с помощью кода.
Языки программирования для образовательных ресурсов
Языки программирования для образования варьируются от графического программного обеспечения с перетаскиванием, такого как Scratch, до Small Basic и Python. На этой странице перечислены программы для программирования, предназначенные для учащихся от детского сада (Искусство черепахи) и выше. Многие из них представляют собой среды визуального программирования, в которых дети могут комбинировать блоки для создания программного обеспечения. Другие, такие как Codea, позволяют вам писать код, в данном случае с Lua. Другие языки, такие как Code Spell, Run Marco !, The Foos и World of Codecraft, обучают навыкам программирования, пока дети играют в онлайн-игру.
Основное отличие «блочных» языков от «настоящих»? Блочные языки позволяют детям создавать вещи без необходимости изучать синтаксис и другие детали. Им будет легче перейти на языки с синтаксисом, если они поймут основные концепции программирования.
Также обратите внимание, что эти языки работают для родителей, которые хотят учиться и играть со своими детьми, а также для детей, которые хотят учиться со своей скоростью.
Алиса
Алиса обучает программированию, пока дети создают анимационные фильмы с дружественным интерфейсом и повествованием.
http://www.alice.org
All Can Code (Беги, Марко!)
Обучает программированию в веселой приключенческой игре. Оригинальный рассказ с красивым оформлением, рассчитанный на 6-12 лет. kids командой экспертов в области компьютерного программирования, игрового дизайна и технологий обучения в школах. Переведено на 13 языков. Работает на планшете, телефоне, в Интернете.
http://www.allcancode.com/
http://marco.allcancode.com/
https://itunes.apple.com/us/app/run-marco!/id919554969
https: // play.google.com/store/apps/details?id=com.allcancode.runmarco
Изобретатель приложений
Это программный язык программирования для образования, позволяющий создавать приложения для Android с визуальной средой перетаскивания.
http://www.appinventor.org/
Бета Робот
http://www.betathegame.com/
Блоклы
http://code.google.com/p/blockly/
CargoBot
Сделано с помощью приложения Codea для iPad, игры для обучения концепциям программирования.
http://twolivesleft.com/CargoBot/
https://itunes.apple.com/us/app/cargo-bot/id5196
Codea (iPad)
http://twolivesleft.com/Codea/
https://itunes.apple.com/us/app/codea/id439571171?mt=8
Код Комбат
http://codecombat.com/
Codeletics Новый
http://www.codeletics.com/
http://www.codeletics.com/resources/teachersguide.pdf
Код
с болтом
Bolt — это законченный язык, который полностью (и безопасно) работает в браузере.Это язык, специально разработанный для детей, и в нем есть наработанные примеры, которые соответствуют учебной программе Великобритании для KS 2/3 и выше.
http://www.codewithbolt.com/
Динозавр Дейзи
Приложение для iPad от людей, которые приносят вам классики.
https://itunes.apple.com/us/app/daisy-the-dinosaur/id4278
Удалить всех котят (E.A.K.)
Забавная история позволяет детям легко узнать о HTML и процессе кодирования.
http: //www.eraseallkittens.com
Gamemaker Studio
Требуется немного больше усилий, но это более профессиональная система разработки игр.
https://www.yoyogames.com/studio
GameStar Mechanic
Обучает концепциям информатики, связанным с кодированием.
http://gamestarmechanic.com/
Hakitsu Elite
Это приложение для iPad обучает JavaScript с помощью игры с роботами.
http://kuatostudios.com/games/hakitzu/
https://itunes.apple.com/app/id599976903?mt=8
Классики (iPad)
http: // www.gethopscotch.com/
https://itunes.apple.com/us/app/hopscotch-hd/id617098629?mt=8
Кодабл.
Обучающая игра для iPad, в которой дети от 5 лет и старше могут познакомиться с концепциями программирования и решением задач.
http://www.surfscore.com/
Коду
Этот язык визуального программирования от Microsoft работает на ПК и XBox.
http://research.microsoft.com/en-us/projects/kodu/
LearnToMod Новый
http: //www.learntomod.com /
Light Bot
Light-bot — увлекательная игра-головоломка, которая позволяет игрокам получить практическое представление об основных концепциях потока управления, таких как процедуры, циклы и условные выражения, просто направляя робота с помощью команд, чтобы подсвечивать плитки и решать уровни.
http://light-bot.com/
ЛОГОТИП
С 1960-х годов язык, ориентированный на детей и серьезные вычисления для взрослых. Идеи воплощены в Scratch, Move the Turtle и других языках.
http: // эл.media.mit.edu/logo-foundation/products/software.html
Майнкрафт
Edu
Небольшая команда преподавателей и программистов в США и Финляндии помогает детям создавать и учиться с помощью Minecraft.
http://minecraftedu.com/
Перемещение черепахи
Это приложение для iPad обучает концепциям программирования и кодированию в очень наглядной форме.
http://movetheturtle.com/
https://itunes.apple.com/us/app/move-turtle.-programming-for/id50
78?ls=1&mt=8
Карманный код
Создавайте свои собственные игры, приложения и музыкальные клипы с помощью этого приложения для Android.
https://pocketcode.org/
https://play.google.com/store/apps/details?id=org.catrobat.catroid
Project Spark!
В Microsoft Windows и XBox дети могут играть и творить, используя инструменты Project Spark. Активное сообщество и множество руководств и учебных пособий.
http://www.projectspark.com
https://www.youtube.com/watch?v=fIJKBHhdifE#t=18
РАПТОР
RAPTOR — это среда программирования на основе блок-схем, разработанная специально для того, чтобы помочь студентам визуализировать свои алгоритмы.
http://raptor.martincarlisle.com/
Робо-логика
Это приложение для iPad использует логические блоки, позволяющие детям управлять роботом.
http://www.digitalsirup.com/apps/app_robologic.html
https://itunes.apple.com/app/robo-logic/id300025550?mt=8
РобоМинд
Дети изучают логику, информатику и робототехнику, создавая робота.
http://www.robomind.net
Скретч
http://scratch.mit.edu/
http://en.wikipedia.org / wiki / Scratch_% 28programming_language% 29
Малый базовый
От Microsoft, урезанная версия Basic для обучения программированию детей и взрослых. Включает в себя множество руководств. Для компьютеров под управлением Windows.
http://smallbasic.com/
http://visualstudiomagazine.com/articles/2011/12/01/get-em- while-theyre-young.aspx
Snap
Порт Скретча из Калифорнийского университета в Беркли.
http://snap.berkeley.edu/snapsource/snap.html
Spherly
Язык программирования для роботов Sphero, которые тоже доставляют удовольствие.
http://outreach.cs.ua.edu/spherly/
Стенцил
Использует язык визуального программирования для создания кроссплатформенных приложений практически для любой платформы. Программное обеспечение Stencyl работает на Mac, Windows и Ubuntu / Linux.
http://stencyl.com/
The Foos
Дети могут играть и получать удовольствие, изучая основы программирования, а также навыки решения проблем, критического мышления и других навыков.
http://thefoos.com/
http://thefoos.com/play/
https://itunes.apple.com / us / app / foos-code-for-hour-edition / id923441570? mt = 8 & uo = 4
https://play.google.com/store/apps/details?id=org.codespark.thefoos
http: //www.amazon.com/gp/product/B00P8G5DDU/ref=mas_pm_the_foos_code_hour
Попробуйте Ruby
http://www.tryruby.org
Toon Talk
http://www.toontalk.com/
TouchDevelop
Действительно простое в освоении и использовании программное обеспечение Microsoft для обучения детей программированию и созданию программного обеспечения. Отлично подходит для хакатонов и программирования в больших группах.
https://www.touchdevelop.com/
Черепаха Арт
Направлен на самых маленьких, маленьких детей, которые могут создавать действительно изящные произведения искусства и другие забавные вещи.
http://turtleart.org/
Академия черепах
http://www.turtleacademy.com/
Tynker
Этот язык программирования для образования представляет собой размещаемое программирование с перетаскиванием, адаптированное для обучения программированию и информатике в классе. Также есть версия учебной программы для iPad.
http://www.tynker.com/
https://itunes.apple.com/us/app/tynker-learn-programming-visual/id805869467
Водяной медведь
Waterbear — это набор инструментов, позволяющий сделать программирование более доступным и увлекательным.
http://waterbearlang.com/
Мир Codecraft
Скоро будет выпущен Wired для этого проекта из Университета штата Северная Каролина в Роли.
http://www.wired.com/wiredenterprise/2013/07/programming-game-engagement/
Верхнее изображение взято с сайта Hopscotch.
7 языков программирования для обучения детей программированию
Что нужно знать
- Языки программирования для детей могут помочь им встать на путь, который может привести к востребованной и прибыльной карьере в будущем.
- Программированию для детей можно научиться на уроках блочного стиля или путем изучения нового языка программирования.
- Компьютерное программирование для детей лучше всего преподавать с помощью игр и программирования в игровом стиле, чтобы сохранить их интерес.
Если вы хотите, чтобы ваши дети научились программировать, с чего вам начать? Попробуйте использовать несколько из этих языков программирования для детей, чтобы они начали создавать свои собственные компьютерные программы.
Скриншот
Что нам нравится
Блок-стиль повествования учит основам кодирования в увлекательной игровой форме.
Разработано Массачусетским технологическим институтом (Массачусетским технологическим институтом), органом в области обучения и программирования.
Бесплатно.
Scratch — это бесплатный язык программирования для детей, разработанный лабораторией Lifelong Kindergarten Lab Массачусетского технологического института. Бесплатный язык дополнен учебными пособиями по началу работы, инструкциями по учебной программе для родителей и надежным сообществом пользователей.Есть даже карточки, которые дети могут использовать для изучения концепций программирования Scratch, когда они находятся вдали от компьютера.
Scratch использует стандартный визуальный интерфейс, чтобы создать среду для детей и родителей. Вы складываете вместе программные компоненты, такие как действия, события и операторы.
Каждый блок имеет форму, которая позволяет комбинировать его только с совместимым объектом. Например, повторяющиеся петли имеют форму боковой буквы «U», чтобы вы знали, что вам нужно вставить блоки между началом и остановкой петли.
Scratch создает настоящую анимацию и игры, используя либо предварительно заполненные изображения и персонажей, либо загружая новые. Scratch не требует подключения к Интернету. При желании дети могут делиться своими творениями в онлайн-сообществе Scratch.
Поскольку Scratch бесплатен и хорошо поддерживается, это одно из первых предложений по программированию, удобному для детей, и легко увидеть влияние Scratch на многих других языках программирования, удобных для детей, перечисленных здесь, таких как Blockly.
Рекомендуемый возраст : от 8 до 16
Требования : Windows, macOS или Linux
Blockly — это доработка Google Scratch с использованием той же метафоры взаимосвязанных строительных блоков, но она может выводить код на нескольких разных языках программирования, включая JavaScript, Python, PHP, Lua и Dart. Это делает Blockly визуальным редактором, а не только языком программирования для детей.
Вы видите код сбоку экрана, когда вы связываете блоки вместе и можете переключать языки программирования на лету, чтобы увидеть различия в синтаксисе языков для одной и той же базовой программы.Это делает Blockly идеальным для обучения программированию для самых разных возрастов, включая детей старшего возраста и взрослых, которым может не понравиться скошенный кот и мультики про Скретча.
Google работает с Массачусетским технологическим институтом над разработкой нового поколения Scratch на базе платформы Blockly.
Blockly служит основой для Android App Inventor, который можно использовать для разработки рабочих приложений для Android. MIT взял под свой контроль этот заброшенный проект Google.
Blockly еще не так полностью разработан, как Scratch, и доступных руководств не так много.Тем не менее, Blockly имеет большое будущее как надежную среду программирования для программистов всех возрастов.
Рекомендуемый возраст : 10+
Требования : Windows, macOS или Linux
Alice — это бесплатный инструмент для трехмерного программирования, предназначенный для обучения концепциям объектно-ориентированных языков программирования, таких как C ++. Он использует знакомый подход строительных блоков, чтобы дети могли создавать игры или анимации, программировая движения камеры, 3D-модели и сцены.
Интерфейс перетаскивания и удобная кнопка воспроизведения могут быть немного менее запутанными для некоторых студентов, чем загроможденный интерфейс Scratch. Программы или «методы» в Алисе можно преобразовать в среду IDE Java, такую как NetBeans, чтобы студенты, изучающие программирование, могли перейти от визуального интерфейса строительных блоков к стандартному языку программирования.
Университет Карнеги-Мелон разработал Алису. Веб-сайт может выглядеть не очень привлекательно, но программа все еще разрабатывается и исследуется.
Если вы устанавливаете Алису на Mac, включите установку, перейдя в Системные настройки > Безопасность и конфиденциальность > Разрешить загрузку приложений из: Магазин приложений и Идентифицированные разработчики. Измените настройки безопасности после завершения установки.
Рекомендуемый возраст : 10+
Требования : Windows, macOS или Linux
Разработчики приложений для iOS и iPadOS полагаются на язык программирования Swift.Swift Playgrounds доступен на Mac и в виде приложения для iPad. Разработанный для обучения детей программированию на Swift, он бесплатно загружается с Apple и не требует каких-либо предварительных знаний в области программирования.
Приложения содержат множество руководств по различным командам Swift, которые в данном случае предназначены для перемещения персонажа с именем Byte по трехмерному миру. Хотя знания программирования не требуются, дети должны уметь читать учебные пособия и проявлять настойчивость в решении проблем. Код перетаскивания устраняет опечатки, но Swift Playgrounds не использует интерфейс блока блокировки.
Когда ваши дети овладевают Swift Playgrounds, они могут начать развиваться в Swift.
Рекомендуемый возраст : 10+
Требования : iPad или Mac
Twine предназначен для детей, которые хотят создавать игры и рассказывать истории, но разочаровываются в технических деталях программирования.
Twine — это бесплатное приложение для нелинейного повествования, которое используют люди всех возрастов, в том числе большое количество взрослых и педагогов.С Twine вам не нужно изучать какой-либо код. Вместо того, чтобы учить пользователей программированию, он учит их структурировать и представлять нелинейные игры и истории.
Истории Twine состоят из страниц текста и изображений, как веб-сайты. В интерфейсе дизайна отображаются связанные страницы, каждая из которых может быть изменена с помощью текста, ссылок и изображений. Это особенно хорошо работает для игр типа «выбери свое собственное приключение», где каждый выбор игрока переходит к новой ветви истории.
Хотя это приложение не учит программированию, оно обучает многим навыкам планирования и проектирования, которые жизненно важны для дизайнеров игр и рассказчиков историй.Приложение хорошо поддерживается вики-сайтом поддержки, учебными пособиями и активным сообществом пользователей.
Вы можете создавать истории Twine онлайн через размещенное приложение или загружать приложение для автономного редактирования.
Рекомендуемый возраст : 12+ (рекомендуется сильные читатели)
Требования : Windows, macOS или Linux
Westend61 / Getty Images
Что нам не нравится
Требуется система Mindstorms, которую необходимо приобрести.
Некоторые встроенные продукты перекрестно продают.
Другой подход к обучению программированию — взглянуть на робототехнику. Многие дети откликаются на идею программирования вещей, которые работают в реальном мире. Существует множество наборов робототехники и языков, которые вы можете использовать для их программирования, но система LEGO Mindstorms пользуется одним из крупнейших сообществ пользователей и удобным для детей приложением для визуального программирования.
Загрузите среду программирования бесплатно, но для запуска программы вам понадобится набор LEGO Mindstorms.Это не обязательно означает, что вам нужно его покупать. Некоторые школы и публичные библиотеки предлагают наборы для учеников, или вы можете найти ближайшую к вам первую лигу LEGO League.
Программное обеспечение для программирования LEGO EV3 можно запускать на планшетах и компьютерах, и оно использует метафору строительного блока — в данном случае блока LEGO — точно так же, как Scratch и Blockly, хотя версия LEGO имеет тенденцию строить программу горизонтально и больше похожа на блок-схема. Учащиеся комбинируют действия, переменные и события, чтобы управлять своими творениями LEGO Mindstorms.Язык программирования достаточно прост для маленьких детей, но остается сложным для старших и взрослых.
Помимо среды программирования LEGO Mindstorms, LEGO использует ядро Linux с открытым исходным кодом, которое можно модифицировать и программировать с помощью традиционных языков программирования, таких как Python и C ++.
Рекомендуемый возраст : 10+ (дети младшего возраста могут использовать это под присмотром)
Требования : EVA3 требует наличия компьютера под управлением macOS или Windows или планшета под управлением Android или iOS.Для запуска программ вместо их отладки требуется один или несколько роботов LEGO EV3.
Kodu — это приложение для программирования игр от Microsoft, разработанное для Windows и Xbox 360. Версия для Windows бесплатна, но версия для Xbox 360 является платным приложением. Дети могут использовать приложение, чтобы исследовать и разрабатывать игры в трехмерном мире.
Графический интерфейс Kodu интересен, а программирование для версии Xbox можно полностью выполнять с игрового контроллера. Kodu — более старый, но все же хороший выбор, если у вас есть поддерживающее его оборудование.
К сожалению, версии Kodu для Xbox One нет, и дальнейшее развитие маловероятно. Однако версии для Xbox и Windows полностью разработаны, поэтому они включены в этот список, хотя и заброшены.
Рекомендуемый возраст : от 8 до 14
Требования : Windows 7 и ниже или Xbox 360
Другие предложения
Мотивированные средние и старшие школьники могут захотеть попробовать свои силы в создании и установке модов Minecraft.Интерфейс игры Unity 3D — еще один отличный способ погрузиться в программирование 3D-игр с большим количеством доступных онлайн-ресурсов.
Просто помните, что программирование по своей сути расстраивает. Это включает в себя поиск и устранение неисправностей, а также метод проб и ошибок; Очень важно убедиться, что у вашего ребенка есть оборудование, которое находится в хорошем рабочем состоянии. Однако лучший инструмент, который родители могут предоставить своим начинающим программистам, — это чувство настойчивости и решимости.
Спасибо, что сообщили нам!
Расскажите, почему!
Другой
Недостаточно подробностей
Трудно понять
История ранних языков программирования: C, BASIC и выше
Университеты не новички в инновациях с помощью технологий. EdTech не существовало бы, если бы это было не так. Но колледжи действительно были на переднем крае, когда дело дошло до развития информатики .
Еще в 1946 году первый универсальный компьютер — Электронный числовой интегратор и компьютер — был изобретен двумя профессорами Пенсильванского университета Джоном В. Мочли и Дж. Преспером Эккертом-младшим.
«В полностью рабочем состоянии ENIAC занимал комнату размером 30 на 50 футов и весил 30 тонн », — говорится в истории компьютера на веб-сайте Пенна.Это развитие не только стало первым в истории основных языков компьютерного программирования в том виде, в каком мы его видим сегодня, но и помогло создать прецедент для университетов, ставших лидерами в области инноваций в области компьютерных наук .
BASIC вызывает появление образования в области языков программирования
Задолго до того, как бывший президент Барак Обама объявил, что образование в области информатики должно быть доступно для всех, пара математиков из Дартмутского колледжа создала новый компьютерный язык, который обеспечит более широкий доступ к компьютерному программированию .Этот язык стал стандартом для компьютерных программистов на следующее десятилетие.
BASIC, язык компьютерного кодирования, разработанный Джоном Джорджем Кемени и Томом Куртзасом в 1963 году, изначально был изобретен как , чтобы упростить обучение программированию студентов , сообщает ThoughtCo. «BASIC был задуман как компьютерный язык для универсалов, чтобы использовать их для раскрытия возможностей компьютера в бизнесе и других областях науки», — говорится в статье.
ThoughtCo. сообщает, что до недавнего времени BASIC, который процветал после создания ПК, был самым известным компьютерным языком среди программистов.Но профессора никогда не планировали этого.
«Мы думали только о Дартмуте», — говорит Курц в статье TIME . «Нам нужен был язык, который можно было бы« преподавать »практически всем студентам (и преподавателям) без необходимости прохождения курса».
История C и появление Паскаля, C ++ и др.
После BASIC, в начале 1970-х, Никлаус Вирт разработал Паскаль, еще один язык, предназначенный исключительно для обучения студентов концепциям компьютерного программирования.
«Этот язык был разработан не для чего, кроме обучения студентов основам программирования, в конце концов, он изначально был разработан для этой цели», — говорится в истории языка. На сайте отмечается, что до начала 1990-х годов Паскаль был «языком выбора» во многих колледжах и университетах для обучения методам программирования
По мере развития компьютерных технологий возникла потребность в более сложных языках программирования. Академические круги и бизнес перешли от BASIC и Pascal к таким языкам, как C и C ++ , которые были разработаны специалистами в сфере высоких технологий.
Но такие дальновидные мыслители, как Вирт, подготовили почву для того, чтобы высшее образование было в авангарде обучения студентов компьютерному программированию.
«Очевидно, что университеты сыграли огромную роль в обучении людей программированию», — говорит Майкл Хикс, профессор информатики в Университете Мэриленда и блогер по языкам программирования. «Итак, хотя люди все еще учатся программировать самостоятельно, я думаю, что сегодня программирование в основном преподают в университетах».
Многие университеты предприняли шаги, чтобы убедиться, что студенты получают навыки 21-го века, которые им необходимы для ИТ-областей, поддерживая учебные лагеря, которые делают программирование доступным для всех студентов.Но некоторые студенты могут остаться позади, если у них нет опыта программирования. Таким образом, возникла потребность в разных типах вводных занятий.
Следующей осенью UMD предложит студентам новый поворот в компьютерном программировании. Ассистент профессора информатики Дэвид Ван Хорн проведет экспериментальный вводный курс, в котором будет использовать языки обучения, чтобы помочь студентам лучше понять основы кодирования , вместо того, чтобы переводить их на промышленный язык.
«Чтобы охватить больше студентов, мы пытаемся сделать более доступным путь к получению степени по информатике», — говорит Ван Хорн. «Большая часть этого связана с использованием языков, которые больше подходят для начинающих программистов. У нас есть стремительный рост, поэтому к концу первого года студенты уже используют один из тех промышленных языков ».
Университеты и будущее языков программирования
Некоторые университеты не перестали вводить новшества, когда дело доходит до создания самих языков.
Чуть более десяти лет назад Массачусетский технологический институт создал язык программирования, чтобы облегчить молодым учащимся понимание концепций компьютерного программирования .
Scratch, очень популярный и бесплатный инструмент программирования с перетаскиванием для детей в возрасте от 8 до 16 лет, позволяет детям использовать элементы компьютерного программирования для создания анимации, игр и интерактивных историй, сообщает статья о годовщине Scratch.
«Мы очень рады тому, как Scratch позволил детям во всем мире экспериментировать, исследовать и самовыражаться с помощью вычислительных инструментов », — говорит Митчел Резник, глава детского сада MIT Media Lab.
Сегодня MIT сообщает, что 20 исследователей работают над последней версией Scratch, которая больше подходит для мобильных устройств, таких как планшеты и смартфоны.
Хотя этот тип строгих изобретений в компьютерном программировании больше не является обычным явлением во многих университетах, Хикс отмечает, что колледжи по-прежнему имеют большое влияние, вызывая изменения в отрасли.
«Одним из примеров этого является автоматическое управление памятью или сборка мусора. Эта концепция была разработана в университете в 1960-х годах, но не была широко используемой частью языков программирования до 1990-х годов.По сути, каждый язык делает это сейчас », — говорит Хикс.
В отличие от компаний, у которых есть строгие требования к чистой прибыли, Хикс говорит, что университетов имеют полную свободу исследовать пределы программирования .
«Университетам не мешает устаревший код и программные системы. Мы обучаем следующую группу программистов », — говорит Хикс. «Для университетов имеет смысл постоянно задавать вопросы, например, как мы можем сделать что-то лучше, как мы можем сделать программистов более продуктивными и как мы можем улучшить работу программного обеспечения?»
7 языков программирования для детей на 2021 год
Изучение кодирования и расшифровки всех различных языков кодирования может показаться пугающим вначале, особенно для детей, которые только начинают работать!
К счастью, хотя изучить что-то «новое» редко бывает легко, существует множество вариантов, и диапазон возможностей для каждого уровня навыков и опыта.
В этом руководстве мы разберем преимущества, уровень сложности и уникальные возможности каждого языка программирования для детей. Scratch, JavaScript, Java, Python, Lua, C ++ и C # являются одними из самых популярных, поэтому давайте подробнее рассмотрим каждый из них.
Лучшие языки программирования для детей на 2021 год
Если вам интересно, «что такое язык программирования?» не волнуйтесь, вы не одиноки.
Язык программирования — это особый кодированный язык, используемый для передачи инструкций машине — в большинстве случаев компьютеру.Поскольку машины работают определенным образом, программисты должны использовать формальные языки для связи с компьютерами и разработки программного обеспечения, выражения алгоритмов или предоставления конкретных инструкций.
Чем лучше программист понимает один из этих языков (включая его синтаксис и грамматику), тем больше у него шансов заставить компьютер выполнить именно то, что он хочет, в кратчайшие сроки.
Имейте в виду, хотя есть некоторые вещи, которые вы можете сделать, чтобы ускорить процесс и быстро изучить программирование, в относительном смысле это мало чем отличается от других интересов и ремесел.Обучение программированию требует самоотдачи и итераций для достижения ваших целей. Однако первый шаг — это выбор языка.
Вот лучшие языки программирования для детей, за которыми следуют подробные описания для каждого и предложения с точки зрения лучших классов программирования для детей:
- Царапина
- JavaScript
- Ява
- Lua
- Питон
- C ++
- C #
1.Scratch и другие языки визуального программирования:
Лучшее, чтобы заинтересовать детей программированием
Когда дело доходит до программирования для детей, языки визуального программирования, такие как Scratch, обеспечивают прочную основу принципов программирования, при этом дети могут перетаскивать блоки кода, чтобы анимировать персонажей, создавать игры и создавать приложения.
И что лучше всего, их простота увлекает детей программированием! Языки визуального программирования можно использовать для создания интерактивных историй, игр и анимации.
Отлично подходит для:
- Дети, не имеющие опыта программирования и / или младше
- Показывает детям, насколько увлекательным может быть программирование
- Зрительные ученики
- Обучение базовым концепциям, таким как решение проблем и мышление «если-то»
Что ваш ребенок может создать в iD Tech: забавная анимированная игра или рассказ!
Рекомендуемые курсы и уроки:
2. JavaScript
Лучшее для охвата веб-аудитории
JavaScript — это объектно-ориентированный и процедурный язык программирования, который используется для интерфейсных или клиентских приложений, то есть его действия выполняются на компьютере пользователя.
Язык очень популярен, поддерживается многими пользователями (и рабочими местами!) И является родным для всех веб-браузеров. JavaScript чаще всего используется для создания сложных и интерактивных веб-приложений.
Хотя их названия кажутся похожими, Java и JavaScript — два очень разных языка программирования (см. Следующий раздел).
Отлично подходит для:
- Студенты, интересующиеся веб-разработкой и дизайном
- Дети, которые хотят начать изучать основы программирования
Что ваш ребенок мог бы создать в iD Tech: двухмерная интернет-игра!
Рекомендуемые курсы и уроки:
3.Java (язык программирования Minecraft)
Лучшее для учеников среднего уровня
Java — один из наиболее широко используемых языков программирования в мире. Аналитики говорят, что около 90 процентов компаний из списка Fortune 500 используют Java. Так что это отличный вариант для студентов, которым нужно глубокое понимание программирования, которое можно использовать на долгие годы.
Java — это язык со статической типизацией, то есть для него требуется указать тип переменной. Хотя это означает, что приложения, созданные на Java, как известно, более масштабируемы, стабильны и удобны в обслуживании, это также означает, что освоение Java может занять больше времени, чем другие языки.
Java хороша для детей, потому что ее можно использовать для создания игровых движков, мобильных приложений Android, больших серверных сред и многого другого.
Отлично подходит для:
- Кодировщики среднего уровня, которые хотят улучшить свои навыки
- Дети изучают принципы Java с помощью веселой игры, такой как Minecraft
- Подростки, готовящиеся к экзамену AP по информатике
- Подростки, которые хотят развить глубокое понимание концепций программирования
- Терпеливые студенты, которые не прочь потратить время на изучение синтаксиса языка
Что ваш ребенок мог бы создать в iD Tech: текстовую игру, приложение или графическую программу, в зависимости от курса!
Рекомендуемые курсы:
4.Lua (для Roblox)
Лучшее для игровых программистов
Созданный в Бразилии, Lua (что на португальском означает «луна»!) Представляет собой легкий язык программирования, предназначенный для встраивания в приложения. Это мультипарадигмальный язык, то есть он имеет набор общих функций, которые можно применить ко многим вопросам.
Легко ли изучить Lua?
Благодаря короткой кривой обучения (как Python), простоте встраивания и быстрому выполнению, это идеальный выбор, когда дело доходит до таких действий, как обучение программированию игры.Фактически, Lua был самым популярным языком для использования в игровых движках, согласно GameDev.net, и получил награду Gamasutra Frontline за лучший инструмент для программирования.
Число разработчиков, использующих Lua, неуклонно растет, а это означает, что ваш ученик может подобрать инструмент, который сможет помочь им в различных сферах деятельности; Adobe Photoshop, World of Warcraft и Angry Birds используют код Lua. (Узнайте больше о программировании Roblox для детей, в частности.)
Отлично подходит для:
- Дети и подростки, которые хотят быстро выучить язык
- Студенты, интересующиеся программированием игр
- Получение знаний на языке, охватывающем всю карьеру
- Учимся делать Обби в Roblox!
Что ваш ребенок может создать в iD Tech: 3D-мир в чрезвычайно популярной онлайн-игре Roblox.Они могут публиковать свои миры на сайте Roblox и даже монетизировать свои творения!
Рекомендуемые курсы:
5. Python
Лучшее для новичков (и для универсальности!)
Названный в честь комедийного сериала «Монти Пайтон», Python считается одним из самых простых языков программирования для изучения, отчасти из-за его упрощенного синтаксиса и ориентации на пробелы. Для запуска Python требуется меньше строк кода, поэтому даже новички могут начать создавать относительно быстро.
Такие компании, как Google и Disney, используют Python, и он очень популярен в научных областях, где люди в первую очередь учёные, а во вторую — программисты. Этот язык можно использовать для разработки видеоигр, веб-фреймворков и многих проектов в области научных и числовых вычислений.
Программирование на Python
отлично подходит для детей, а также достаточно универсально для использования в таких сложных областях, как кибербезопасность и искусственный интеллект. Теперь это гибкий и мощный язык!
Отлично подходит для:
- Дети и подростки, которые хотят реализовать свои идеи в кратчайшие сроки
- Создание удобного для чтения кода, очень похожего на обычный английский
- Студенты, интересующиеся научными областями, особенно искусственным интеллектом
Что ваш ребенок мог бы создать в iD Tech: текстовую игру, двухмерную игру, консольное приложение или программу кибербезопасности.
Рекомендуемые курсы:
А теперь, когда вы прочитали об этих двух языках, посмотрите сравнение Scratch и Python.
6. C ++
Лучшее для более глубокого понимания информатики
Произносится как «видеть плюс плюс». Этот язык программирования используется для создания приложений, которые запускаются локально на таких машинах, как ваш компьютер.
Несмотря на время и сложность, необходимые для изучения C ++, этот язык предоставит подросткам очень глубокое понимание программирования.C ++ можно использовать для создания системного программного обеспечения, игр и множества других программ.
Отлично подходит для:
- Подростки, которые хотят комплексное понимание принципов программирования
- Студенты, желающие работать в игровой индустрии
- Резюме вашего студента — рабочие места предполагают, что программисты знакомы с C ++
Что ваш ребенок мог бы создать в iD Tech: текстовую игру, двухмерную игру или консольное приложение.
Рекомендуемые курсы:
Подробнее:
7. C #
Лучшее для обучения программированию при создании 3D-игр
Произносится как «ясно видишь». C # — чрезвычайно популярный язык программирования, который используется для разработки большинства сторонних приложений для Windows. Это четвертый по популярности язык программирования для работы и может стать отличным стартовым языком для людей, которые плохо знакомы с программированием.
Синтаксически C # очень похож на Java, поэтому опыт использования одного из этих языков облегчит освоение другого.C # даже называют клоном языка Java от Microsoft. Его можно использовать для создания веб-приложений, игр и других программ.
Отлично подходит для:
- Студенты, интересующиеся созданием приложений для Windows
- Подростки, которые имеют опыт работы с Java и хотят выучить аналогичный язык
Что ваш ребенок мог бы создать в iD Tech: мы используем C # в среде Unity, чтобы научить вашего подростка создавать видеоигры, не создавая большинство элементов с нуля.
Рекомендуемые курсы:
Итак, как вы подойдете к выбору языка программирования?
Как правильно выбрать язык программирования
Резюме:
- Выбрать на основе вывода
- Выбрать на основе переносимости
- Выбрать в зависимости от уровня квалификации
- … Просто выбирай!
Детали:
Многие студенты должны изучать иностранный язык на каком-то этапе своей академической карьеры.Так как же решить, какой иностранный язык выбрать? Будет ли это испанский или немецкий? Мандаринский или кантонский? Или, может быть, даже суахили?
Выбор подходящего языка программирования для вашего ребенка аналогичен. Вот несколько способов сделать это!
Выбрать на основе вывода
Если ваш ребенок собирается на длительный отпуск в Германии, он, возможно, захочет изучать немецкий язык. Точно так же, если ваш ребенок мечтает разрабатывать элементы видеоигры, он может захотеть изучить C ++ или Blueprints, язык визуального кодирования Unreal Engine.
Выбрать на основе переносимости
Люди часто рекомендуют изучать романские языки, поскольку все они происходят от одного корневого языка, и изучение одного из этих языков может облегчить изучение других. Точно так же иногда изучение одного языка программирования, такого как Java, может настроить вас на более быстрое и эффективное изучение других в дальнейшем.
Выбрать в зависимости от уровня квалификации
Научиться писать на испанском языке с похожим на английский алфавит и грамматической структурой намного проще, чем научиться писать японские кандзи, включающие тысячи уникальных символов.
Точно так же изучение языка программирования, такого как Python, отлично подходит для новичков, так как легче начать работу, не беспокоясь о синтаксисе.
Просто выберите!
Иногда нет четкого указания, на каком языке лучше всего начать использовать ваш ребенок. Это нормально! Студенты могут изучить важные принципы программирования на любом языке программирования, поэтому вам не нужно беспокоиться о выборе неправильного. Если ваш ребенок интересуется программированием, просто позвольте ему начать!
Дайте вашему ребенку творческие возможности!
Есть множество причин, по которым дети и подростки должны учиться программировать.Совершенствуйте навыки вычислительного мышления, творческие способности и рассуждения вашего ребенка с помощью недели обучения программированию в программе iD Tech, с широким спектром летних курсов программирования для детей и подростков в возрасте от 7 до 18 лет (и онлайн-курсов программирования для детей и подростков). teens), охватывающий многие языки программирования.
( Уже в продаже! Весенние каникулы для детей и подростков. )
Хотя это руководство должно дать вам хорошее представление о том, какие языки программирования лучше всего подходят для вашего ребенка, помните, что если сомневаетесь — просто выбирайте!
Каждый из этих языков поможет студентам лучше понять принципы программирования и увлечься программированием.За дополнительной помощью в выборе курса вы можете обратиться к нашим специалистам лагеря. Они любят помогать таким семьям, как ваша, каждый день!
Какой должен быть первый язык программирования студента? — Новый стек
Это вопрос, который десятилетиями интересовал преподавателей. Когда студенты впервые начинают изучать информатику — с какого языка программирования им следует начать?
Один человек, который много думал об этом, — это Марк Гуздиал, профессор информатики в Мичиганском университете, который также провел собственное исследование в области образования в области информатики.И два разных коллеги недавно предположили, что не имеет значения, какой язык преподают в первую очередь студентам CS, что заставило его задуматься.
«У меня есть гипотеза, что это убеждение когда-то было правдой, когда эта область была моложе», — написал Гуздиал в недавно опубликованной статье в «Коммуникациях» ACM, домашнего органа Ассоциации вычислительной техники (ACM) . Но это было еще в конце 1960-х, когда впервые создавались учебные программы, а сегодня студенты всех возрастов и уровней опыта учатся программировать, и в конечном итоге у них разные потребности.
В разных университетах все еще есть разные ответы на этот вопрос, отражающие как их философию преподавания, так и их понимание того, какой язык окажется наиболее важным для их выпускников в более широкой технологической индустрии. Но также интересно отметить изменения, происходящие с годами, когда факультеты информатики постепенно меняют свои предпочтения в отношении важнейшего первого языка программирования для своих студентов.
Может быть, все это дает нам первое представление о следующем поколении программистов — и некоторые подсказки относительно того, каким мы представляем свое будущее.
Стэнфорд против Гарварда
В 2017 году Стэнфордский университет попал в заголовки газет, внося некоторые изменения в вводный курс по информатике для специалистов по информатике. Эрик Робертс, почетный профессор компьютерных наук Стэнфордского университета, пять лет работал над переводом курса с Java на JavaScript, согласно студенческой газете Стэнфорда, и наконец создал новую пилотную версию курса на основе JavaScript. (Таким образом, вместо CS106A курс был назван «CS106J».) Изменение включало создание нового учебника и заданий, а также подготовку новых помощников учителя, и сам Робертс вышел на пенсию, чтобы вести класс.
Ранее вводные классы Стэнфорда основывались на языке программирования C (а до этого — на Паскале). Провозгласив JavaScript «языком Интернета», Робертс помог переключить классы на Java еще в 2002 году, написав учебники и работая с другими преподавателями над реструктуризацией курсов и заданий. Но 15 лет спустя он сказал студенческой газете, что «сейчас 2017 год, и Java показывает свой возраст».
Тем не менее, если вы загляните в их учебные планы сегодня, вы обнаружите, что CS106A теперь, похоже, использует Python (и PyCharm IDE), в то время как программа CS106B указывает, что они используют C ++.
Между тем вводный курс CS50 Гарвардского университета в течение многих лет придерживался многоязычного подхода. В первую неделю студенты фактически пишут программу на Scratch, языке визуального программирования на основе блоков, разработанном для обучения молодых людей в MIT Media Lab, прежде чем перейти на C, а затем снова переключиться на Python, а затем на JavaScript. «Вместо того, чтобы преподавать только один язык, CS50 знакомит студентов с рядом« процедурных »языков программирования, каждый из которых концептуально строится поверх другого», — поясняется в официальных часто задаваемых вопросах курса.
Объясняющий продолжил: «Цель, в конечном счете, состоит в том, чтобы учащиеся почувствовали не то, что они« научились программировать на языке X », а что они« научились программировать »».
Но зачем начинать их с C? Преподаватель этого класса, профессор Дэвид Дж. Малан, однажды написал на Quora, что «C настолько близок к аппаратному обеспечению компьютера, насколько это возможно до того, как у вас появится язык ассемблера (что, на мой взгляд, было бы слишком загадочно для вводного курса. как CS50). В C нет магии.Если вы хотите, чтобы что-то было где-то в памяти, вы должны сами это записать. Если вам нужна хеш-таблица, вы должны реализовать ее самостоятельно ».
Малан, согласно его комментариям на Quora, считает, что недели изучения C дают студентам возможность понять некоторые фундаментальные строительные блоки всех языков программирования (а также дают возможность объяснить важную концепцию безопасности — переполнение буфера).
«Я думаю, это тоже мощная вещь — перейти от реализации хэш-таблицы (или дерева) на C за одну неделю, а затем, примерно через неделю, реализовать то же самое в одной строке кода PHP или JavaScript, » он написал.Кроме того, C также является относительно небольшим языком, поэтому «к середине семестра студенты увидят его почти полностью (за исключением, например, объединений и указателей функций)».
Обратная сторона? Малан признал, что создать интересные наборы задач на раннем этапе может быть сложнее, чем при использовании языка более высокого уровня, такого как Python или Java. Сложнее, может быть, «Но не невозможно!»
Хотите посетить лекцию по @ CS50 в @Harvard этой осенью? Зарегистрируйтесь на https://t.co/1ekgJpp3Gy. pic.twitter.com / K2V3SfwUFO
— CS50 (@ cs50) 13 сентября 2017 г.
Тем не менее, к 2014 году Python, как сообщается, уже был самым популярным языком на вводных курсах в ведущих американских программах по информатике (включая Массачусетский технологический институт и Калифорнийский университет в Беркли), согласно статье в Communications of ACM. «В частности, восемь из 10 ведущих кафедр CS (80%) и 27 из 39 лучших (69%) преподают Python на вводных курсах CS0 или CS1», — написал Филип Гуо в публикации.В то время Java все еще отставала от Python (за ней следовали MATLAB, C, C ++, а затем Scheme и Scratch.)
В 2016 году три британских исследователя провели собственное исследование и обнаружили, что в британских университетах Java используется в более чем в два раза больше классов, чем Python, «несмотря на то, что Python воспринимается одними и теми же респондентами как легче учить, чем учиться », — написали исследователи. (Одно из возможных объяснений, которое цитируют исследователи, — это «давняя популярность отрасли, измеряемая индексами сообщества.”)
Это тема, которая возникает часто. В одном из документов 2019 года трех исследователей из Университета Уинстон-Салемского государственного университета для группы ACM по обучению компьютерным наукам даже утверждается, что каждый студент, изучающий информатику, также должен иметь «фундаментальные знания» в области больших данных и облачных вычислений, «и обладать некоторыми практический опыт развертывания и управления приложениями для больших данных в облаке ».
В документе предлагается, чтобы вместо отдельных курсов по облачным вычислениям материал был интегрирован в несколько курсов бакалавриата по информатике.В нем описывается собственный успешный опыт исследователей в создании «модулей» для добавления тем об облаке и больших данных в существующие классы.
Не только математика
По мнению британских исследователей, чему учат начинающих программистов, все еще остается важным вопросом. «Неспособность легко понять программирование почти наверняка означает неспособность достичь прогресса в компьютерных науках», — утверждается в их статье, отмечая, что вопрос о том, какой язык преподавать первым, «поэтому яростно обсуждался с тех пор, как преподавание информатики началось в университетах.”
Гуздиал, профессор Мичиганского университета, по-прежнему считает, что важно, с какого языка мы начинаем студентов, но он также хочет, чтобы преподаватели пересмотрели одно формирующее предположение.
В своей статье ACM он вспоминает исследование 1979 года, в котором утверждалось, что после того, как студент выучит более широкие семантические концепции, он может применить их к любому последующему языку (для этого нужно только освоить относительно простые различия в синтаксисе). Но Гуздиал отмечает, что в ту эпоху большинство студентов, изучающих информатику, были традиционными студентами колледжей — у которых, по-видимому, было больше математики, чем, скажем, у студентов гуманитарных специальностей или сегодняшних школьников K-12.Итак, еще в конце 1970-х годов преподаватели, возможно, переоценили легкость переключения языков программирования, поскольку в конечном итоге они просто обучали программированию на основе того, что уже было известно о математике, где, как выразился Гуздиал, «новый синтаксис — это просто новый формализм для математики ».
Профессор добавил: «Возможно, мы сможем научить программированию гораздо больше людей, если не будем ожидать, что студенты сначала узнают математику, чего мы могли ожидать 40+ лет назад.”
Фото Клеменса ван Лэя на Unsplash.
Когда и как их использовать · Блог Raygun
Есть много языков программирования на выбор. Индекс TIOBE — это список языков программирования, упорядоченный по популярности. В этой статье перечислены (большинство) 43 лучших языка из этого списка (было исключено небольшое количество языков, на которых не было перечисленных вакансий).
Raygun позволяет с легкостью обнаруживать и диагностировать ошибки и проблемы с производительностью в вашей кодовой базе
На добавление Raygun в ваше программное обеспечение уходит несколько минут.Получайте уведомления о проблемах, с которыми сталкиваются конечные пользователи, и повторяйте проблемы в 1000 раз быстрее, чем при использовании журналов и неполной информации от пользователей. Узнайте больше и попробуйте Raygun бесплатно в течение 14 дней .
Список из 43 языков программирования
1. Java
- Популярность: Очень высокая
- Легкость обучения: от средней до сложной
- Варианты использования: общее и специальное
- Веб-приложения
- мобильный
- Встроенные системы
Java — ведущий язык и среда разработки приложений общего назначения.Он был представлен в 1991 году компанией Sun Microsystems как компилируемый язык высокого уровня с управляемой памятью.
Синтаксис Java аналогичен C / C ++, с фигурными скобками для замыкания и точкой с запятой в конце операторов. Автоматическое управление памятью — одна из функций, сделавших Java настолько популярной сразу после ее первого выпуска. До появления Java преобладали языки, требующие ручного управления памятью, такие как C и C ++. Выделение памяти вручную утомительно и подвержено ошибкам, поэтому Java была названа важным шагом вперед для разработчиков приложений.
Обещанием Java, помимо управления памятью, была ее кроссплатформенность. Это продавалось как «напиши один раз, беги где угодно». Виртуальная машина Java (JVM) запускает байт-код Java, который скомпилирован из языка Java. JVM доступны для большинства основных операционных систем, включая Linux, Mac и Windows. Это не всегда работает идеально, но когда это так, программа, написанная на Java, может работать на любой платформе с совместимой JVM.
Java используется для бизнеса, Интернета и мобильных приложений.Это родной язык для ОС Android от Google. Java также поддерживает миллионы телевизионных приставок и встраиваемых устройств. Навыки разработки на Java очень востребованы.
Если вы собираетесь заняться разработкой программного обеспечения, вам следует серьезно подумать об изучении Java.
2. C
- Популярность: Средняя
- Легкость обучения: средняя
- Варианты использования: общее и специальное
- Встроенные системы
- Драйверы оборудования
- Локальные приложения
До появления Java доминирующим языком высокого уровня был C.Впервые он был представлен в 1972 году. Первые версии Unix, написанные на языке Ассемблер, были перенесены на C. Затем он использовался при разработке других ранних операционных систем, включая IBM System / 370.
C имеет долгую историю разработки на старых системах с более медленными процессорами и небольшим объемом памяти. Программы, написанные на C, должны быть очень эффективными, поэтому C имеет репутацию высокопроизводительных программ в случаях, когда скорость имеет значение.
C по-прежнему очень популярен из-за его использования при разработке систем, включая операционные системы, встроенные устройства и в качестве прошивки.Стандартная библиотека C была перенесена на многие платформы, поэтому во многих случаях ее можно использовать. Однако низкоуровневое системное программирование, для которого он обычно используется, является более специализированным навыком, чем общее прикладное программирование. Это объясняет, почему на втором по популярности языке в индексе TIOBE относительно мало объявлений о вакансиях по сравнению с другими языками из первой десятки.
На рынке вакансий, вероятно, будет некоторое совпадение с C ++ (см. Список C ++ ниже).
3. Python
- Популярность: Очень высокая
- Легкость обучения: от простого к умеренному
- Варианты использования: общее и специальное
- Веб-приложения
- Искусственный интеллект
Python — относительно новый интерпретируемый язык программирования, впервые представленный в 1989 году.Это интерпретируемый язык, поддерживающий автоматическое управление памятью и объектно-ориентированное программирование.
Python очень популярен для программирования общего назначения, включая веб-приложения. Недавно он стал известен благодаря специальному использованию в приложениях искусственного интеллекта.
вакансий Python очень много, поэтому легко найти работу, используя Python.
4. C ++
- Популярность: Высокая
- Легкость обучения: сложно
- Сценарии использования: общее, специальное
- Локальные приложения
- Веб-службы
- Собственные услуги
C ++ расширяет C объектно-ориентированными функциями.«Двойной плюс» происходит от оператора инкремента из C. C ++ был разработан для переноса функций из старых языков на более быстрые и мощные платформы.
C ++ занимает на рынке ту же область, что и C, включая системное программирование и разработку низкоуровневого оборудования. За прошедшие годы стандартные библиотеки и спецификации C ++ были значительно расширены, что привело к критике за то, что они стали слишком сложными и трудными для изучения.
5. Visual Basic .NET?
- Популярность: Низкая
- Легкость обучения: средняя
- Сценарии использования: общее использование
- Веб-приложения
- Локальные приложения
Visual Basic.NET (VB.NET) — это реализация Microsoft языка Visual Basic, которая компилируется в .NET Intermediate Language. Это позволяет разработчикам писать приложения .NET с помощью Visual Basic.
Приложения, написанные на VB.NET, более или менее функциональны, как и любые другие. Однако
VB.NET никогда не был очень популярен для бизнес-приложений. Разработчики приложений предпочитали C, C ++ и C #. Большинство приложений, написанных на VB.NET, как правило, более старые и могут считаться «устаревшими» приложениями, предназначенными для вывода из эксплуатации или повторной разработки.
6. C & num;
- Популярность: Высокая
- Легкость обучения: средняя
- Сценарии использования: общее использование
- Веб-приложения
- Локальные приложения
- Услуги / микросервисы
C # был разработан и представлен Microsoft в 2000 году вместе с .NET Framework в целом. Синтаксически C # очень похож на Java и C / C ++. Это скомпилированный объектно-ориентированный язык, который компилируется в.NET Intermediate Language.
Первоначально C # использовался для разработки Windows Forms, ориентированной на Microsoft, и веб-разработки с использованием ASP.NET. Экосистема .NET недавно эволюционировала с появлением .NET Standard и .NET Core. Эти новые платформы и стандарты являются кроссплатформенными и работают в Windows, Linux и Mac.
C # популярен для программирования локальных и веб-приложений, часто (но не обязательно) в системах, разработанных в основном на основе технологий Microsoft. Платформа Microsoft Xamarin позволяет разработчикам писать приложения для Android и iOS на C #.В некоторых случаях он подходит для системного программирования и имеет библиотеки для встроенных систем.
7.
филиппинских песо
- Популярность: Высокая
- Легкость обучения: легко
- Сценарии использования: общее использование
PHP изначально расшифровывался как «Персональная домашняя страница» как часть своего первого имени, PHP / FI (интерпретатор форм). Официальный акроним теперь — PHP: гипертекстовый процессор. Его основная роль — система сценариев на стороне сервера веб-приложений.Первоначально он был разработан для расширения программы CGI для поддержки HTML-форм и доступа к базе данных. Код программы PHP смешан с HTML, что делает его похожим на классические (до .NET) страницы Active Server от Microsoft. Интерпретатор читает HTML и код и выполняет части кода страницы.
PHP популярен, потому что его легко изучить. Он также является основой популярных веб-приложений, таких как WordPress и Joomla. Однако PHP также имеет неоднозначную репутацию в отношении качества программного обеспечения.В ранних версиях отсутствовали элементы управления безопасностью и функции, которые затрудняли разработку приложений с высокой степенью защиты. Последние разработки фреймворков и библиотек PHP улучшили безопасность.
Доступно множество PHP-вакансий для веб-приложений, ориентированных на контент, таких как WordPress, и проприетарных систем, разработанных на PHP.
8. JavaScript
- Популярность: Очень высокая
- Легкость обучения: средняя
- Сценарии использования: общее использование
- Локальные приложения
- Веб-приложения
JavaScript — это высокоуровневый язык с динамической типизацией и интерпретацией.Он использует синтаксис, подобный Java, отсюда и название JavaScript. JavaScript был впервые представлен на заре общедоступного Интернета, в 1995 году.
JavaScript используется для написания кода, который выполняется в веб-браузерах на стороне клиента. Если вы достаточно давно пользуетесь Интернетом, чтобы вспомнить введение Google Maps, вы стали свидетелями первого волшебства: «бесконечная прокрутка» в Картах выполняется с помощью JavaScript.
С момента своего первого появления поддержка JavaScript была добавлена во все основные веб-браузеры.Фреймворки JavaScript, включая React, Angular и Vue, предлагают парадигму разработки приложений модель-представление-контроллер, полностью работающую в браузере. JavaScript теперь поддерживает визуальные элементы большинства современных веб-приложений, запускаемые браузером, поэтому большинство реальных инструментов мониторинга пользователей обслуживают JavaScript.
JavaScript также можно комбинировать с HTML для создания кроссплатформенных мобильных приложений.
NodeJS — это веб-сервер, который запускает JavaScript на стороне сервера. Приложения NodeJS полностью написаны на JavaScript.
Учитывая все эти варианты использования и поддержку, JavaScript популярен и пользуется большим спросом. Выучить это не так уж сложно, хотя есть продвинутые техники программирования, на освоение которых нужно время. Если вам удобнее работать с объектно-ориентированными языками, подумайте о TypeScript. TypeScript «накладывает» объектно-ориентированные функции и синтаксис и преобразуется в собственный JavaScript.
9. SQL
- Популярность: Очень высокая
- Легкость обучения: от простого к умеренному
- Сценарии использования: специальные
SQL означает язык структурированных запросов .SQL используется для запроса и изменения данных в системе управления реляционными базами данных (РСУБД). Реализации для конкретных поставщиков, такие как PL / SQL (Oracle) и T-SQL (Microsoft), предлагают функции для конкретных продуктов.
SQL не является языком общего назначения, который можно использовать для написания приложений. Тем не менее, это, по крайней мере, полезный, если не необходимый навык для большинства разработчиков. Термин «разработчик полного стека» относится к разработчику с всесторонним набором навыков, который включает все аспекты приложения. Это почти всегда включает доступ и сохранение данных в базе данных.Изначально выучить SQL несложно, хотя существуют сложные варианты использования больших данных и анализа данных, требующие значительного опыта.
SQL очень популярен как среди разработчиков, так и среди администраторов баз данных, поэтому вакансий, требующих навыков работы с SQL, предостаточно. Однако сам по себе это не полный навык. Опыт работы с SQL — большой плюс для резюме, но редко бывает основным навыком, необходимым для любой конкретной работы.
10. Objective-C
- Популярность: Высокая
- Легкость обучения: сложно
- Варианты использования: мобильные приложения
- Устройства Apple iOS: iPhone, iPad
Objective-C — это компилируемый объектно-ориентированный язык общего назначения.Его синтаксис заимствован из Smalltalk. До 2014 года, когда Apple представила Swift, это был основной язык, на котором Apple разрабатывала приложения для MacOS и iOS.
Objective-C по-прежнему относительно популярен из-за большого количества доступных приложений, написанных с его использованием. Теперь, когда разработка современных MacOS и iOS ведется в основном на Swift, вполне вероятно, что его популярность со временем упадет, поскольку количество поддерживаемых приложений со временем сокращается. Objective-C непросто изучить.Он использует синтаксис и языковые соглашения, которые не являются общими для других языков, поэтому опыт работы с другими языками не подходит для Objective-C.
Если вы хотите сосредоточиться на разработке программного обеспечения для экосистемы Apple, неплохо выбрать и Objective-C, и Swift. Это даст вам возможность работать со старыми приложениями, написанными на Objective-C, и писать новые приложения на Swift. Между тем, рабочих мест очень много.
11. Delphi / Object Pascal
- Популярность: Ультра-нишевая
- Легкость обучения: средняя
- Варианты использования: Общие
Delphi — это компилятор и интегрированная среда разработки (IDE) для языка Object Pascal.Object Pascal — это объектно-ориентированная производная Pascal, которая была разработана в конце 1960-х годов.
Delphi / Object Pascal находится в этом списке, потому что существует много программного обеспечения, написанного на Object Pascal с Delphi. Как видно по количеству заданий, Object Pascal фактически мертвый язык. Если вы хотите писать программное обеспечение как профессию, игнорируйте Delphi и Object Pascal. Их дни прошли.
12. Рубин
- Популярность: Высокая
- Легкость обучения: от простого к умеренному
- Варианты использования: Общие
- Веб-приложения
- Скрипты
Ruby — это интерпретируемый объектно-ориентированный язык с динамической типизацией, впервые представленный в середине 1990-х годов.Он был вдохновлен несколькими другими языками из этого списка, включая Lisp, Perl и Ada.
Ruby очень популярен для разработки веб-приложений. Платформа Ruby on Rails (теперь известная просто как «Rails») — это серверная структура компонентов представления модели, написанная на Ruby.
Ruby довольно легко освоить. Его обычное использование в веб-приложениях упрощает поиск вакансий.
13. MATLAB
- Популярность: Средняя
- Легкость обучения: от средней до сложной
- Сценарии использования: специальные
MATLAB, по сути, не является языком программирования.Это приложение, которое используется для расчета и моделирования сложных математических вычислений. Он используется в основном в исследовательских учреждениях, в университетах и лабораториях. MATLAB может обрабатывать сложные матричные манипуляции и поддерживает расширения для использования сложных математических обозначений. Функции, написанные на C, C # и FORTRAN, можно вызывать из MATLAB.
Знания, необходимые для использования MATLAB, больше связаны с математическими концепциями и навыками, чем со знанием программирования. Если вы уже изучаете математику и работаете над докторской степенью по математике, MATLAB относительно легко освоить.
14. Ассемблер
- Популярность: Низкая
- Легкость обучения: сложно
- Сценарии использования: специальные
- Системное программирование
- Разработка аппаратного и микропрограммного обеспечения
«Язык ассемблера» — это общий термин для низкоуровневого кода, который близко представляет собственные машинные инструкции для данного микропроцессора. Большинство языков в этом списке являются языками «высокого уровня», которые синтаксически ближе к английскому языку.Код языка высокого уровня должен быть скомпилирован до промежуточного байт-кода или непосредственно до машинных инструкций. Ассемблерный код собран, (отсюда и название) не скомпилирован.
Назначение строки кода, написанного на C или Ruby, относительно легко понять, просто прочитав ее. В отличие от этого, ассемблер очень сложно понять без внимательного прочтения всей программы. Каждая операция, включая математические операции и перемещение данных в регистры и из них, представляет собой законченный оператор.Это означает, что для выполнения того же объема работы требуется гораздо больше ассемблерного кода, чем кода C.
Ассемблерный код наиболее полезен, когда производительность является самой важной целью. Он используется для системного программирования очень низкого уровня или в некоторых случаях может быть объединен с кодом приложения для повышения производительности. Работы, требующие знания сборки, будут включать системное программирование и разработку оборудования.
15. Свифт
- Популярность: Средняя
- Легкость обучения: от средней до сложной
- Варианты использования: мобильные и настольные приложения Apple
Apple представила Swift в 2014 году как современную альтернативу Objective-C.Его цель заключалась в том, чтобы его было легче отлаживать, чем в Objective-C. Синтаксис Swift легче читать, чем Objective-C, и для выполнения того же объема работы требуется меньше кода. Однако критические изменения, внесенные в новые версии, могли задержать его принятие.
Для Swift доступно изрядное количество рабочих мест, поэтому вполне вероятно, что Swift останется здесь надолго. Как упоминалось в листинге Objective-C, если вы хотите развиваться для экосистемы Apple, сделайте хеджирование своих ставок и изучите и то, и другое.
17. Перейти
- Популярность: Низкая
- Легкость обучения: средняя
- Варианты использования: Общие
- Веб-приложения
- Локальные приложения
Го (также известный как Голанг) — относительно новый ребенок в этом районе.Он был представлен двумя инженерами Google в 2009 году. Синтаксис Go во многом заимствован у C и Java. Цели разработки Go включали кроссплатформенную совместимость, простоту и поддержку современных процессоров.
Go относительно легко освоить. Он имеет некоторые сложности C / C ++ (например, указатели), но его синтаксис и соглашения проще. Хотя рабочих мест в Go немного, в инженерных кругах и в DevOps-кругах быстро растет число последователей.
18. Perl
- Популярность: Высокая
- Легкость обучения: от простого к умеренному
- Варианты использования: Общие
- Локальные приложения
- Веб-приложения
Perl был представлен в 1987 году как утилитарный язык сценариев, возникший на основе сценариев CGI.Последние выпуски Perl сильно отличаются от ранних выпусков.
Perl довольно легко выучить, но у него есть недоброжелатели. Разработка Perl была несколько бессистемной, что привело к критике за его плохую организацию. Это сделало Perl менее надежным.
Довольно много программного обеспечения было написано на Perl, и это продолжается по сей день. Вакансии на Perl найти не сложно. Сказав это, было бы преувеличением сказать, что Perl — это «современный» язык.Perl может быть хорошим языком для изучения в начале карьеры, как способ начать работу, но он не должен быть единственным.
19.
рэнд
- Популярность: Низкая
- Легкость обучения: сложно
- Сценарии использования: специальные
- Статистические вычисления и анализ
Язык программирования R в основном используется статистиками и исследователями для выполнения статистического анализа наборов данных. Демографы, страховые актуарии и другие специалисты, специализирующиеся на статистике, используют R.Как и в случае с MATLAB, большая часть знаний, необходимых для работы с R, относится к статистике. Программисты R сочетают статистические знания с основами программирования и разработки программного обеспечения.
Найти работу по программированию
R несложно, но их количество невелико из-за специализированного характера работы. Если вы аналитик данных, занимающийся статистической работой, есть большая вероятность, что вы выучили R. Если эта работа кажется чем-то, что вы хотите изучить, вам следует серьезно подумать о добавлении R в свой набор инструментов.
20. PL / SQL
- Популярность: от низкой до средней
- Легкость обучения: средняя
- Варианты использования: запросы к базе данных
PL / SQL — это зависящая от поставщика реализация языка SQL, указанного выше. Синтаксис и функции PL / SQL соответствуют функциям баз данных Oracle. Все диалекты SQL умеренно сложны для изучения. Простым запросам и обновлению данных довольно легко научиться. Объединения, агрегирование и расширенные концепции, такие как курсоры, требуют большего понимания теории баз данных.
Oracle — доминирующий поставщик баз данных, поэтому заданий PL / SQL довольно много. Если вы являетесь администратором базы данных Oracle, вам необходимо изучить PL / SQL. Разработчики полного стека, работающие на «уровне» данных, должны рассмотреть возможность изучения PL / SQL и других диалектов.
21. Visual Basic
- Популярность: Низкая
- Легкость обучения: легко
- Варианты использования: Общие
Visual Basic (VB) был представлен Microsoft как вариант языка программирования BASIC.Это язык, управляемый событиями, и интегрированная среда разработки, в основном используемая для разработки приложений Windows. VB был разработан таким образом, чтобы его было легко изучить и быстро создавать полезное программное обеспечение. Visual Basic для приложений (VBA) встроен в более старые версии приложений Microsoft Office, такие как Access. VBA использовался для программного управления документами Office. Базы данных Access использовали VBA для создания мини-приложений.
Microsoft прекратила поддержку Visual Basic 6.0, последней версии Visual Basic, в 2008 году.Больше не поддерживается. Количество вакансий, требующих Visual Basic, сокращается. Вполне вероятно, что любая такая работа будет сосредоточена на обслуживании и / или переносе на современную платформу.
22. SAS
- Популярность: Низкая
- Легкость обучения: сложно
- Варианты использования: Общие
SAS первоначально означало «Система статистического анализа». SAS был впервые разработан в 1966 году на мэйнфреймах. Он использовался для статистического анализа данных.
SAS не является распространенным явлением, хотя некоторые вакансии все еще доступны.Современные инструменты статистического анализа обогнали SAS.
23. Дротик
- Популярность: Ниша
- Легкость обучения: средняя
- Варианты использования: Общие
- Веб-приложения
- Мобильные приложения
Dart был представлен в 2011 году инженерами Google. Это статически типизированный компилируемый язык с синтаксисом, аналогичным C. Dart транслирует в JavaScript.
Dart так и не стал популярным, поэтому он не пользуется популярностью и мало вакансий.
24. F & num;
- Популярность: Ниша
- Легкость обучения: от средней до сложной
- Варианты использования: общие и специальные
- Веб-службы
- Машинное обучение
F # был представлен Microsoft как объектно-ориентированный функциональный язык, который компилируется в .NET Intermediate Language. Как функциональный язык F # выражает программы как математические функции. Функциональные языки отличаются от объектно-ориентированных и процедурных языков тем, что они избегают изменяемых данных и состояний.Функциональное программирование сильно отличается от других более популярных форм, однако оно хорошо подходит для определенных типов приложений. Некоторые вычисления могут быть выражены более кратко и элегантно на функциональных языках, чем в их объектно-ориентированных аналогах.
F # — это особый язык с небольшим количеством доступных вакансий.
25. КОБОЛ
- Популярность: Ниша
- Легкость обучения: от средней до сложной
- Сценарии использования:
- Разработка приложений для мэйнфреймов
COBOL — очень старый язык, используемый в основном для разработки мэйнфреймов.Его довольно сложно выучить по сравнению с более современными языками.
Программисты, использующие COBOL на протяжении десятилетий, имеют широкие возможности трудоустройства из-за нехватки программистов COBOL, которые работают и не вышли на пенсию. Однако это не повод изучать его, если вы еще этого не знаете. Намного лучше инвестировать в новые навыки для нового поколения языков и платформ.
26. Скала
- Популярность: Средняя — Высокая
- Легкость обучения: от средней до сложной
- Сценарии использования: общее использование
- Программные рамки
- Веб-приложения
Scala была разработана для заполнения пробелов в языке Java, таких как функции функционального программирования.Он получил признание в разработке программных библиотек и приложений.
Scala критиковали за высокую кривую обучения. Некоторые говорят, что изучение новых языков — это хорошо для разработчиков программного обеспечения, особенно тех, которые заставляют разработчиков думать о старых проблемах по-новому. Доступно множество вакансий Scala. Возможно, это не лучший язык для начинающих, но если у вас есть некоторый опыт, на него стоит обратить внимание.
27. ABAP
- Популярность: Ниша
- Легкость обучения: от средней до сложной
- Сценарии использования: специальные
ABAP был разработан для использования с корпоративной программной системой SAP для разработки отчетов.
ABAP — это нишевый язык, в котором мало вакансий. Синтаксис сильно отличается от современных языков. ABAP, вероятно, не подходит для долгосрочной карьеры.
28. Фортран
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: специальные
FORTRAN был разработан IBM для программирования, ориентированного на научные исследования. Первоначально он был введен в 1957 году, поэтому в возрасте 61 года он является одним из старейших языков в этом списке.
FORTRAN достиг того уровня, которого COBOL, вероятно, достигнет примерно через десять-пятнадцать лет — почти полностью устарел.
29. Lua
- Популярность: Ниша
- Легкость обучения: легко
- Сценарии использования: общее использование
Lua был разработан, по необходимости, в Бразилии, в то время, когда торговая политика делала покупку лицензионного программного обеспечения из любой точки мира слишком дорогой. Он был разработан, чтобы быть портативным и простым в освоении для нетехнических пользователей.Lua стал популярным среди начинающих разработчиков игр как язык сценариев.
Lua — нишевый язык с небольшим количеством вакансий. Изучение Lua может сделать вас более разносторонним разработчиком, но вряд ли даст вам работу.
30. Ржавчина
- Популярность: Ниша
- Легкость обучения: сложно
- Случаи использования: специальное и общее использование
- Прикладные / программные основы и компоненты
- Системное программирование
Rust — относительно новый и мощный язык, популярный в системном программировании.Его конструктивные цели включают безопасность, надежность и скорость. Эти функции достигаются за счет сложности и высокой кривой обучения.
Rust — плохой родной язык и не нравится публике. Он отлично подходит для учебных задач, и есть рабочие места, которые его используют, но, вероятно, не стоит делать ставку на это карьеру.
31. Лисп
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: специальные
LISP всего на год моложе FORTRAN, что делает его одним из «прадедушек» языков в этом списке.LISP вдохновил на создание многих более молодых языков из этого списка, включая JavaScript, Scala, Python и многие другие.
LISP не очень прост в изучении и имеет очень подробный синтаксис (это здорово, если вы ОБОЖАЕТЕ печатать круглые скобки!). Задания, в которых LISP указывается как требование, отдают предпочтение не самому языку, а более глубокому пониманию, которое он предлагает. языков, которые пришли после него. Знание LISP очень полезно как средство сделать вас более квалифицированным разработчиком на более современных языках.
32. Заводной
- Популярность: Ниша
- Легкость обучения: средняя
- Варианты использования: специальные и общие
- Локальные приложения
- Инструменты разработчика
Groovy тесно связан с Java. Его код компилируется в байт-код Java, а синтаксис очень похож на Java. Groovy добавляет функции, отсутствующие в Java, такие как динамическая типизация и перегрузка операторов. Код Groovy также можно запускать в некомпилированном виде, что делает его платформой для написания сценариев.
Groovy завоевал популярность среди разработчиков и используется в некоторых популярных инструментах, таких как Jenkins. Если вы уже знаете Java или подобный язык, Groovy должно быть довольно легко изучить. Он отмечен как плюс во многих списках вакансий, но вряд ли будет основным требованием для какой-либо конкретной работы.
33. LabVIEW
- Популярность: Ниша
- Легкость обучения: от средней до сложной
- Сценарии использования: специальные
LabVIEW — это среда разработки и компилятор, использующая графический язык для разработки программ.Он используется в основном для управления машинами для сценариев промышленной автоматизации.
LabVIEW относится к машиностроению и автоматизации, как MATLAB — к математическим исследованиям. Если вы инженер, создающий автоматизированные системы, использование LabVIEW, вероятно, станет частью вашей работы. В противном случае LabVIEW вряд ли будет полезен помимо академических занятий.
34. Пролог
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: специальные
Пролог — это декларативный язык, основанный на довольно продвинутых математических и логических теориях.Используется для сложных систем.
Синтаксис Пролога труден для изучения и чтения. Если вы не работаете в области, где используется Пролог, его, вероятно, безопасно пропустить.
35. Ада
- Популярность: Ниша
- Легкость обучения: средняя
- Сценарии использования: общее использование
Ада — один из самых старых языков в этом списке. Впервые он был представлен в 1980 году. Ада наиболее тесно связана с Паскалем. Ада имеет много типичных языковых функций высокого уровня, включая статическую типизацию и объектную ориентацию.
Ада — это нишевый язык с несколькими доступными вакансиями. Большая часть этой работы, вероятно, будет связана с обслуживанием и переносом на новые платформы.
36. Юлия
- Популярность: Очень нишевая
- Легкость обучения: сложно
- Сценарии использования: специальные
Julia — относительно новый язык, представленный в 2012 году. Его синтаксис является потомком C. Julia был разработан для обработки данных и аналитических приложений.
Julia — еще один язык в этом списке, который тесно связан с работой, для поддержки которой он предназначен.Если вы уже занимаетесь аналитикой данных, скорее всего, вы узнали Джулию.
37. Haskell
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: общие / специальные
Haskell — один из наиболее старых чисто функциональных языков высокого уровня. Функциональные языки фокусируются на выражении намерений посредством математических операторов, а не на императивных подпрограммах, которые «действуют» на данные. Многие другие функциональные языки являются производными от Haskell.
Haskell довольно сложен для изучения, однако это хорошая возможность изучить функциональное программирование. Если вы изучите Haskell, вы научитесь этому методу написания программного обеспечения. Вы также будете ценны для ниши на рынке вакансий, где требуется этот специализированный метод разработки программного обеспечения.
38. Апекс
- Популярность: Низкая
- Легкость обучения: средняя
- Сценарии использования: специальные
- Salesforce.com Разработка
Apex — это язык, похожий на C # и Java.Он был разработан Salesforce.com как проприетарный язык, используемый для разработки на платформе Salesforce.
Apex так же сложно изучить, как C # и Java. Если вы хотите разрабатывать с помощью Salesforce, изучите Apex.
39. Котлин
- Популярность: Низкая
- Легкость обучения: средняя
- Примеры использования: мобильная разработка
Kotlin работает на виртуальной машине Java и компилируется в JavaScript. Его синтаксис очень похож на Java.Google поддерживает Kotlin для разработки ОС Android.
Kotlin со временем приобрел популярность, но в целом он остается нишевым языком.
40. Баш
- Популярность: Низкая (подробнее)
- Легкость обучения: от простого к умеренному
- Сценарии использования:
- Создание сценариев и автоматизация Linux
Сценарии Bash используются для автоматизации задач на платформах Unix и Linux. Синтаксис довольно прост и понятен.
Навыки Bash требуются в первую очередь для администрирования Unix / Linux и для ролей, которые должны писать сценарии для этих платформ. Разработчики могут использовать Bash для автоматизации конвейеров доставки программного обеспечения. Bash — важный навык, который нужно развивать для этих и других случаев использования, однако сам по себе он не является полноценным языком программирования.
41. Релейная логика
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования:
Ladder Logic — это не столько язык программирования, сколько обозначение для проектирования схем.Он используется в основном для разработки промышленной электроники.
42. Clojure
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: общие
Clojure относится к LISP и использует аналогичный синтаксис. Clojure работает на виртуальной машине Java. Он используется во множестве приложений и систем. Заданий Clojure немного, но они есть.
43. Схема
.
- Популярность: Ниша
- Легкость обучения: сложно
- Сценарии использования: Специальность
Scheme — еще один функциональный язык, связанный с LISP.Он используется в нескольких различных приложениях, таких как разработка ОС и игр.
Как выбрать язык программирования
Языки программирования — это инструменты, выражающие намерение в структурированном виде. Разработчики программного обеспечения выбирают язык так же, как строитель выбирает инструмент; выбрав лучший инструмент для работы.
Все языки в этом списке имеют один или несколько из множества атрибутов:
- Процедурные
- Объектно-ориентированный
- Императив
- Декларативная
- Функциональный
… и многие другие
Эти атрибуты в сочетании с требованиями задачи разработки делают одни языки лучше других для решения данной задачи.