Перейти к содержимому

Какой язык программирования изучают в школе на информатике

  • автор:

Какие языки программирования изучают в школе?

Всем привет.
Вопрос к тем, кто учится прям сейчас, ну или преподаёт в школе.
Какие сейчас языки программирования изучают?
Странные люди вокруг говорят, что некоторые школы преподают аж С++.
Но мне почему-то кажется, что 99% школ изучают, в лучшем случае, Паскаль.
И знакомство с компьютером ограничивается Excel-ем, а вовсе не программированием.
Как оно на самом деле?

Голосование за лучший ответ
Basic или Pascal, В основном паскаль. остальное время это MC Offis. С++ это в универах уже
Вова ИваУченик (19) 6 лет назад
Вот прям в 2017 году?
А в каком классе это происходит?
Илья Игровой Знаток (427) было в 15. Не помню уже в каком классе изучали, ну точно до 10 класса
Кумир, Бейсик, Паскаль, Питон — смотря что знает учитель информатики.

Всё зависит от профиля школы.

Насколько мне известно, в общеобразовательных школах информатику чаще всего воспринимают так же несерьзно, как физкультуру или изо. Поэтому ни о каком серьёзном программировании речи быть не может, максимум алгоритмика.

А если крупно повезёт — Basic или Pascal (последний должны изучать по программе в 8—9кл, в стандартном учебнике по информатике есть даже параграфы о программировании на Pascal ).

А вот что касается хороших физ-мат школ, особенно где есть ИТ-профили, там программирование обычно намного серьёзнее. Знаю несколько лицеев-гимназий, где изучают С++, а где-то даже С#.

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

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

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

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

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

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

Когда-то наиболее популярными языками программирования в школах мира были Бейсик и Паскаль. Бейсик всегда считался самым простым языком программирования, а Паскаль — самым подходящим языком для обучения программированию. Но теперь это не так. Да, Бейсик прост. Но он создавался во времена, когда человечество не имело никакого опыта создания компьютерных систем, и основан на устаревших и не оправдавших себя принципах. Собственно, никакой фундаментальной целостной идеи в основе Бейсика не лежит. Сегодня есть простые и при этом более наглядные и идейно замкнутые языки программирования, нежели Бейсик. Паскаль удобен в учебных целях; ведь именно для них он и создавался. Студенты быстро учатся решать с его помощью алгоритмические задачки. Но так получается, что изучать Паскаль полезно только для того, чтобы писать программы на Паскал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 → Си → Ассемблер

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

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

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

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

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

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

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

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

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

Программирование в школе: что даст изучение IT с младших классов?

Уже совсем скоро дети начнут учиться программированию в начальной школе. Такое решение еще в 2019 году приняло Минпросвещения, изменения внесли в концепцию преподавания предметной области «Технология». В частности, основы создания кодов и языков программирования планируется в ближайшие годы включить в курс математики для младших классов. Это хорошо или плохо?

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

Ожидается, что уже с первого класса школьники будут активно использовать компьютеры для поиска информации, набора текста, работы с данными. С одной стороны, это большой плюс: уже с детского возраста они будут рассматривать ПК не только как источник развлечения. С другой стороны — насколько сильные IT-знания сможет дать школьное программирование? Сегодня, увы, уровень подготовки по информатике хромает во многих учебных заведениях.

С какого класса начинается программирование в школе

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

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

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

Все это приводит к тому, что в неспециализированных школах информатика — непопулярный предмет. В прошлые годы 10% детей не могли преодолеть минимальный порог баллов по ЕГЭ по информатике, то есть получали «двойку», отмечает преподаватель Московской школы программистов,ведущий эксперт ЕГЭ по информатике, заместитель председателя предметной комиссии ЕГЭ по информатике МО Елизавета Беримская.

В этой ситуации необходимо пересмотреть не только сроки старта изучения программирования в школе, но и саму программу по информатике.

программирование в школе

Какие языки программирования изучают в школе

Чаще всего в школе проходят только базовые языки программирования — Pascal, Basic, реже — С. Изучение языков во многом зависит от учителя информатики и специализации школы. Мы в Школе программистов же делаем упор на более современные и востребованные языки — Python, C# и С++.

Бывает и так, что языки программирования вообще отсутствуют в школьной программе, а на уроках информатики дети учатся только создавать презентации и работать в Ms Office и Excel. Как вы понимаете, этих знаний недостаточно для того, чтобы в будущем поступить в технический вуз и освоить профессию IT-специалиста. От того, что дети будут получать эти базовые навыки с младших классов, ситуация кардинально не изменится.

Поэтому решения два: либо изначально отдать ребенка в специализированную школу с высоким уровнем преподавания информатики, либо получать дополнительное образование в IT-школе. Вот почему второй вариант — отличная идея:

  • в IT-школах работают не просто преподаватели по информатике, а опытные IT-специалисты. Они помогут ребенку избежать многих ошибок, поделятся рабочими кейсами и раскроют профессиональные секреты;
  • индивидуальный подход: в IT-школах дети чаще всего учатся в мини-группах, поэтому преподаватель уделяет время каждому ученику. В школе в классе в среднем от 25 человек, что не позволяет учителю полноценно найти индивидуальный подход к каждому ребёнку;
  • разнообразная программа: в школе ученики чаще всего получают только знания, предусмотренные программой. В IT-школах программу дают гораздо глубже и предлагают освоить навыки по разным IT-направлениям;
  • подготовка к ЕГЭ: углубленные знания, которые школьники получают в специализированных IT-школах, позволяют успешно сдать экзамены и поступить в вуз мечты;
  • развитие в сообществе единомышленников: если в школе информатика — обязательный предмет, то в IT-школу приходят по призванию. Ребенок учится среди единомышленников и опытных преподавателей-профи, которые помогают ему с удовольствием погружаться в мир IT и находить друзей по интересам;
  • настоящая подготовка: согласитесь, вряд ли ребенок по-настоящему вникнет в профессию, изучая школьные основы программирования. В IT-школе он начнет делать первые проекты, которые позволят прочувствовать профессию и понять, подходит ли она.

И это только часть преимуществ, которые получает ребенок, поступив в IT-школу. Однако прежде чем отдавать его в учреждение дополнительного образования, убедитесь, что это именно IT-школа, а не курсы. Поясним: популярные ныне быстрые IT-курсы дадут лишь некоторые навыки, но никак не помогут освоить основы профессии программиста. На таких занятиях, которые в среднем длятся 2 недели — 3 месяца, детей учат повторять алгоритмы, код, что угодно, только не мыслить как профи. Грубо говоря, игры, программы и прочее создаются уже по готовому шаблону.

Согласитесь, вы же не станете врачом или медсестрой, если придете на двухнедельные курсы по оказанию первой медпомощи? Так же и в IT: недостаточно пройти курсы и создать сайт по примеру, чтобы стать веб-разработчиком. В настоящей школе программирования развивают IT-мышление: дети не делают что-либо по готовым примерам, а учатся мыслить как специалисты и могут сами создать любой шаблон. Почему так получается? Потому что обучение начинается с основ и двигается от простого к сложному год за годом.

В Школе программистов, например, мы не предлагаем сразу научиться разрабатывать игры или ещё что-то. Прежде чем освоить это, дети получают фундаментальную базу: знания по алгоритмике, дискретной математике, логике и др. Только после этого они создают свои первые программы и пробуют разные IT-направления — дополнительно к основной программе у нас есть 80+ спецкурсов. Мы также готовим ребят к ОГЭ, ЕГЭ и олимпиадам по информатике.

Мы рекомендуем родителям как можно раньше обучать детей программированию — с 3 класса. В младшем возрасте школьники быстрее учатся, а знания закрепляются легче. Обучаясь с детства, ребенок в комфортном темпе осваивает всю базу для будущей успешной IT-карьеры.

Вы ещё не с нами? Помогите ребенку получить фундаментальное IT-образование, которое позволит освоить программирование на глубоком уровне. Для этого зарегистрируйтесь на нашей платформе Informatics и выберите дату вступительного испытания. Мы проверим знания ребенка и поможем подобрать программу обучения.

Особенности преподавания программирования в школе Текст научной статьи по специальности «Науки об образовании»

Текст научной работы на тему «Особенности преподавания программирования в школе»

мы рискуем получить на выходе закоренелого правонарушителя, поэтому все больше учащихся нашей школы стали устанавливать на домашних ПК одну ОС Linux, отдавая предпочтение Runtu.

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

Устанавливая ОС Runtu, вы получаете бесплатный доступ к огромным архивам свободного программного обеспечения, которое удовлетворит даже искушенного пользователя. Репозитории сообществ, множество разработчиков и огромный выбор ПО серверов, баз данных и многое другое открыто для всех желающих.

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

Учтите только одно, что переход на Linux — это не простое форматирование винчестера и установка новой ОС. Это смена типа мышления. Linux хочет, чтобы пользователь думал, а не тыкал мышкой куда попало в надежде, что та или иная программа или устройство заработает. Конечно, потребуются более глубокие знания о компьютере и операционной системе, но это только на пользу. Так что переходите на Linux, но будьте готовы к трудностям. Ну а если все вышеприведенные аргументы в пользу Linux не убедили вас сменить «среду обитания», то не тратьте силы понапрасну — просто вы не созрели для того, чтобы использовать Linux.

1. Путеводитель по программному обеспечению для Linux [Электронный ресурс]. — Режим доступа: http://rus-linux.net/po.php?name= po/linapp.koi

2. Новости мира Linux [Электронный ресурс]. — Режим доступа: http://linux-news.ru/?m=2&n=27&o=8975

Особенности преподавания программирования в школе

Е.Ф. Родыгин (rodygin_evgeny@mail.ru)

МОУ «Лицей № 28 г. Йошкар-Олы»

В государственном стандарте по информатике отмечается, что в результате изучения информатики и ИКТ на базовом уровне ученик в области программирования должен:

1) знать основные свойства алгоритмов, типы алгоритмических конструкций: следование, ветвление, цикл, понятие вспомогательного алгоритма;

2) уметь использовать алгоритмические конструкции, выполнять и строить простые алгоритмы, выполнять базовые операции над объектами: цепочками символов, числами, списками, деревьями;

3) использовать приобретенные знания и умения в практической деятельности и повседневной жизни при выполнении индивидуальных и коллективных проектов, в учебной деятельности, в дальнейшем освоении профессий.

Данные знания, умения и навыки формируются при изучении темы «Алгоритмизация и программирование».

Тема «Алгоритмизация и программирование» является одной из самых сложных тем при изучении курса информатики. В настоящее время существует большое количество проблем в данном направлении.

При построении обучения учащихся теме «Алгоритмизация и программирование» каждый учитель информатики сталкивается с огромным количеством вопросов: как построить изложение материала, какие использовать методические разработки, в какой форме проводить занятия, какие составить практические задания, какой материал использовать учащимся при изучении и другое. Все эти вопросы возникают из-за отсутствия четко и в полном объеме изложенных учебно-методических материалов для изучения данной темы.

Перед началом обучения учителю необходимо выбрать язык программирования с учетом интересов уча -щихся, их направленности и структуры образовательного процесса в школе. Безусловно, в начале обучения

необходимо изучать алгоритмический язык, что является основой для формирования алгоритмического мышления, для понимания и правильного построения алгоритмических конструкций. Но в последнее время уже наблюдается тенденция перехода обучения от алгоритмических языков к объектно-ориентированным языкам программирования, что говорит об изменении общего подхода к преподаванию программирования в школе. Так, в учебниках Н.Д. Угриновича «Информатика и информационные технологии» (для 10-11 классов) и «Информатика и ИКТ. Базовый курс» (для 9 класса) изучается тема «Алгоритмизация и программирование» на основе объектно-ориентированного языка программирования Visual Basic.

На наш взгляд, самым простым в изучении алгоритмическим языком является Turbo Pascal, после которого легко перейти к изучению среды объектно-ориентированного языка программирования Delphi. Для более углубленного изучения может быть использована система PascalABC, в ней реализован диалект языка Паскаль, который позволяет решать довольно сложные задачи с использованием различных средств, таких как модули и объекты. К системе также прилагается специально разработанный электронный задачник, используемый для практического обучения решению задач.

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

Мы предлагаем построить обучение теме «Алгоритмизация и программирование» последовательно, таким образом, чтобы учащиеся на начальной стадии обучения ознакомились с различными языками программирования, смогли понять необходимость изучения алгоритмического языка программирования. В начале изучения учащиеся должны ознакомиться с основными алгоритмическими конструкциями, командами языка, правилами описания объектов языка программирования, структурой программы и правилами написания. Учащимся необходимо сначала сформировать навыки написания простейших программ с использованием алгоритмических конструкций и основных объектов языка программирования, а затем перейти к изучению простых и, далее, более сложных методов программирования.

Еще одной проблемой сегодня в данной области является несоответствие темы «Алгоритмизация и программирование» в плане экзаменационной работы ЕГЭ по информатике федеральному компоненту государственного стандарта общего образования.

В план единого государственного экзамена 2009 года включаются следующие проверяемые элементы содержания обучения:

1) умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки ;

2) умение написать короткую (10-15 строк) простую программу обработки массива на языке программирования или записать алгоритм на естественном языке;

3) умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию ;

4) умение создавать собственные программы (30-50 строк) для решения задач средней сложности.

Все эти элементы включены в блок C, который считается наиболее сложной частью контрольно-измери-ельного материала по ЕГЭ. Данные умения требуют от учащихся 11 классов, оканчивающих обучение в школе, глубокое знание темы «Алгоритмизация и программирование», хорошее владение хотя бы одним из языков программирования: Бейсик, Паскаль, Си и так далее.

На учебный предмет «Информатика и ИКТ» в федеральном базисном учебном плане в 8-х и 9-х классах отводится 105 часов (35 учебных часов из расчета 1 учебный час в неделю в 8 классе и 70 учебных часов из расчета 2 учебных часа в неделю в 9 классе). Из этого количества часов отводится 19 часов на изучение темы «Алгоритмы и исполнители», причем подразумевается изучение формальных исполнителей алгоритмов. Среднее (полное) общее образование базового уровня включает в себя 35 часов в 10 классе и 35 часов в 11 классе (из расчета 1 учебный час в неделю). В данное количество часов не входят часы на изучение темы «Алгоритмизация и программирование». Предполагается, что учитель будет использовать язык программирования во время решения задач при изучении других тем.

Таким образом, объем часов на изучение темы «Алгоритмизация и программирование» не дает возможности в полной мере изучить данную тему в школьном курсе. В этом и заключается несоответствие выделяемого количества часов на изучение данной темы с объемом рассматриваемого материала за данное количество часов, и в этом выражается несоответствие к требованиям выпускника по форме единого государственного экзамена.

Изучение информатики и информационно-коммуникационных технологий в старшей школе на профильном уровне в области программирования направлено на:

1) освоение и систематизацию знаний, относящихся к математическим объектам информатики, построению и описанию объектов и процессов, позволяющих осуществлять их компьютерное моделирование;

2) овладение умениями строить математические объекты информатики, в том числе программы на формальном языке, удовлетворяющие заданному описанию, создавать программы на языке программирования по их описанию;

3) развитие алгоритмического мышления;

4) приобретение опыта создания, редактирования, оформления, сохранения, передачи информационных объектов различного типа с помощью современных программных средств.

Основное содержание обучения информатике на профильном уровне включает изучение следующих тем: «Алгоритмический язык», «Вычислимые функции», «Детерминированные игры с полной информацией», «Доказательства правильности», «Построение алгоритмов», «Типы данных», «Сложность описания объекта», «Сложность вычисления», «События. Параллельные процессы», «Практика программирования».

Очевидно, что примерная программа по информатики и ИКТ, составленная на основе федерального компонента государственного стандарта профильного уровня среднего (полного) общего образования, предоставляет широкие возможности для реализации различных способов изучения темы «Алгоритмизация и программирование». Она включает большое количество часов для изучения данной темы, что дает возможность изучения различных языков программирования на уроках информатики на профильном уровне. Учителя информатики могут предложить собственный подход в структурировании учебного материала, им предоставляется возможность построить учебный процесс так, чтобы изучив один или два структурных алгоритмических языка, учащиеся могли перейти к изучению какого-либо объектно-ориентированного языка программирования.

В результате изучения информатики и информационно-коммуникационных технологий на профильном уровне ученик должен:

1) знать основные конструкции языка программирования, свойства алгоритмов и основные алгоритмические конструкции, тезис о полноте формализации понятия алгоритма;

2) уметь проводить статистическую обработку данных с помощью компьютера, интерпретировать результаты, получаемые в ходе моделирования реальных процессов;

3) использовать приобретенные знания и умения в практической деятельности и повседневной жизни для поиска и отбора информации, в частности, связанной с личными познавательными интересами, самообразованием и профессиональной ориентацией.

Изучение информатики и ИКТ на профильном уровне позволяет выпускнику знать в полной мере хотя бы один язык программирования и уметь писать программы на достаточном для вуза уровне.

Некоторые вузы в этом году требуют сдачи ЕГЭ по информатике при поступлении на технические специальности, а в следующем году, по нашему мнению, все вузы будут использовать такой способ приема на данные специальности. Для этого учащимся необходимо получить высокие баллы сдачи ЕГЭ, что требует обладания глубокими знаниями и хорошими навыками программирования, чтобы уметь решать задачи блока С.

На сегодняшний день стало актуально олимпиадное движение. Олимпиада по информатике предполагает решение учащимися олимпиадных задач по программированию. Роль олимпиад значительно увеличилась, так как после отмены льгот медалистов при поступлении в вузы победа в олимпиадах является самым главным показателем качества знаний учащихся, что дает им право на льготное поступление. Поэтому учителям информатики необходимо обучать программированию, чтобы направлять детей к участию в олимпиадах по информатике.

Таким образом, изучение учащимися темы «Алгоритмизация и программирование» дает учащимся возможность дальнейшего освоения данной профессии, а изучение языков программирования в школе можно начинать с основ любого структурного алгоритмического языка.

В результате данного исследования мы пришли к выводу, что в общеобразовательном классе необходимо вести изучение какого-нибудь одного алгоритмического языка (Basic, Pascal или C), с помощью которого учащиеся познакомятся с основами программирования, а в классах профильного уровня учащиеся должны изучать

несколько языков программирования, включая объектно-ориентированные языки (Delphi, Visual C или Visual Basic). Изучение данных языков необходимо для формирования знаний, умений и навыков программирования, а также для формирования абстрактного, логического и алгоритмического мышления у учащихся.

1. Аркадьев, А.Г. Информатика и ИКТ: сб. нормативных док. / сост.: А.Г. Аркадьев, Э.Д. Днепров. — М.: Дрофа, 2007.

2. Лапчик, М.П. Методика преподавания информатики: учеб. пособие для студентов педагогических вузов / М.П. Лапчик, И.Г. Сема-кин, Е.К. Хеннер — М.: Издательский центр «Академия», 2003.

3. Окулов, С.М. Задачи по программированию / С.М. Окулов, Т.В. Ашихмина, Н.А. Бушмелева и др. — М.: БИНОМ. Лаборатория знаний, 2006.

4. Угринович, Н.Д. Информатика и информационные технологии: учеб. для 10-11 классов / Н.Д. Угринович. — М.: БИНОМ. Лаборатория знаний, 2007.

5. Угринович, Н.Д. Информатика и ИКТ. Базовый курс: учеб. для 9 класса / Н.Д. Угринович. — М.: БИНОМ. Лаборатория знаний, 2007.

Проектно-исследовательская деятельность учащихся на уроках информатики

К.М. Романов (ks2-06@yandex.ru)

МОУ «Красногорская средняя общеобразовательная школа № 2»

В Стратегии модернизации образования отмечается, что важными целями образования стали

— развитие у учащихся самостоятельности и способности к самоорганизации;

— формирование высокого уровня правовой культуры;

— развитие способности к созидательной деятельности, сотрудничеству;

— толерантность, терпимость к чужому мнению; умение вести диалог, искать и находить содержательные компромиссы.

В новой образовательной парадигме учащийся становится субъектом познавательной деятельности, а не объектом педагогического воздействия. Результатом работы учителя становится активная, творческая деятельность обучающегося, далекая от простой репродукции. Ориентируясь на глобальные цели системы образования и учитывая специфику преподаваемого предмета «Информатика и ИКТ», определяем цель: подготовить выпускников, владеющих современными технологиями и в силу этого способных адаптироваться к быстро меняющемуся миру. Исходя из этой цели, ставим задачи:

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

— способствовать развитию творческого потенциала учащихся;

— создавать условия для формирования у учащихся адекватной самооценки;

— способствовать формированию коммуникабельности, умению работать в команде.

Поставленные задачи реализуются на всех ступенях образовательного процесса, выстраивая свою деятельность в рамках образовательных программ, в которых определены цели, задачи, содержание обучения, программное, методическое и техническое обеспечение, принципы использования программ и критерии оценки их эффективности. Реализация этих программ невозможна без использования эффективных педагогических технологий. Для нас такими технологиями стали проектно-исследовательская технология, технология разноуровневого обучения и технология коллективных способов обучения. Их сочетание позволяет сформировать следующие компетенции:

— информационную — способность грамотно выполнять действия с информацией;

— коммуникативную — способность вступать в общение с целью быть понятым;

— социальную — способность действовать в социуме с учетом позиций других людей;

— предметную — способность применять полученные знания на практике.

В нашей деятельности ведущая роль отводится проектно-исследовательской технологии. Предполагая что, если данную технологию применять спланированной и постоянной составляющей частью образовательного процесса, то будут созданы условия для:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *