Использование метода коллективной разработки в дистанционном обучении программированию в техническом ВУЗе Талгатовна Якупова Венера Старший преподаватель кафедры информатики и прикладной математики, Казанский национальный исследовательский технологический университет, ул. К.Маркса, 68, г. Казань, 420015, (843)2314119 Email: [email protected] Богомолова Ольга Игоревна Ассистент кафедры информатики и прикладной математики, Казанский национальный исследовательский технологический университет, ул. К.Маркса, 68, г. Казань, 420015, (843)2314119 Email: [email protected] Аннотация Прогресс в области информационных технологий требует разработки инновационных методик преподавания информационных дисциплин. В статье рассматривается одна из проблем подготовки будущих ИТ-специалистов – слабая связь с реальной деятельностью. Подробно рассмотрен инновационный метод коллективной разработки на примере проектирования библиотеки классов при изучении принципов объектно-ориентированного программирования. Метод хорошо зарекомендовал себя при дистанционном обучении студентов заочного отделения. Progress in the field of information technologies demands development of innovative techniques of teaching of information disciplines. In article one of problems of preparation of future IT specialists – communication with real activity is considered. The innovative method of collective development on the example of design of library of classes when studying the principles of object-oriented programming is in detail considered. Ключевые слова инновационный подход в обучении, программирование, метод коллективной разработки. innovative approach to learning, programming, the method of collective development. Введение Прогресс в области информационных технологий находит своё отражение в образовании [1]. Обучение инженеров-программистов в настоящее время без инновационных подходов [2,3] не сможет соответствовать требованиям современного работодателя. Навыки, полученные при использовании инновационных подходов, дают студентам конкурентные преимущества на рынке труда. Инновационные подходы, как правило, используют активные методы обучения. В работе А.М.Смолкина [4] дается следующее определение активным методам обучения: активные методы обучения - это способы активизации учебнопознавательной деятельности студентов, которые побуждают их к активной мыслительной и практической деятельности в процессе овладения материалом, когда 655 активен не только преподаватель, но активны и студенты. В случае коллективной разработки студенты получают возможность участвовать в управлении проектом, распределять зоны ответственности, оценивать уровень овладения навыками своих коллег-программистов. Рассмотрим метод коллективной разработки при обучении программированию студентов заочной формы обучения, обучающихся по информационным специальностям. Наша цель - разработать библиотеку классов коллективом студентов одной группы. Рис.1. Список зарегистрированных участников курса “Языки программирования” Дистанционное управление коллективной разработкой Для дистанционного управления коллективной разработкой необходимо организовать систему обмена сообщениями, заданиями. Для этих целей будем использовать систему дистанционного обучения Moodle. Moodle- виртуальная обучающая среда [5]. Представляет собой свободное (распространяющееся по лицензии GNU GPL) веб-приложение, предоставляющее возможность создавать сайты для онлайн-обучения. Ключевые понятия СДО Moodle – курсы, блоки, модули. Все они будут задействованы при дистанционном обучении в рамках проекта реализации библиотеки классов. В СДО Moodle для реализации дистанционного обучения основам объектноориентированного программирования создан курс “Языки программирования” (рис.1). Все участники проекта – студенты одной группы заочного отделения. Студенты самостоятельно регистрируются и записываются на курс. Регистрация даёт возможность просматривать теоретический и практический материал курса. Для управления дистанционной, коллективной разработкой будут задействованы следующие блоки Moodle: новостной форум, календарь, управление пользователями. 656 Рис. 2. Календарный план работы на октябрь Для реализации библиотеки классов будет активно задействован блок Календарь (рис.2). Этот блок позволяет отметить нужные события. Вся информация о событиях появляется у зарегистрированных пользователей курса в блоке “Предстоящие события”. Информация о событиях содержится в следующих полях: название события; описание: подробное описание события; дата; продолжительность; повторения: этот пункт позволяет создавать еженедельно повторяющиеся события. Для общения участников дистанционного проекта активно используется блоки “Форум” и “Обмен сообщениями”. Реализация проекта “Создание библиотеки классов Геометрия” с использованием метода коллективной разработки Программирование - одна из важнейших дисциплин[6], которую изучают студенты специальности “информационные системы и технологии”. При обучении программированию в вузе, студент, как правило, получает навыки авторской разработки, т.е. создания программных продуктов, при котором весь жизненный цикл разработки поддерживается одним единственным человеком. Авторская разработка занимает определенную нишу на современном рынке программного обеспечения, в основном так называемые shareware-программы (shareware - условнобесплатное программное обеспечение). В реальности, для решения сложных задач часто приходится прибегать к коллективной разработке. Участие в коллективной разработке – полезный навык, который может пригодиться в дальнейшей деятельности будущего специалиста. При участии в коллективной разработке студент осознаёт необходимость использования комментариев в программном коде, хорошего оформления кода и других значимых 657 тонкостей разработки. Один из главных вопросов коллективной разработки разделение труда. При коллективной разработке задействованы различные специалисты. Ниже представлены области специализации на основе классификации Конгер[7]: Разработка приложений: o программист; o специалист по инженерии программирования; o специалист по инженерии знаний. Работа с приложениями. o специалист по приложениям; o администратор данных; o администратор базы данных. Техническая поддержка: o системный администратор; o сетевой администратор; o администратор коммуникаций. Обеспечение качества продукта: o технический писатель; o инженер тестирования; o инженер качества. Маркетинг: o специалист по сопровождению продукта; o специалист по продажам продукта. Системное интегрирование: o системный интегратор. Имея представления о такой классификации при разработке программных продуктов, студент может сориентироваться в выборе своей дальнейшей специализации. Мы в статье рассмотрим коллективную разработку и распределение задач на уровне программист. Группа студентов должна разработать библиотеку классов – геометрия. В нашем случае она будет реализована на языке C#. Эта библиотека позволит работать с такими объектами, как прямая, круг, эллипс, парабола, треугольник, ломаная, квадрат, прямоугольник и т.д. Для реализации проекта выбран язык программирования - С#. C# - объектноориентированный язык программирования. Этот язык программирования входит в пятёрку самых востребованных языков по данным сайта tiobe.com. C# относится к семье языков с C-подобным синтаксисом. Язык поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Специалисты, владеющие С# на высоком уровне, востребованы современным IT-рынком труда. Рейтинг языка C# постоянно растёт, это подтверждается исследованиями (рис.3). 658 Рис. 3. Динамика рейтинга языка С#(сайт tiobe.com) В качестве среды разработки был выбран свободно распространяемый продукт -Visual C# Express Edition (рис.4). Данный продукт служит для ознакомления с языком C#, а также со средствами создания Windows-приложений на основе платформы Microsoft .NET. Рис. 4. Основное окно Visual C# 2008 Express Edition Объектно-ориентированная парадигма программирования хорошо зарекомендовала в сложных проектах, требующих разделения труда программистов. 659 Поставленную задачу - разработать библиотеку классов, разобьем на подзадачи – создание отдельных классов. Для распределения задач в рамках проекта необходимо выяснить уровень подготовки студентов по дисциплинам программирование и алгоритмизация, геометрия. В системе Moodle проводится предварительное тестирование, и изучаются полученные результаты (рис.5). Студенты, показавшие хорошие результаты, получают более сложные задания. Каждый студент получает свой класс для разработки. Выше в наш список мы включили слежующие объекты: прямая, круг, эллипс, парабола, треугольник, ломаная, квадрат, прямоугольник, вектор. Этот список может быть дополнен. Реализация классов этих объектов отличаются степенью трудности реализации, поэтому, распределяя задания, следует учитывать уровень подготовки студентов. Студентам предстоит самостоятельно определить, каким образом будет задаваться объект и разработать конструктор класса. В классе обязательно должны быть разработаны различные методы. Список необходимых методов утверждается преподавателем. В разработанном курсе “Языки программирования” студенты могут посмотреть работающий программный код для других классов. К коду прилагаются подробные комментарии Следующий этап реализации проекта – тестирование полученных классов, своих и чужих. Задания должны проверяться на предмет алгоритмических и математических ошибок. На этом этапе можно оценить работу по различным критериям: срок выполнения, полнота описания класса и т.д. Для эффективной проверки работы кода, студенты обмениваются разработанными программами. На данном этапе обучающиеся получают навыки тестирования. Обмен разработанным кодом может вестись через блок обмен сообщениями. Последний этап разработки – совмещение всех созданных классов в библиотеку и тестирование работы созданной библиотеки классов. На этом этапе студентам можно дать задание написать недостающие методы для любого класса. Рис. 5. Результаты дистанционного тестирования в СДО Moodle 660 Заключение Как показала практика данный метод хорошо подходит для дистанционного обучения основам объектно-ориентированного программирования. Этот метод наглядно демонстрирует преимущества данной парадигмы программирования. Кроме того, в процессе создания собственных классов обучающиеся повторяют основы аналитической геометрии. В статье мы рассмотрели упрощенный вариант разработки с использованием ООП. Например, не затронут такой аспект как наследование классов. Данный метод коллективной разработки является очень гибким и его можно адаптировать в курсе программирования для дистанционного обучения с учетом отведенного времени и уровня подготовки студентов по программированию и математике. Литература 1. 2. 3. 4. 5. 6. 7. Афзалова А.Н. Использование мобильных технологий для организации самостоятельной работы студентов // Образовательные технологии и общество. – 2012. – Т. 15. – № 4. – С. 497-505. Нуриев Н.К., Журбенко Л.Н., Старыгина С.Д., Зайцева О.Н. Университет как инновационная площадка для подготовки способных к инноватике инженеров // Вестник Казанского технологического университета. – 2010. – № 12. – С. 250255. Торкунова Ю.В. Как в ВУЗе управлять развитием инноваций // Alma mater (Вестник высшей школы). – 2011. – № 8. – С. 55-57. Смолкин А.М. Методы активного обучения. – М.: Высшая школа, 1991. – 176 с. Богомолов В.А. Обзор бесплатных систем управления обучением // Образовательные технологии и общество. — 2007. Т. 10.№ 3. — С. 439-459. Богомолова О.И. Специфика подготовки ИТ-специалистов на примере Казанского национального исследовательского технологического университета // Современные научные исследования и инновации. – 2011. - № 7 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2011/11/5223. Sue A. Conger. The New Software Engineering // Wadsworth Publishing Company – 1994. – 817 P. 661