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

Python как основной язык программирования в средней школе

Язык программирования в средней школе. Смотреть фото Язык программирования в средней школе. Смотреть картинку Язык программирования в средней школе. Картинка про Язык программирования в средней школе. Фото Язык программирования в средней школе

Рубрика: Информационные технологии

Дата публикации: 02.02.2019 2019-02-02

Статья просмотрена: 2129 раз

Библиографическое описание:

Сорокина, Н. А. Python как основной язык программирования в средней школе / Н. А. Сорокина. — Текст : непосредственный // Молодой ученый. — 2019. — № 5 (243). — С. 15-16. — URL: https://moluch.ru/archive/243/56193/ (дата обращения: 29.04.2021).

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

Ключевые слова: Python, языки программирование, школа.

В настоящее время программирование становится неотъемлемым инструментом деятельности широкого круга лиц: от специалистов в сфере услуг до ИТ-специалистов. Самыми популярными языками программирования являются Java, С, C++, Python, C# [1]. Их изучение начинается, как правило, со школы: учащиеся осваивают минимальный уровень владения каким-либо языком и могут применять имеющиеся знания при решении задач.

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

Он прост в изучении и многогранен в использовании. В отличии от языков программирования семейства С, Python более понятен школьникам в синтаксисе. Basic и Pascal, хоть и хорошо подходят для знакомства и оттачивания навыков, но несмотря на свою популярность, их сложно назвать современными. Эти языки вытесняются продуктами более высокой ценности. Языки Java и Ruby ориентированы на опытных пользователей, которые могут прогнозировать и находить ошибки при написании программного кода, создавать программы, не рассматриваемые в школьном курсе. Таким образом, промежуточное место, по нашему мнению, занимает Python который целесообразно изучать в школьном курсе информатики. Также, дополнительное и более глубокое изучение языка Python, поможет подготовить учащихся к изучению языков более высокого уровня, если ребенок будет проявлять интерес при его изучении.

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

Python достаточно прост в изучении, многогранен и разносторонен в использовании [3]. На Python активно пишут различные приложения, игры, веб-сайты, а в школах реализуются индивидуальные проекты. Отметим также тот факт, что участие школьников в некоторых олимпиадах предполагает наличие знаний данного языка программирования. В силу того, что время участия ограничено, учащемуся нужно тратить как можно меньше времени на написание программного кода, в чем опять же, выигрывает Python. Так, к примеру, нахождение минимального элемента в строке в Python можно найти с помощью написания одного слова min, в то время как в Pascal, например, нужно сравнивать элементы друг с другом, вводя дополнительную переменную.

Важно во время изучения языка программирования школьникам говорить о том, что в разных языках при написании программ используются разные конструкции, как в случае с примером выше, но реализуются одни и те же алгоритмы. Использование таких «сокращенных» конструкций в языке Python экономит время работы учащихся с задачей, и дает возможность решения и написания большего количества программ. Вообще, за все время обучения целесообразно проговаривать, откуда что берется, и почему используется такая запись. Это один из основных вопросов методики преподавания языка Python. Задача учителя как раз-таки состоит в том, что, прежде чем давать какой-либо метод, необходимо рассказать о нем, и убедиться, что школьники понимают, как он работает. Вот именно тогда и не возникнет проблема перехода к языкам более низкого уровня! Использование некоторых конструкций типа max, min, sort и т. д. наоборот, облегчает работу школьника, избавляя его от написания возможных ошибок.

В школе можно работать на Python как онлайн на сайте repl.it, так и установив специальную программу. Для работы с Python достаточно иметь любую операционную систему Windows. Также полезной будет работа с сайтом pythontutor.ru, на котором пошагово можно отследить, что происходит в теле программы. Особенно важно это показывать на первых уроках, чтобы школьникам было понятно, что происходит внутри программы. На сайте имеется как теоретическая информация, так и предоставляется возможность решения некоторых практических задач для тренировки.

Главным недостатком Python, как признаются сами разработчики, является то, что программы, написанные на нём, работают медленнее, чем созданные на компиллируемых языках (C, C++). Но порой важна именно скорость разработки, а не быстродействие программы. И как уже было упомянуто выше, писать на Python выходит быстрее, чем на многих других языках [2]. Учащихся необходимо с первых занятий приучать к грамотному написанию программного кода, так как в большой и объемной задаче при обнаружении ошибки может потребоваться много времени для ее исправления. К недостаткам также можно отнести тот факт, что наличие различных версий языка влечет за собой несовместимость некоторых программ.

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

Источник

Проблемы выбора языка программирования в школьном курсе информатики

Язык программирования в средней школе. Смотреть фото Язык программирования в средней школе. Смотреть картинку Язык программирования в средней школе. Картинка про Язык программирования в средней школе. Фото Язык программирования в средней школе

Рубрика: Информационные технологии

Дата публикации: 18.12.2015 2015-12-18

Статья просмотрена: 2709 раз

Библиографическое описание:

Бобров, А. Н. Проблемы выбора языка программирования в школьном курсе информатики / А. Н. Бобров. — Текст : непосредственный // Молодой ученый. — 2015. — № 24 (104). — С. 61-64. — URL: https://moluch.ru/archive/104/24471/ (дата обращения: 29.04.2021).

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

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

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

С другой стороны 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.

Многие преподаватели заявляют, что не важно, какому языку обучать, главное — чтобы ученик разбирался в алгоритмах. Это правда, но только отчасти. Изучение алгоритмистики, умение читать и составлять качественные алгоритмы — это основы основ. Понимая азы программирования, и разбираясь в синтаксисе одного языка, можно разобраться в синтаксисе другого языка. Но есть языки с отличными синтаксисами, собственными конструкциями, которых нет в других языках. В результате может получиться так, что понимание алгоритма есть, а синтаксис без справочника прочитать сложно или невозможно.

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

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

Источник

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

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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В индустрии компьютерных технологий возникают самые различные задачи. Для одной задачи удобен один язык, для второй — другой. В индустрии 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. Очень много педагогов соглашается, что рассказывать про один язык программирования так же нелепо, как учить повара готовить только одно блюдо (правда очень хорошо). Нет необходимости знакомить учащихся со всеми тонкостями и техническими подробностями языка программирования. Необходимые детали он сможет узнать сам, если его научат пользоваться документацией. Гораздо важнее познакомить учащегося с различными парадигмами программирования (чтобы наш повар знал о китайской, о русской кухне, и имел представления о всех этапах подготовки пищи — от выращивания овощей до сервировки). Но при этом есть опасность того, что наши поварята не смогут приготовить для себя ничего съедобного. Мнений очень много, и нельзя ничего здесь категорично заявлять.

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

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

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

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

Источник

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

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