Лучший способ предсказать будущее – создать его. Алан Кей
Компьютерная революция еще не началась
Для читателей нашего журнала компьютер наверняка является чем-то привычным и обыденным: на работе, дома, иногда в портфеле и очень часто в кармане, если речь идет о смартфоне или КПК (хотя даже обычный мобильный телефон с поддержкой Java нередко обладает бoóльшими вычислительными возможностями, чем рядовой десктоп лет пятнадцать назад). А ведь миллиарды людей все еще не имеют доступа к этому благу цивилизации. Но главная проблема даже не в количестве компьютеров, а в том, каким образом и для чего они применяются. Согласитесь, подавляющее большинство из нас используют их для совершенно обыденных целей – создания документов, общения, поиска нужной информации и, конечно же, развлечений (кто бы мог подумать на заре компьютерной эры, что основным «катализатором» роста числа гигагерцев и гигабайтов будут игры, фильмы и другие способы убить время, но никак не новые возможности творчества и созидания). Конечно, современный офисный служащий уже вряд ли способен представить свою работу без компьютера, но в большинстве случаев приходится констатировать, что техника позволила ему лишь быстрее и проще выполнять все ту же рутинную работу.
Теперь попытаемся честно ответить: действительно ли компьютеры значительно преобразовали нашу жизнь? Избавили ли от обыденности? Открыли ли дорогу к творчеству и по-настоящему неограниченным возможностям обработки информации? Ответы будут скорее отрицательными. На каждую тысячу пользователей ПК приходятся лишь единицы тех, для кого справедливо обратное, – ученые, конструкторы, дизайнеры... На самом деле не так уж много профессий, для которых мощь современных вычислительных средств позволила совершить нечто такое, чего без них нельзя было бы сделать.
Таким образом, главная проблема, на наш взгляд, заключается, во-первых, в низком уровне компьютерной грамотности среднестатистического пользователя, который часто даже не догадывается о потенциале доступных ему вычислительных средств, и, во-вторых, в несовершенстве программного обеспечения, развивающегося не за счет предоставления принципиально новых возможностей, а путем банального добавления очередных «рюшек», которые весьма умело преподносятся маркетологами как признаки прогресса. Причем оба фактора образуют, по сути, замкнутый круг: отсутствие запросов от неподготовленных пользователей не понуждает к совершенствованию ПО, что, в свою очередь, не требует повышения уровня их образования и квалификации.
В этом контексте понятным становится утверждение, вынесенное в заголовок раздела. Его автором является небезызвестный Алан Кей (Alan Key) – человек, некогда изобретший термин «объектно-ориентированное программирование», а сейчас активно работающий над проектом OLPC. Далее он поясняет: «Большинство школ определяют компьютерную грамотность как умение работать с Microsoft Office и, в лучшем случае, наличие навыков веб-дизайна. Они ошибаются. Это все рано что утверждать, будто знание того, какой стороной держать книгу и как найти в ней третью главу, и означает грамотность. На самом же деле под ней надо понимать наличие идей – весьма важных, чтобы обсуждать их и представлять в какой-то форме». Еще он обращает внимание на то, что для достижения компьютерной грамотности наличие компьютера у ученика является необходимым условием, но отнюдь не достаточным. Аналогично тому, как само по себе присутствие в классе пианино не гарантирует развитой музыкальной культуры, поскольку последняя воплощается только в людях (squeakland.org/school/HTML/essays/face_to_face.html).
Поэтому в данной статье мы поговорим о проектах, которые нацелены на обучение ключевых участников процесса компьютеризации, – людей, создающих компьютерные программы.
Alice – минимум упрощений
Проект Alice примечателен тем, что получил достаточно широкое распространение в США, – по некоторым данным, сегодня его используют уже около 10% американских колледжей. Он создан и поддерживается университетом Карнеги Меллона (CMU, cmu.edu), а предлагаемое в его рамках ПО бесплатно и доступно для всех желающих. Оно существует в версиях для Windows, Mac OS и Linux, а также в двух редакциях – основной, предназначенной для вузов, и упрощенной, нацеленной на применение в школах.
Прежде чем перейти непосредственно к рассмотрению возможностей Alice, вероятно, следует упомянуть о его создателях, среди которых выделим Рэнди Пауша (Randy Pausch) – профессора CMU, исследователя в области компьютерной графики и пользовательского интерфейса. В частности, в свое время он по данным вопросам консультировал Google – следовательно, в том, что веб-приложения интернет-гиганта славятся своим «юзабилити», есть и его заслуга. Рэнди посвятил жизнь тому, чтобы сделать программирование более доступным для многих людей, и считает Alice своим главным проектом. К сожалению, он болен неизлечимой формой рака и осенью прошлого года прочитал последнюю лекцию в университете, которая вызвала значительный резонанс в массмедиа, – издательство Hyperion даже приобрело за 6,7 млн долл. права на издание книги по ее мотивам www.TheLastLecture.com.
Итак, Alice представляет собой среду, в которой можно манипулировать 3D-объектами (двигать, вращать, менять цвет и т. д.) и создавать программы, генерирующие анимацию в виртуальных мирах. Она очень похожа на профессиональные современные IDE. Рабочая плоскость разбита на несколько окон: в одном в реальном времени отображается виртуальный мир; в другом присутствует дерево объектов, и для каждого из них предоставляется набор доступных свойств; центральной часть отведена, естественно, под редактор исходного кода; имеется и специальная область событий, позволяющая управлять всем происходящим. Кнопка Play запускает созданный виртуальный мир на исполнение – при этом открывается отдельное окно.
Предложенная в Alice концепция обучения фактически представляет собой погружение в мир объектно-ориентированного программирования без каких-либо существенных и зачастую ненужных упрощений этой парадигмы – манипулировать объектами можно только посредством их свойств и методов, как предопределенных, так и самостоятельно созданных. На некоторые уступки разработчики пошли лишь в функциональном плане – во-первых, в среде Alice максимально сокращен объем ввода с клавиатуры (он потребуется разве что для названий новых элементов), для подавляющего большинства действий достаточно мыши, во-вторых, код программы не является текстом в привычном понимании – в рамках одного метода он представляет собой набор вложенных блоков, выделенных цветом в зависимости от типа (циклы, условные переходы и пр.), их можно сворачивать, перетаскивать, изменяя порядок, и т. д. Облегчен и язык программирования – он не относится к числу известных и распространенных, а создан специально для этого проекта, хотя и почерпнул множество идей из современных ОО-языков. Однако среда разработки Alice умеет отображать созданную программу в Java-стиле – достаточно лишь выбрать соответствующую опцию в настройках.
Как уже отмечалось, в отличие от распространенного в обучении программированию подхода, когда в первую очередь знакомятся с понятием данных и алгоритмов, Alice использует ООП изначально. Проведенные создателями проекта исследования показали, что это способствует более глубокому пониманию концепции ООП – ведь если студенты сразу начинают оперировать объектными понятиями, то им нет необходимости переучиваться, что неизбежно происходит при переходе от одной парадигмы программирования к другой.
В следующей версии Alice, которая должна увидеть свет в текущем году, ожидается, в частности, появление новых персонажей, которые будут позаимствованы из Sims 2 (самой популярной компьютерной игры всех времен), – это стало возможным благодаря поддержке проекта со стороны Electronic Acts. Также разработчики обещают пересмотреть и язык программирования, который нередко подвергался критике за то, что был скорее основанным на объектах, чем полностью объектно-ориентированным – вероятно, им станет полноценный Java.
Еще раз дадим слово авторам проекта: «Наша задача – изменить первое впечатление студентов о компьютерном программировании. Мы верим, что Alice как минимум избавит начинающих от многих разочарований, а также предоставит им среду для создания таких программ, которые в любом другом случае оказались бы им не по силам». Подводя итог нашему знакомству с Alice, можем смело констатировать, что проект развивается вполне в духе заявленных целей и при этом оставляет самые приятные впечатления – неслучайно вокруг него образовалось целое сообщество сторонников, и многие из них не только предлагают собственные методики обучения, но и нередко пытаются использовать Alice как профессиональный инструмент для создания анимации. Такой успех, конечно же, основывается на нескольких особенностях, среди которых стоит выделить:
-
близость среды разработки и языка с инструментами, используемыми современными программистами – буквально с самого начала обучаемые осваивают концепции, которыми мыслят профессионалы;
-
сокращение клавиатурного ввода до минимума, что заметно упрощает создание программ людьми, не обладающими развитыми навыками набора текста, да и вообще начинающими;
-
использование оригинальной идеи построения анимации в виртуальном мире, что позволяет наглядно представлять процесс исполнения программы и упрощает поиск ошибок.
Squeak – стандартный компонент OLPC Squeak предназначен не только для обучения, но и для профессионального программирования Squeak был инициирован в корпорации Apple Computer в 1996 г., позже его разработка продолжилась в компании Walt Disney Imagineering. Проект примечателен тем, что к его созданию приложил руку сам Алан Кей, благодаря чему Squeak входит в набор стандартного ПО для OLPC.
Идейно Squeak заметно отличается от Alice тем, что обучение является лишь одним из возможных его применений, в целом же он ориентирован на фактически профессиональное использование. Для этого Squeak объединяет в себе мощную (хотя и несколько старомодную) IDE для языка Smalltalk и виртуальную машину для исполнения программ. Интерес к нему со стороны студии Walt Disney не случаен – проект изначально предполагал широкие мультимедийные возможности (аудио, двух- и трехмерную графику).
Сам Smalltalk в особенном представлении не нуждается, отметим только, что это один из первых ОО-языков, притом «чистый», т. е. его объектная природа была заложена изначально, а не привита впоследствии. Как и множество других популярных языков программирования, он создавался в качестве средства обучения, а одним из его главных авторов был именно Алан Кей.
На текущий момент Squeak существует в виде Open Source проекта и перенесен на множество платформ (свыше 20, а для прочих на сайте размещены детальные инструкции по портированию). Для него имеется множество надстроек и разнообразных расширений, к примеру Etoys, ориентированная на разработку игр, практикующая упрощенный скриптовый стиль и, соответственно, прекрасно подходящая для обучения программированию детей – неслучайно Etoys также входит в стандартный комплект ПО для OLPC. Однако это далеко не единственное предназначение Etoys – с его помощью также учат рисовать на компьютере, создавать презентации и даже проводить физические симуляции! Использование динамичных изображений для представления всевозможных процессов является основной идеей проекта, поэтому ребенок не просто изучает программирование само по себе, а делает это с пониманием того, каким образом оно может пригодиться в его жизни, даже если затем изберет себе профессию, напрямую с разработкой компьютерных программ не связанную. Есть и специальный вариант Etoys под названием Simstories.
Scratch – просто, наглядно, красиво Scratch очень нагляден и привлекателен, код упрощенного варианта культовой игры PacMan целиком помещается на одном экране Scratch – это проект, созданный в недрах такого гранда компьютерной науки и образования, как Массачусетский технологический институт (MIT, mit.edu). Его разработкой занималось одно из самых именитых подразделение – MIT Media Lab. Примечательно, что Scratch основан на Squeak, но распространяется не в качестве дополнения к нему, а как полноценная самодостаточная среда.
Во многом Scratch похож на Alice, он обладает привлекательным интерфейсом и ориентирован на создание анимации, но общий подход к программированию в нем упрощен (аналогично Etoys), что в качестве аудитории предполагает скорее детей школьного возраста, чем студентов вузов.
Основополагающая идея Scratch выражена лозунгом: «Imagine, Program, Share!». Простота реализации решений от идеи до воплощения здесь комбинируется с простотой предоставления доступа к созданным программам – непосредственно из IDE свою разработку можно загрузить на сайт проекта, откуда она будет доступна для просмотра практически в любом браузере с помощью Java-апплета. При желании каждый из таких общедоступных проектов можно также открыть в IDE Scratch и познакомиться с его внутренним устройством.
Благодаря высокому качеству реализации и целостности концепции проект стремительно набирает популярность, переведен на множество языков и продолжает активно развиваться.
Microsoft Boku – для самых маленьких Один из разработчиков Boku демонстрирует свое детище, предназначенное для выполнения на Xbox Microsoft, традиционно оказывающая всемерную поддержку разработчикам, решила также приобщиться к обучению программированию подрастающего поколения. Один из проектов – Microsoft PopFly, ориентированный на визуальное программирование в Сети, мы уже рассматривали, а сейчас обратим внимание на другой, не менее многообещающий – Microsoft Boku.
К сожалению, пока что информации о данном проекте не слишком много, он находится в процессе разработки, однако основные элементы уже демонстрировались публике на различных выставках. Boku также предлагает средства визуального программирования для детей, причем с достаточно юного возраста (до 10 лет). Однако больше всего этот проект примечателен тем, что в качестве платформы предполагает использование популярной игровой консоли от Microsoft – Xbox 360.
Сам Boku – это виртуальный робот, существующий в симпатичном трехмерном мире, управляя которым, подобно компьютерной игре, ребенок сможет изучать основные концепции программирования. Высококачественная графика и максимально упрощенный подход, использование контроллера консоли обещают сделать весь процесс весьма увлекательным.
Идея Boku отнюдь не надумана. Многие дети хотели бы сами создавать компьютерные игры, но в реальности это оказывается для них слишком сложно. Предложенный подход, по замыслу разработчиков, сможет заинтересовать детей, а несколько уровней сложности позволят им постепенно осваивать необходимые концепции и средства, что дополнительно упростит процесс обучения и сделает его доступным для самой широкой аудитории.
Заключение
Итак, мы рассмотрели несколько, без сомнения, инновационных проектов, предназначенных для обучения молодых людей программированию. Несмотря на различия в подходах, всех их объединяет желание максимально заинтересовать ученика, сделать процесс интересным и увлекательным. Будем искренне надеяться, что их создателям удастся выполнить поставленные задачи, а мы, соответственно, дождемся таки настоящей компьютерной революции. Открытым остается лишь вопрос: «Когда?». Нам и самим очень хотелось бы стать ее свидетелями.
Источник: http://ko-online.com.ua/node/34453 |