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г.
Просмотров: 6225
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

02.12.2013г.
Просмотров: 3024
Комментарии: 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