Журнал LinuxFormat - перейти на главную

LXF108:Python

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Python: мой первый язык

Многие из нас начинали изучать программирование с Pascal или Basic – но действительно ли это оптимальный выбор? Светлана Шапошникова представляет нового претендента на роль первого языка программирования.

Большинство российских школьников и студентов начинают изучать основы программирования, используя язык Pascal. Возможно, когда-то это был действительно разумный выбор, но в настоящее время он, скорее, дань привычке и комплексу старой методической литературы. Сегодня, когда учебным заведениям предстоит миграция на Linux, разработчики большинства «школьных» дистрибутивов включают в состав своих продуктов компилятор Free Pascal (http://www.freepascal.org) и среду Lazarus (http://www.lazarus.freepascal.org). Понятно, что это скорее необходимость, делающая переход на новую систему более спокойным. Но насколько она уместна, если исходить из позиции, что методические разработки – дело наживное? Нет ли языка, более родного для Linux и в то же время не уступающего Pascal’ю по своим образовательным возможностям (а ведь Pascal был создан для обучения программированию)?

(thumbnail)
Рис. 1. Pascal и Python: почувствуйте разницу.

Если вам доводилось работать с детьми и обучать их основам программирования (да, в принципе, неважно чему), то вы могли заметить следующее: детская психология при изучении нового материала весьма требовательна к наглядности, концентрации на главном и сведению к минимуму иных «раздражающих» факторов. Кроме того, сегодняшние дети начинают изучать программирование несколько раньше, чем десять лет назад. Зачастую предмет «Информатика» уже присутствует в третьем-четвертом классах, а следовательно, к программированию можно подойти уже к пятому-шестому. 11-12-летние дети могут быть психологически не готовы воспринимать то, что вполне приемлемо для 15-летних. Например, обилие числовых типов данных в Pascal, «громоздкий» синтаксис языка. Хочется, чтобы первый язык программи- рования был достаточно прост и ясен. Конечно, для средней школы может подойти Лого, однако он более ориентирован на младшеклассников, а также чаще используется при изучении темы «Алгоритмика», а не «Программирование». Лого – хороший заменитель алгоритмического языка А.П. Ершова (широко используемого на уроках информатики в 80-90-х годах) для детей младшего школьного возраста. Если же говорить о первом настоящем языке программирования, то, возможно, следует обратить внимание на язык Python (http://python.org). В русском языке это имя часто читают как «Питон», но вообще-то правильное произношение – английское, «Пайтон».

Почему Python?

(thumbnail)
Рис. 2. Строгий синтаксис Python заставляет ученика правильно оформлять код.

Python был создан Гвидо ван Россумом [Guido van Rossum] примерно в 1991 г. Его отличительной особенностью является простой и ясный синтаксис. С одной стороны, вспомогательные элементы языка сведены к минимуму: это позволяет делать меньше ошибок на начальном этапе обучения программированию и быстрее писать программы. С другой стороны, Python жестко регламентирует «правила отступов», поэтому воспитание аккуратности и внимательности не пострадает. Учащиеся привыкнут к хорошему стилю программирования. Чтобы преимущества Python стали очевидными, достаточно сравнить код небольшой программы, написанной на нем и на Pascal (рис. 1). Большое количество «begin-end» в сочетании с необязательностью соблюдения отступов делают проверку программы, написанной на Pascal, мукой. Кроме того, приучив ученика к строгости стиля Python, мы вынуждаем его видеть и понимать управляющие структуры (рис. 2).

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

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

А где удобства?

В качестве одного из достоинств Pascal некоторые авторы отмечают наличие у него интегрированной среды программирования, включающей редактор, компилятор, компоновщик, отладчик и др. С Python не все так однозначно. Чтобы начать работать в интерактивном режиме, следует набрать команду python в консоли. Кроме этого, существует специальная интегрированная среда разработки IDLE (в дистрибутиве для Windows она присутствует по умолчанию, в Linux требуется доустановить пакет). Преимущество консоли – в возможности прокручивать историю команд, а IDLE – в подсветке синтаксиса. Но поскольку в режиме интерпретатора более-менее длинных программ все равно не напишешь, то первое преимущество, думается, значительнее. Для создания же скриптов [так часто называют программы на Python, второй вариант – «сценарии». Скрипты Python обычно имеют расширение .py, хотя это совершенно не обязательно, – прим. ред.] пригодно большинство текстовых редакторов Linux (не считая IDLE, в которой тоже можно набирать и сохранять файлы). Чтобы выполнить скрипт, достаточно дать команду python путь/имя_программы. И, наконец, для Python существуют специальные (содержащие большее количество инструментов, чем IDLE) среды разработки: например, DrPython (http://drpython.sourceforge.net) и Eric (http://www.die-offenbachs.de/eric) – см. рис. 3. И если первая ориентирована на школьников, то вторая больше подходит для серьезных задач. Помимо прочего, синтаксис Python поддерживает и KDevelop, так что каждый может выбрать «на свой вкус и цвет».

А дальше?

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

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

Содержание образования меняется, должны меняться и его «инструменты». Следует, конечно, учитывать и человеческий фактор: многим учителям с большим стажем и энным количеством методических разработок по Pascal или Basic трудно перейти на что-то новое (да и приемные комиссии некоторых ВУЗов еще требуют от абитуриента знания именно Pascal). Поэтому включение в «школьные» дистрибутивы компилятора FreePascal сегодня является необходимостью. Однако начинающие учителя информатики, не обремененные опытом, возможно, найдут Python весьма подходящим языком для обучения основам программирования.


Персональные инструменты
купить
подписаться
Яндекс.Метрика