Библиотека сайта rus-linux.net
Трехмерная анимация Alice как способ понять ООП
Оригинал: Learn OOP while creating 3-D animations with Alice
Автор: Mayank Sharma
Дата: 25 декабря 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 4 января 2008
При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!
Студентам на компьютерных факультетах часто сложно дается изучение таких языков программирования, как C++ и Java, в основном из-за большой разницы между простыми учебными языками типа Logo и продвинутыми объектно-ориентированными языками. Пытаясь заполнить эту брешь, разработчики из Carnegie Mellon University (CMU) разработали объектно-ориентированный язык, позволяющий создавать трехмерную анимацию. Этот язык называется Alice.
Команда разработчиков из CMU, которую возглавляет Randy Pausch, изучила несколько студенческих программ на языках C++ и Java, и выделила следующие существенные концепции объектного программирования: условия, циклы, рекурсия, функции/методы, массивы и списки, объекты (как состояние, так и поведение), наследование, инкапсуляция, полиморфизм и т.д. Alice предоставляет окружение, которое поможет студентам вникнуть в эти концепции в процессе модификации трехмерных объектов и создания анимированных сцен.
Установка и быстрый старт
Приятно, что для использования Alice не требуется быть студентом упомянутого университета. Alice распространяется абсолютно свободно, его исходный код открыт. Система может скомпилироваться в Linux, Windows и Mac. Последней версией является Alice 2.0, разработанная на Java и поэтому требующая для запуска окружение Java Runtime Environment (JRE). Пользователи Linux могут загрузить JRE и следовать инструкциям по установке. Я попробовал Alice 2.0 на Fedora 8, в котором уже был установлен IcedTea - полностью открытый Java пакет на базе OpenJDK.
После установки окружения Java загрузите tar-архив Alice, размером больше 100 Мб и извлеките его содержимое:
tar zxvf Alice-2.0.0.tar.gzДля запуска Alice перейдите в каталог
Alice/Required/
и запустите файл run-alice
либо двойным щелчком мыши, либо из консоли:
./run-aliceВ комплекте идет четыре урока, с которых можно начать изучение Alice. Обычное окружение Alice состоит из виртуального мира и набора объектов. Можно добавлять и анимировать объекты с помощью мыши путем их перетаскивания. Для демонстрации того, чего можно достичь в Alice, в комплекте идет семь миров различной сложности.
Каждый объект в Alice инкапсулирует свои данные (атрибуты типа private - такие как высота, ширина и положение в мире) и содержит свои методы. В Alice добавление объектов просто, и так же просто можно добавлять свои методы, которые принимают свои параметры и вызываются при определенных условиях.
Программы Alice состоят из функций, переменных, параметров и рекурсий. Все это можно "запрограммировать", используя одну лишь мышь. Нужно лишь перетаскивать в окружение программные элементы, такие как условные ветвления, циклы do...while и for, а также операторы ожидания wait, вывода текста print и комментарии. Можно даже задавать сложные конструкции параллельного программирования, перетаскивая в окружение элемент "Do Together".
Сводя программирование до такого простого уровня, Alice помогает студентам понять структуру и логику программирования, избавляя их от путаницы в синтаксисе. Вместо возни с пунктуацией, студенты могут больше внимания уделить объектам и другим возможностям ООП.
Alice делает объектно-ориентированное программирование веселым, во многом благодаря сокрытию синтаксиса. В настройках Alice (Edit -> Preferences) можно указать, чтобы код программы показывался не на языке Alice (имеющем простой для понимания синтаксис), а на Java.
Просмотрите демонстрационные ролики, показывающие интерфейс Alice в работе, и вы поймете, каким образом Alice может помочь студентам разобраться в основах ООП.
Ограничения и Alice 3.0
Конечно, Alice не без изъянов. Например, как обратная сторона медали, студенты не получают навыков работы с синтаксисом. Еще одним недостатком является то, что Alice напрямую не поддерживает полиморфизм.
Чтобы от Alice могли получить пользу также и младшие школьники, Caitlin Kelleher создала Storytelling Alice как часть своей докторской работы в CMU. Эта версия Alice (к сожалению, работающая лишь в Windows), уделяет особое внимание социальным взаимодействиям между объектами, подавая их как краткие истории. При помощи этих рассказов программа и помогает ученикам постичь основы ООП.
Согласно C.Kelleher, некоторые концепции Storytelling Alice будут использованы в следующей версии основной ветки Alice. Игровая компания Electronic Arts будет поддерживать разработку Alice 3.0 и в связи с этим предоставляет модели персонажей из популярной игры The Sims - они заменят текущие объекты Alice 2.0, нарисованные в 3-D Studio Max. В дополнение к этому Alice 3.0 будет поддерживать дополнение Alice-анимации вставками на языке Java, также в интегрированном окружении разработчика (IDE).
Alice - инновационное приложение, призванное помочь студентам в изучении ООП. Если вы новичок в программирование, попробуйте эту программу; изучение синтаксиса не должно занять много времени, но зато вы сможете понять суть основных концепций ООП: объектов, инкапсуляции, полиморфизма и наследования.