Python – в школу!::Журнал СА 10.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6142
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6854
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4137
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2976
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6282
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3433
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12335
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13966
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9098
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7052
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5361
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4593
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3400
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3127
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Python – в школу!

Архив номеров / 2006 / Выпуск №10 (47) / Python – в школу!

Рубрика: Карьера/Образование /  Образование

Сергей Супрунов

Python – в школу!

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

Что должно быть на уроках информатики?

Сейчас со школьным предметом «Информатика» сложилась довольно неприятная ситуация – он теряет роль фундаментальной дисциплины, вырождаясь в некие курсы подготовки секретарей-машинисток.

Однако основная задача средней школы – дать общее образование, то есть понимание процессов, которые заложены в то или иное явление. Мы же не учим детей на уроках физики, как менять головку блока цилиндров двигателя ЕМЗ-236? И на биологии не преподаётся практика протезирования зубов. Эти вопросы – уже задача профессионального образования, но никак не общего.

А вот с информатикой получилась ситуация как раз противоположная. Определённые «общие» понятия, такие как архитектура ЭВМ (по плакатам, нарисованным в 80-х годах) и основы алгоритмизации, по инерции ещё преподаются, хотя порой и с довольно сильным отрывом от действительности.

А вот практическая составляющая сводится к программам типа «Введите A, введите B, получите A + B» на Бейсике и «глубокому» освоению процедуры создания таблицы в Word, когда любое отклонение мышки от заданной преподавателем траектории жестоко карается...

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

По моему глубокому убеждению, сейчас назрела необходимость вернуть информатике былую «фундаментальность», когда изучаются не последовательность «кликов» для запуска веб-браузера, а основы архитектуры операционной системы и её организация; не назначение иконок на панели инструментов в Excel, записываемое под диктовку, а базовые понятия графического интерфейса пользователя... Причём в идеале – абстрагируясь от конкретной операционной системы.

Безусловно, практическая работа тоже необходима, но именно как практикум, дополняющий основной курс.

Нужно ли изучать языки программирования?

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

Ну а как тогда объяснить школьнику, как именно работает операционная система или тот же Word? Без понимания основ программирования, без прикосновения к ним на практике информационные системы так и останутся «чёрными ящиками», а неизвестность ведь всегда пугает.

Естественно, не нужно ставить своей задачей научить школьника писать драйверы к Linux или полнофункциональные клиенты для сетей BitTorrent. Но показать частичку этого «волшебства», когда из нескольких десятков строк самых обычных букв и цифр рождается работающая программа – это просто необходимо.

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

Что нам надо от языка программирования?

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

Во-первых, он должен быть прост и понятен. Если для того, чтобы вывести на экран любимое всеми «Hello, world!», потребуется целую четверть рассказывать пятиклассникам про «кучи», стеки и динамическое выделение памяти, то такой язык должен быть отброшен сразу.

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

Во-вторых, такому языку программирования нужна определённая «прозрачность», чтобы детали работы разрабатываемой программы не были скрыты за «виджетами и прочими гаджетами».

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

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

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

Почему Python – лучший выбор?

Теперь попытаюсь объяснить, почему я вынес в заголовок статьи именно Python. Анализ сформулированных выше критериев показывает, что Python в той или иной мере соответствует всем этим требованиям.

Написать первую программу на нём предельно просто:

print ‘Ура! Я программирую!!!’

И всё! Если потребуется в будущем показать на практике концепцию переменных, просто развиваем этот скрипт:

message = ‘Ура! Я использую переменные!!!’

print message

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

Python прекрасно подходит для демонстрации и пооперационного (линейного), и процедурного, и объектного подходов. Так что преподавателю не придётся переключаться с одного языка программирования на другой по мере усложнения излагаемого материала.

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

Прозрачность Python тоже не вызывает сомнений – вплоть до того, что можно заглянуть в исходный код какого-то модуля и убедиться, что внутри у него всё то же самое, что рассказывает преподаватель. Да и что может быть прозрачнее, чем открыть обычный текстовый файл, ввести самые обычные строки и получить итоговый результат безо всякой компиляции, компоновки и т. п.?

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

Далее, Python – безусловно, современный язык. Достаточно открыть любой дистрибутив Linux и посмотреть, что используется для многих средств администрирования и даже игр. Это же говорит и о том, что им пользуются на практике, что это – «живой», постоянно развивающийся язык программирования.

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

А что же его «конкуренты»? Basic и Pascal, внеся немалый вклад в развитие информационных дисциплин, к сожалению, потеряли свою актуальность. Их «визуальные» последователи – Visual Basic и Delphi – мало пригодны для преподавания программирования, поскольку не позволяют видеть скрывающийся за «мастерами» код, и тем самым не дают полного понимания того, как на самом деле работают программы. Да и высокая стоимость инструментов разработки не позволяет их применять достаточно широко (даже если школы и получат их по какой-нибудь льготной «академической» лицензии, школьники всё равно будут лишены возможности поставить на свой домашний компьютер полноценную версию).

Про языки «семейства Си» вообще можно не упоминать – их сложность просто непостижима для школьного уровня. К сожалению, сюда же я отношу и Java. Несмотря на высокую популярность этого языка, особенно в корпоративном секторе, и сравнительную простоту разработки, всё же его «абсолютная и непреклонная объектность» будет являться барьером на первых шагах обучения.

Perl? Да, хороший, мощный, ни в чём не уступающий языку Python. Но его вольный стиль и возможность писать код хоть ёлочкой, хоть столбиком, хоть вообще в одну строку – слишком тяжёлое испытание для неокрепших детских пальчиков, не привыкших к определённому стилю программирования. Да и графический интерфейс Python более «интегрирован» в язык, чем графические модули к Perl. Кроме того, следует отметить и более ясную и простую для понимания объектную концепцию Python.

В последние годы Perl всё больше и больше вытесняется набирающим силу PHP, причём не только на ниве веб-программирования. Безусловно, это очень простой и понятный язык, но, на мой взгляд, он имеет и те черты, которые я отнёс к недостаткам языка Perl, в частности, излишнюю «вольность» стиля. Плюс к этому его (былая, но ещё не забытая) ориентированность на веб-разработку может привести к слишком однобокому подходу в его преподавании.

Кстати, английского языка бояться не нужно. Есть мнение, что использование «реальных» языков программирования создаёт определённый барьер для детей, изучающих другой иностранный язык, не английский. Но поскольку в программировании не требуется знать времена глаголов и правила построения деепричастных оборотов, а выучить пару десятков новых слов – вряд ли такая уж непосильная задача, то на самом деле нет и никакого барьера. Так что различные искусственные языки вроде РЯПдш («Русский Язык Программирования для школы») лишь усложняют ситуацию, отрывая теорию от практики и плодя лишние сущности.

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

  1. Ремнёв А. А. Программирование в курсе средней школы. – http://som.fio.ru/item.asp?id=10009522.
  2. Ильясов А. Н. Один из подходов к изучению программирования в базовом курсе информатики средней школы – http://www.ito.su/2001/I/I-2-38.html.

Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru