No Image

Языки программирования школьная программа

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

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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уроки по информатике в школе и вузе: какой язык программирования выбрать? Насколько глубоко его изучать и нужно ли вообще в школе изучать языки программирования? Есть мнение, что учащихся нужно знакомить с различными языками и различными стилями программирования. Видимо, наиболее подходящими учебными языками программирования сегодня являются Форт, Ruby, Python, Си, Паскаль и Java.

Содержание

Введение [ править ]

Первым кодировки на бумаге придумал Паскаль. В одной строке умещалось от 0 до 255 символов. Первым языком электрического типа считается Планкакюль. Его изобретателем считается немец Конрад Цузе. Элементы ячейки располагались в две строки. В первой писались натуральные, а во второй аргументы. Один из 4ех его компьютеров был частично из консервных банок. Использовалась двуличная система в одной ячейке. Один элемент заряжен положительно, а другой отрицательно. Мнения о том, какой язык лучше преподавать в школе, разнятся: от того, что программирование изучать не нужно, а следует просто поднимать компьютерную грамотность и осваивать офисные программы (как на Западе), до того, что нужно изучать операционные системы и несколько языков программирования различных уровней абстракции и с различными парадигмами. Это крайние случаи, но золотую середину найти непросто. В первую очередь, нам нужно определить цель. Научить школьников логически и алгоритмически мыслить? Познакомить с компьютерами на бытовом уровне, чтобы школьники умели пользоваться интернетом, электронной почтой и текстовыми редакторами? Заложить базовые знания, необходимые для будущих инженеров, математиков, физиков и специалистов по информационным технологиям? А может, нам нужно каждого школьника познакомить с программированием как явлением, чтобы он представлял потенциал компьютерных систем? Много ли школьников станет программистами? Немного. Но синусами и уравнениями Кирхгофа в жизни тоже пользуется не каждый. Безусловно, в науке о программировании есть фундаментальная составляющая, но определить её непросто. Некоторые считают, что не так важно, какой язык программирования взять: на уроках информатики нужно учить не языку программирования, а методам программирования и системному подходу решения задач. Нужно развивать алгоритмическое мышление и на примерах знакомиться с принципами построения современных компьютерных систем.

Читайте также:  Создать кошелек киви валет

Неужели действительно не так важно, какая среда и какой конкретный язык программирования будет использован для практических занятий? Оказывается, что у каждого преподавателя есть свой список требований к учебному языку программирования. Например: простой, интуитивный синтаксис, наличие высокоуровневых инструментов для обнаружения и недопущения ошибок и для отладки программ, наличие качественной документации с примерами, наличие дружелюбной среды разработки, межплатформенность (наличие версий под различные платформы), … У некоторых преподавателей этот список очень короткий, например: «Только Паскаль» или «Любой, кроме Бейсика!» Попробуем подойти к проблеме конструктивно.

Бейсик и Паскаль [ править ]

Когда-то наиболее популярными языками программирования в школах мира были Бейсик и Паскаль. Бейсик всегда считался самым простым языком программирования, а Паскаль — самым подходящим языком для обучения программированию. Но теперь это не так. Да, Бейсик прост. Но он создавался во времена, когда человечество не имело никакого опыта создания компьютерных систем, и основан на устаревших и не оправдавших себя принципах. Собственно, никакой фундаментальной целостной идеи в основе Бейсика не лежит. Сегодня есть простые и при этом более наглядные и идейно замкнутые языки программирования, нежели Бейсик. Паскаль удобен в учебных целях; ведь именно для них он и создавался. Студенты быстро учатся решать с его помощью алгоритмические задачки. Но так получается, что изучать Паскаль полезно только для того, чтобы писать программы на Паскалe. А если нужно создать настоящий программный продукт, Паскаль оказывается неудобен. И студентам, знающим только Паскаль, приходится переучиваться, что часто сложнее, нежели изучить правильные языки и технологии с нуля. Часто слышишь от преподавателей школ и вузов:

«Уж лучше Паскаль, чем Бейсик. И лучше Java, а не Паскаль: в Java есть сборка мусора, а это очень удобно для изучения программирования. А еще лучше какой-нибудь сценарный слабо типизированный язык. Там и сборка мусора есть, и в типах путаться не будут, всё будет просто и понятно.»

Но есть и другие мнения:

«Первый язык программирования должен быть требовательным к ученику. Необходимо, чтобы ученик имел чёсткое представление о том, что его программа делает на каждом шаге, и уметь записывать алгоритмы на строгом формальном языке, без лишних поблажек, которые имеются, например, в языке Перл, где можно писать круглые скобки вокруг аргументов функций, а можно не писать, и делать другие подобные вещи. Первый язык должен быть cтрого типизированным, ибо смешение целых чисел, вещественных чисел и текстовых переменных приводит у начинающих программистов к неправильному представлению о методах хранения данных в памяти компьютера. Чем больше сообщений об ошибках ученики увидят от компилятора, и чем больше из этих сообщений они поймут, тем больше фундаментальных знаний о программировании они получат. Паскаль — неплохой язык в этом смысле. Особенно приятно, что в нём есть проверка на принадлежность индекса массива допустимому множеству значений. Это школьникам очень полезно. Но Паскаль редко применяется на практике, и специалист по паскалю оказывается мало востребованным на рынке труда; для реальной работы приходится учить более популярный язык [1] (Java, C/C++, PHP и т. д.). С языком Си другая проблема: в нём много отпугивающих конструкций. С другой стороны, никто не заставляет учителей показывать все глубины Си. С ним можно [источник?] работать на том же уровне, что и с Паскалем, не занимаясь сложными махинациями c указателями и не используя сложных конструкций.»

«Язык Бейсик, используемый сейчас в большинстве школ, просто вреден как для будущих программистов, так и для обычных школьников. Он не имеет никакой системы отладки [источник?] , не имеет контроля типов и не требует явного объявления переменных. Это приводит к тому, что ученики не могут находить ошибки в своих программах. Ошибки, с которыми они встречаются, обычно неадекватны и создают у учеников отвратное представление о программировании вообще. Бейсик в принципе не пригоден для учебных, и тем более практических целей.»

«Скриптовые языки больше соответствуют потребностям среднего пользователя компьютера. Многие из существующих скриптовых языков имеют достаточно серьёзный идеологический фундамент, замкнутую модель, наглядный естественный синтаксис и хорошие учебные материалы с примерами, в том числе на русском языке. В первую очередь, я имею в виду языки Форт, Руби и Питон.»

«Ныне школьникам приходится работать с морально устаревшими и неудобными системами Borland Pascal и Бейсик. Введение в школах более современных языков программирования автоматически поднимет уровень преподавания информатики, и уровень учителей тоже.»

«Если кто хочет заниматься программированием и идти дальше, желательно начать изучение с Паскаля, прорешивать задачи по циклам, массивам, матрицам и т. д. Когда базовые понятия уже будут заложены можно переходить на Borland Delphi, это тот же Паскаль, только там используется объектно-ориентированный подход. Этот язык имеет Ооо! какие возможности.»

Какие есть альтернативы? [ править ]

Альтернатив много. Ныне есть целый зоопарк (экосистема) языков программирования, которые постоянно эволюционируют, расщепляются и сливаются. Это уже упомянутые выше языки Форт, Ruby и Python. Дерево эволюции видов языков программирования можно найти в Сети [1] [2]. Перечислим ключевые факторы, управляющие отбором:

  • Предоставление языком высокоуровневых средств контроля за целостностью и безошибочностью кодa на первом этапе сборки проектов. Это относится в первую очередь к языкам Java, Haskell, и Python. Языки стараются делать такими, чтобы программист просто не мог допускать ошибок. А если ошибки все-таки делаются, то на этапе компиляции (трансляции) они должны находиться. В частности, опечатка в одном символе не должна приводить к тому, что программа компилится и запускается (а такое бывает, например, в языках Бейсик и Perl, если не указан явно специальный режим strict. Язык Java создавался в контексте анализа типичных ошибок и проблем, возникающих в проектах на языке Си++. Создатели Java постарались внести в синтаксис и базовую парадигму такие ограничения, чтобы типичные ошибки программистов на Си++ просто не могли появиться в проектах на Java. Это очень важная идея: если умело заключить себя в рамки, можно получить выгоду. Следует отметить, что в крупных корпорациях часто программистам выдаётся список правил оформления программ и набор конструкций, которые нельзя использовать в коде, несмотря на то, что сам язык их допускает. Излишняя гибкость языка иногда вредна, так как позволяет программистам писать мутные и запутанные программы. Новые языки программирования делают так, чтобы не искушать программистов и не давать им возможности писать запутано и с ошибками.
  • Чистота и ясность кода, читаемость кода. Далее всего здесь продвинулся, видимо, Руби. Сегодня на всех официальных сайтах программных средств среди первых достоинств указывается «естественность синтаксиса» или «близость к естественному языку» (обычно английскому). Конечно, это немаловажный фактор. Давно прошло время, когда люди подстраивались под компьютеры и кропотливо переводили свои идеи и алгоритмы в машинный язык нулей и единиц. Сегодня компьютеры все более и более подстраиваются под человеческий язык. Это удобно. Увеличивается скорость написания программ, хотя обычно это идёт в ущерб скорости выполнения и вообще рациональности получающейся программы.
  • Чистота и целостность парадигмы, заложенной в основу языка. Например, языки Smalltalk и Ruby базируются на чистой объектно-ориентированной парадигме, а Haskell — на чистой функциональной парадигме. Эта чистота полезна, чтобы программист чётко представлял модель, которой он ограничен, и в терминах которой ему нужно мыслить при проектировании программы.
  • Простота синтаксиса, прозрачность интерпретации языковых конструкций. Например, синтаксис языка Python настолько прост, что его описание помещается на одну страницу. Это позволяет программисту всегда понимать то, что он написал. Простота синтаксиса, которая с одной стороны является ограничением, может быть очень полезной, так как позволяет писать ясные, читаемые программы и не думать о том, как же именно компилятор (интерпретатор) оттранслирует ту или иную конструкцию.
  • Многогранность и гибкость, возможность писать сложные программы коротко и красиво. Таким свойством обладают сейчас языки Perl, Ruby, Python. Но следует отметить, что такая универсальность языков может иметь и недостатки, так как часто приводит к излишнему усложнению синтаксиса. Например, очень многогранен Perl, он богат различными конструкциями и хитрыми штучками, которые позволяют записывать сложную логику очень коротко («коротко о многом»). В итоге очень легко написать программы, которые потом невозможно читать. Впрочем, то же самое касается и языков Си и Си++. Языкам Ruby, Python многогранность даётся с меньшими потерями, нежели Perl и Си++.
  • Наличие стандартных библиотек и наличие средств интеграции проектов друг с другом и с другими системами и технологиями. Cегодня все уважающие себя языки предоставляют средства для работы с базами данных, для создания графических интерфейсов, для работы с сетевыми протоколами и создания приложений с архитектурой клиент-сервер. Сегодня идёт непрерывное соревнование между скриптовыми языками программирования типа PHP, Ruby, Python, Perl и др. в том, насколько хорошо развиты в них средства интеграции с различными технологиями. Кто-то умеет работать с OpenGL, а кто-то нет.
  • Возможность разрабатывать адаптивные системы. Язык должен быть таким, чтобы программы, написанные на нём, не были косными и неповоротливыми. Язык должен допускать возможность внесения малых изменений в код, чтобы подстроится под динамически меняющуюся и усложняющуюся задачу. Краеугольными камнями адаптивности языковых программных средств являются гибкая многоуровневая модульность (как у языков Java, Ruby, Python, Tcl) простота средств экспорта и импорта функциональности (имеются в виду средства, направленные на то, чтобы проекты могли делится друг с другом классами, объектами и функциями) и средства поддержки рефакторинга — глобальных революционных изменений кода, проходящих сквозь модули и направленных на улучшение читаемости кода и избавление от накопившегося в процессе эволюции груза ненужной функциональности.
Читайте также:  Смартфон алкатель видео обзор

Есть и другие номинации. Язык Python сегодня победитель в номинации «простота синтаксиса», а Perl более, чем какой-либо другой язык удобен для обработки текстов и CGI-программирования. Язык Python в принципе создавался как язык интегратор. С его помощью можно интегрировать различные приложения и создавать свои собственные пакеты и новые макроязыки. (Прошу извинения у школьников, которые, скорее всего, не знают, что такое «парадигма программирования», «Скриптовые языки», «Объектно-ориентированное программирование» и «макроязык». На страницах этого журнала мы понемножку будем освещать эти понятия и давать базовые знания, которые необходимы молодому уму, для того, чтобы развиваться и творить, используя современные компьютерные технологии.)

Итак, Perl многогранен, Python прост, Python красив, Ruby тоже молодец, Java и Си технологичны. Номинаций много и явного победителя нет, так же как и нет одежды, которая одинаково хорошо подходит под летнюю, дождливую или зимнюю погоду. Температура и влажность — всего лишь два параметра, а в языках программирования их гораздо больше.

А что можно сказать про Паскаль и Бейсик?

  1. Когда-то я сам программировал на Visual Basic формочки и диалоги, и мне это даже нравилось. И сейчас многие продолжают это делать. Но в программировании на Visual Basic очень мало от программирования и ещё меньше фундаментальных основ информатики.
  2. Borland Pascal нужно просто отправить на пенсию — он своё отслужил.
  3. Статистика показывает, что победители школьных и студенческих олимпиад по программированию пишут в основном на Паскаль. Но следует отметить, что Паскаль активно теснят языки Java, C# и Haskell. В частности, на последней олимпиаде на международном соревновании по функциональному программированию два победителя писали на Haskell (http://www.haskell.org, http://www.cs.luc.edu/icfp). А на международном соревновании ImagineCup победитель использовал язык C#.
  4. Паскаль и Бейсик по-своему неплохие языки, только не пригодятся они при решении практических задач. Конечно, на Delphi (32-разрядная расширенная версия Паскаль) пишутся промышленные системы, но делается это программистами, которые так и не смогли избавиться от своих школьных привычек.

В индустрии компьютерных технологий возникают самые различные задачи. Для одной задачи удобен один язык, для второй — другой. В индустрии WEB-программирования популярны языки Perl, PHP. Мало кто пишет динамические сайты на машинных языках типа Си, так как «игра не будет стоить свеч». Зато при написании операционных систем и системных инструментов, при решении задач, где скорость важна, при разработке крупных систем, от которых требуется переносимость, производительность и технологичность, язык Си является стандартом де-факто. Физики и математики (в том числе школьники) просто обязаны познакомится с функциональными языками программирования типа Лиспа, Хаскелла или Mathematica. Mathematica позволяет строить различные модели и интерактивно исследовать их, по ходу дела визуализируя (О языках, предоставляющих инструменты для визуализации данных, следует отвести отдельный разговор.) результаты и анализируя их статистическими и другими методами. Кроме того, Mathematica позволяет производить символьные вычисления, например, находить производные и первообразные функций, вычислять суммы бесконечных рядов, и др. По-своему хороши, интересны и уникальны языки Prolog, Caml, Clips, Assembler — познакомиться с их принципами полезно каждому программисту.

В поисках царского пути [ править ]

Давайте вернёмся к нашему вопросу — какой язык программирования преподавать в школе?

Бесспорно можно сказать лишь одно: каждый из языков стремится удовлетворить определённому набору требований, жертвуя другими. Так, выбор языка для преподавания определяется в конечном итоге педагогическим методом. Нельзя просто «выучиться программированию», ибо это слишком богатая, необъятная и сложная область. Но можно действовать по принципу отбрасывания бесполезного и изучать то, что содержит больше фундаментальных и полезных идей на единицу технических деталей и сложности усвоения. Интересные эксперименты проводятся в московских школах, в школах Петрозаводска, в физико-математической гимназии № 17 города Винницы и многих других школах. А именно, там используются различные современные языки типа Ruby, Python или Java как первые языки программирования, которым учат школьников. Отзывы учителей и школьников очень положительные. За рубежом накоплен большой опыт в преподавании информатики в школах и колледжах с практикой программирования на самых разных языках. В качестве первого языка используются Java, Lisp, Haskell, Си, Паскаль, Prolog и др. Наиболее популярны следующие линейки языков (последовательности изучения):

Пути увеличения абстракции:

От ассемблера до самых «человечных» языков Ассемблер → Си → Питон или Руби Смещённый в сторону высокоуровневости Си → Си++, Java или C# → Руби, Питон, Лисп или Хаскелл, С математическим уклоном Си → Java → Хаскелл или Mathematica Набор популярных языков разных видов Паскаль → Си → Лисп или Хаскелл → Си++ или Java.

Здесь правильнее рисовать дерево зависимостей между языками. Не имеет смысл изучать и Python, и Ruby, ибо они похожи. Изучать их оба значит загружать учащихся двойным грузом технических деталей, и при этом одарить лишь одним стилем программирования (стилем мышления при проектировании программ). Также неправильно рассказывать студентам и про Си, и Паскаль. Время, потраченное на один из них будет просто потеряно зря. Но тем не менее, шаг от Паскаль к Си делали многие программисты, после чего Паскаль успешно ими забывался. Язык Java стоит рассказывать вместо языка Си++, так как Java более модульный и имеет явно выраженную объектную парадигму, да и намного проще в изучении. Не имеет смысла учить Lisp и Haskell одновременно, разве только студентам факультетов и групп, специализированных на функциональном программировании. А школьникам и студентам первого курса достаточно одного из них. Просто полезно получить представление о том, что бывают стили программирования, отличные от императивного. В этом смысле также полезен язык Prolog. Очень много педагогов соглашается, что рассказывать про один язык программирования так же нелепо, как учить повара готовить только одно блюдо (правда очень хорошо). Нет необходимости знакомить учащихся со всеми тонкостями и техническими подробностями языка программирования. Необходимые детали он сможет узнать сам, если его научат пользоваться документацией. Гораздо важнее познакомить учащегося с различными парадигмами программирования (чтобы наш повар знал о китайской, о русской кухне, и имел представления о всех этапах подготовки пищи — от выращивания овощей до сервировки). Но при этом есть опасность того, что наши поварята не смогут приготовить для себя ничего съедобного. Мнений очень много, и нельзя ничего здесь категорично заявлять.

Важно, чтобы учитель информатики не забывал о главном — о том, что цель не изучить конкретный язык программирования (конечно, живые примеры и практика с конкретным языком нужна), а цель в том, чтобы развивать алгоритмическое мышление, знакомить с разными стилями мышления и методами, которые применимы при решении различных задач . Мне кажется, что в школе правильнее познакомиться (без детального изучения) с несколькими языками программирования. Достаточно вместе с классом разобрать несколько простых классических алгоритмических задач, и посмотреть на то, как они решаются на различных языках программирования.

Вот примерный список этих задач:

  • Сложить два введённых числа.
  • Найти максимум из n введённых чисел (однопроходный алгоритм)
  • Найти n-е число Фибоначчи (знакомство с рекурсией).
  • Вывести таблицу умножения (цикл в цикле).
  • Вывести треугольник Паскаля (попробовать рекурсивный алгоритм с запоминанием и без).
  • Найти сумму обратных квадратов натуральных чисел.
  • Определить правильность скобочной структуры («[]», «[[][]]», «[[]]» — примеры правильных скобочных структур, «][», «[[]», «[[]]]]» — примеры неправильных скобочных структур). Найдите однопроходный алгоритм.
  • Сортировка пузырьком и быстрая сортировка. Численные эксперименты по определению времени работы.
  • Найти кратчайший путь в лабиринте.

/* По рассматриваемому вопросу полезно ознакомиться с проектом Информатика-21. Уже в 2006 году предлагался переход на язык Оберон/Компонентный Паскаль http://is.ifmo.ru/education/_v2a_public.pdf */

О программировании [ править ]

Программирование развивает ясность мысли, умение решать новые задачи и логически мыслить.

Занятия большинства кружков рассчитаны на старшеклассников, но и есть и такие, где предлагают курсы для самых младших школьников. Программа обучения зависит от возраста учащихся. Самые юные программисты изучают основы, программируют простейшие графические объекты. Начиная с 6-7 класса ученики осваивают языки C+, Java, Python, Pascal, Delphi а также занимаются программированием сайтов и мобильных устройств.

Читайте также:  Что такое айти отдел

К окончанию 11 класса многие участники кружков осваивают несколько языков программирования и изучают предметы IT-блока в объеме 1 курса профильных вузов. Неотъемлемая часть обучения — участие в олимпиадах по информатике и программированию разного уровня, разработка собственных проектов и их презентация на профильных конкурсах.

Посещение кружков также можно рассматривать как форму довузовской подготовки на IT-специальности, нередко в программу обучения включены элементы ЕГЭ по информатике. Выпускники кружков программирования, в основном, ориентированы на поступление на факультет ВМиК МГУ, в МИФИ, МФТИ, МГТУ им. Баумана. Нередко именно они становятся победителями Всероссийской олимпиады школьников по информатике и поступают в эти вузы вне конкурса. В обзоре «Учёбы.ру» — 9 кружков, где могут заниматься программированием школьники с 3 по 11 класс.

Московская школа программистов

Московская школа программистов — совместный проект «Яндекса» и Мытищинской школы программистов для учащихся 8-10 классов. Программа обучения в школе рассчитана на три года, занятия проходят в зависимости от группы один или два раза в неделю по выходным в московском офисе «Яндекса». За три года обучения студенты научатся создавать приложения и поймут, как устроены языки программирования, освоят их философию и логику построения, разовьют алгоритмическое мышление. Кроме того, в основной курс входят некоторые разделы математики, выходящие за рамки школьной программы, но необходимые для успешного освоения программирования, а также курсы алгоритмики и кибернетики.

Программа включает такие дисциплины, как современные языки и технологии (C++, Qt), высокоуровневые (C#, Java, Python, Ruby) и низкоуровневые языки (Assembler), программирование систем искусственного интеллекта, программирование мобильных устройств на базе Android, iOS и WindowsPhone, безопасность сетевых технологий, web-дизайн (HTML5, CSS, Flash) и программирование для интернета (JavaScript, PHP, ASP.NET, MySQL). Ученики школы ежегодно участвуют и побеждают в областных и всероссийских олимпиадах по информатике.

Для поступления в школу необходимо сдать вступительный экзамен, который ежегодно проводится в октябре. На нем предлагаются задания по математике, логике и алгоритмике. Начальные знания по программированию не требуются. Для школьников, которые живут далеко от столицы, в этом году открыта «Школа программистов Online».

Компьютерные курсы факультета вычислительной математики и кибернетики МГУ им. Ломоносова

ВМиК МГУ — одно из немногих мест в Москве, где серьезно заниматься программированием можно уже с 3 класса. Для самых маленьких «IT-шников» — учащихся 3-6 классов — факультет предлагает курс «ЛогоМиры». Работая с программой «ЛогоМиры», школьники выступают в роли разработчиков собственных мультимедийных проектов, они научатся создавать анимационные ролики, многостраничные проекты, программировать графические объекты.

На курсе «Программирование на языке Pascal» учащиеся 8-11 классов получат представление о том, что такое алгоритм, язык программирования, программа, научатся алгоритмическому мышлению и будут писать свои собственные программы и игры. Курс «Программирование в среде Delphi» позволит старшеклассникам создавать вполне профессиональные приложения для Windows с продуманным интерфейсом, они изучат возможности среды Dephi и основы объектно-ориентированного программирования.

Вечерняя математическая школа при факультете вычислительной математики и кибернетики МГУ им. Ломоносова

Как и в любую «Школу юных» при МГУ, для поступления в ВМШ необходимо пройти серьезный конкурсный отбор. Факультет заинтересован в поиске талантливых ребят, поэтому принимают в бесплатную школу ведущего IT-факультета России только лучших из лучших. Вступительный экзамен — математика (письменно) — проходит в последнюю субботу сентября. На экзамене предлагаются нестандартные задачи легкого и среднего олимпиадного уровня.

Ученики школы изучают математику, физику и информатику. По информатике читается курс лекций «Теоретические основания информатики, быстрые алгоритмы и язык ассемблера», а также изучаются языки программирования Pascal, C, Python, операционная система Linux. Занятия по каждому курсу проходят один раз в неделю. Обучение в школе способствует общему математическому развитию, формируют систематический подход к решению сложных задач, здесь можно хорошо подготовиться к олимпиадам по математике и информатике, в том числе к олимпиаде МГУ «Ломоносов».

Малый ШАД

Малый ШАД — это лекторий «Яндекса» для старшеклассников, которым интересны информационные технологии. Он был открыт по аналогии с «большим» ШАДом — курсами по анализу данных для студентов и выпускников вузов. Занятия по информатике, математике, лингвистике и смежным областям знаний ведут преподаватели лучших вузов и школ страны, учёные и специалисты IT-компаний. Занятия проходят с октября до конца апреля в московском офисе «Яндекса» по субботам, с 17:00 до 18:45. После каждой лекции — свободное обсуждение темы и ответы на вопросы. Лекции не связаны друг с другом, поэтому каждый школьник может как выбрать интересные для себя темы, так и посещать все мероприятия. В течение семестра слушатели получают задания на дом. Тем, кто успешно их выполняет, в конце года выдают сертификаты об окончании школы. На каждую лекцию необходима отдельная регистрация, поскольку количество мест ограничено. Посмотреть все лекции и задать вопросы можно также в режиме онлайн.

Московский городской Дворец детского (юношеского) творчества на Воробьевых горах

Во Дворце творчества на Воробьевых горах и его филиале «На Донской» работают бесплатные компьютерные курсы для школьников 7-10 класса по двум направлениям программирования — программирование сайтов (HTML, CSS, PHP, MySQL) и программирование на С/С++. Выпускники двухгодичного курса смогут создавать современные сайты и самостоятельно разрабатывать компьютерные программы. Первый год занятий — это изучение технологии и теории «с нуля», второй год — углубленное изучение и разработка собственных проектов (программ, сайтов). С успешными проектами кружковцы выступают на конференциях, конкурсах и выставках: городских, российских и международных. Занятия проходят два раза в неделю: один раз в будние дни и один раз в субботу или воскресенье. Помимо посещения очных занятий в группах, программа предполагает самостоятельную работу с использованием системы дистанционного обучения. Прием в группы проводится по результатам тестирования на владение базовыми компьютерными навыками.

1С: Клуб программистов для школьников

Клуб объединяет школьников из 135 городов России и СНГ, филиал работает в том числе и в Москве. Цель клуба — познакомить ребят с программированием, пробудить интерес к профессии. На выбор школьников здесь предлагается шесть курсов по программированию, системному администрированию, управлению разработкой. Каждый из них рассчитан на один-два года, в течение которых ученик проходит несколько модулей программы, двигаясь от простого к сложному. Занятия проводятся один-два раза в неделю в группах до 10 человек, поэтому каждому ученику уделяется достаточно внимания со стороны преподавателя. Даже один модуль базового курса будет полезен и интересен, а за пару лет обучения школьники получают объем знаний, достаточный для выполнения собственного проекта. В клубе также можно готовиться к олимпиадам по программированию и к ЕГЭ по информатике.

Школа № 179

Легендарная школа, расположенная в самом центре Москвы, известна не только своими математическими классами, но и высокими достижениями учащихся в области информатики и программирования. Здесь работает кружок программирования для начинающих. Приглашаются школьники 8 классов любых школ Москвы, которые хотят освоить основы программирования. Предварительно умения программировать не требуется, но желательно наличие уверенных навыков пользования компьютером. Используется язык программирования Python версии 3, среда разработки Wing IDE 101. Занятия проводятся один раз в неделю по вторникам с 17:00. Занятия в кружке стартуют ежегодно в сентябре, но начать заниматься можно в любое время, требуется регистрация на сайте мосуслуг. Восьмиклассники могут рассматривать посещение кружка как подготовку к поступлению в 9 математический класс школы № 179.

Центр научно-технического творчества и развития

Компьютерная студия «Политех» на базе Политехнического музея работает более 20 лет и предлагает школьникам больше десятка кружков по информатике и программированию. В рамках курса «Программирование игр» дети старше девяти лет изучают среду программирования Scratch, где они смогут создать собственные истории с участием персонажей, мультфильмы и игры. Курс «Программирование Delphi» познакомит школьников с основными понятиями программирования — типами данных, массивами, переменными и алгоритмами. Программа «Создание приложений для Android» ориентирована на ребят от 11 лет, которые хотят создавать собственные приложения на своих персональных гаджетах с использованием языка программирования ObjectPascal.

Moscow Coding School

Курс по основам программирования в среде Minecraft — это лучший способ для школьника приобщиться к программированию в интерактивной увлекательной форме. В течение шести занятий по выходным дням участники будут разрабатывать свою игровую среду в культовой игре Minecraft — строить целые здания и улицы, параллельно изучая такие основы программирования как переменные, циклы и функции. На наглядных примерах ребенок быстро усвоит фундаментальные принципы программирования, которые позже сможет использовать самостоятельно в решении школьных и профессиональных задач. На последнем занятии каждый школьник разработает и презентует свой собственный проект. Занятия проходят в DI Telegraph — многофункциональном пространстве компании Dream Industries в здании Центрального телеграфа. Для обучения потребуется ноутбук с любой операционной системой и установленной игрой Minecraft.

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

Это интересно
Adblock detector