Баженова И.Ю.
Московский государственный университет им. М.В.Ломоносова, доцент, к.ф.-м.н.,
Особенности обучения языкам программирования при дистанционной форме образования
КЛЮЧЕВЫЕ СЛОВА
Дистанционное обучение, e-learning, LCMS, языки программирования, образовательный контент.
АННОТАЦИЯ
Дистанционная система подготовки специалистов в области информационных технологий включает изучение различных современных аспектов языков программирования и требует поддержки высокого уровня доступности учебного контента. Такая поддержка может быть предоставлена при использовании LMS-CMS-LCMS систем дистанционного обучения. В данной статье рассматриваются особенности формирования учебного контента для обучения языкам программирования.
Дистанционная система подготовки специалистов основывается на применении систем управления обучением (Learning Management System — LMS, систем управления контентом (Content Management System — CMS) и систем управления учебным контентом (Learning Content Management System — LCMS)[6]. Для развертывания CMS-LCMS системы дистанционного обучения можно использовать локальный сервер с предоставлением к нему удаленного доступа, или удаленный хостинг с установкой на него CMS-LCMS системы. Одной из наиболее популярных систем для дистанционного обучения в настоящий момент является система Moodle, которая предоставляет инструментарий как для организации учебного конента, так и средства контроля и учета успеваемости.
Средства управления контентом системы Moodle позволяют:
• публиковать ресурсы в различных форматах, включая видео-формат, и управлять доступом к ним;
• вести глоссарий с поддержкой ссылок на определения терминов из всех упоминаний на него в материалах курса, а также из форумов;
• использовать для каждого курса широкий набор элементов, включающий ресурс, задание, глоссарий, форум, wiki, урок, тест и т.д.
• предоставлять контент в виде текста (в форматах HTML, SCORM, DOC), в виде слайдов. и как видео; организовывать текстовый контент в виде лекций или книг (используя плагин Book);
• формировать интегральную систему оценки знаний, как на базе самостоятельных заданий, так и на основе результатов тестов, с возможностью определения веса каждого тестового задания в общей оценке студента.
В программе дистанционного обучения "Разработчик компьютерных технологий" обучение языкам программирование имеет многовекторное направление, включающее:
• параллельное освоение теоретического материала с одновременным выполнением практических тестов и заданий;
• наличие как теоретических курсов по языкам программирования, так и практических курсов, позволяющих более глубоко освоить несколько конкретных языков программирования, а также получить навыки использования различных сред разработки;
• изучение курсов, направленных на применение языков программирования для решения различных технологических задач, таких как взаимодействие с удаленными базами данных, распределенное офисное программирование;
• получение теоретических знаний и практических навыков по применению современных языков программирования при решении задач web-разработки.
Базовыми теоретическими курсами, направленными на изучение основ программирования, в данной программе являются курсы "Основы языков программирования" и "Основы программирования".
В курсе "Основы языков программирования" рассматриваются общие концепции разработки и реализации языков программирования, изучаются основные конструкции языков программирования, анализируются различные структуры данных, освещаются вопросы объектно-ориентированного программирования.
Курс направлен на формирование у студентов компетенций, необходимых для эффективного решения различных задач по проектированию и созданию программ, включающие в себя:
• применение объектно-ориентированного подхода;
• создание программ на различных объектно-ориентированных языках программирования, таких как C++, C#, Object Pascal и Java.
В курсе "Основы программирования " акцент ставится базовых технологиях, используемых при разработке приложений, и формирование у студентов компетенций, необходимых для эффективного решения различных задач по разработке и созданию программных продуктов. Особое внимание удаляется сравнению подходов, используемых при применении различных библиотек классов.
Учебный контент для курса "Основы языков программирования" размещен в системе Moodle и представляет собой:
• набор видео-файлов по каждой теме;
• примеры программного кода;
• дополнительная информация, оформленная в виде ЫтаЬстаниц;
• тесты, проверяемые в автоматическом режиме;
• текстовые задания, предполагающие ответ в виде файла, проверяемый преподавателем.
И'У БМК дист£чцио1- юс- образеванке
Программа РКТ
РдЗрлС&Т'-Ш-:- ПрйфрСГНОН ^Лкнп-ориентирIMF. ЙИ-ШТ
ПОИСК по ФОРУМАМ
I . p>WfhjTt j
Г-н ГУЩ
ПОС/ЩЦ»« :-П
новости
ДиЯшзг.-. и нс-суы fmty... U jE-jr—пй U«T1
П Р ЬЦ СТОЯ LLittE :-U СОБЬrW№
Ы вт прь^гтэлщпм
ГК>ДД№ЖКА ПО почтг
■.>.:-* JC3C Ki" ■ TJ
riOCTJUVE ДЕЙСТВИЯ
HARHl ftl [ИЯ Ml
КАБИНЕТ :-г
® Мои в ценен -Vkkiu
la) Рылкплро1гтъ митрой«*
* Л|>.П|_51Г1»лгрг_- н J Ислжечи! ь. L»£'P ие
■уреш "0ЯПя ^Фг.пьгры Ц О ИМ ¿Гшшшршшпж излирошив
^ 3". ■ Л- JKil I к
^ыппрт
^ >inciu ^ БМК «ОПРОСИЛ
ft
приф1^»
£ Новостной форум Список литературы
ГЕНА I
Рллнитн? нл-ыкенз 11[)ш рлммиройшня
Г} Развитие лзыков программирования
Стандартизация языков п р о гр дмм и р оши и я ^ Развитие языков программирования г: П«и4ии1мн прогрииииритнхл Й Стан дартнзация языкое программирования
ТЕМА 2
Основные конструкции ЯЗЫКОВ программирования
В Выражения
□ Уровни приоритета операции Ь Управленце "пинри1рлчивии
Ре кур с йены» вызов подпрограмм й Управление параметрами полпрпгрты
[!) Гест операторы в языках программирования
Структуры данных
.. Объс кты да п и ы и.Ти гг ы данных Я Простые типы данных
Л Таблица простых типов для языков программирования С+ + , Cff, Java и Object Раьса!
3 Представление- целик и йрщеггв^ннмк ДЛННМУ А ПШЙГИ
Объявление объектов данных, f. S Объявление ¡if!*гII 1'цк нн«Iх 2. ¡j Операции над значениями простых типов 9 Приведение типов в языка» С++ и С.К ij Прнесдспис типов в языке lava. Классы оболочки
Рис.1. Курс "Основы языков программирования " в системе Moodle На рисунке 1 представлено окно для работы с контентом для курса 'Основы языков программирования".
Курс "Основы языков программирования" является базисным для формирования у студентов понимания объектно-ориентированной парадигмы в современных языках программирования. В процессе обучения студенты выполняют задания, позволяющие им сравнить особенности разработки программ на таких языках программирования, как Java, C++, C# и Object Pascal.
После освоения данного курса студенты переходят к изучению применения языков программирования. На этом этапе они знакомятся более подробно с особенностями различных сред разработки и с фундаментальными возможностями применяемых библиотек классов. Особое внимание здесь уделяется применению современных технологий программирования. Так курс "Основы программирования" ориентирован на изучение общей функциональности, предоставляемой библиотеками классов, а также на применение языков программирования для разработки различных видов приложений. Курс "Распределенные SQL приложения" позволяет сконцентрироваться на вопросах применения языков программирования для разработки приложений баз данных. А курс "Распределенные офисные технологии" знакомит студентов с использованием языков программирования для разработки серверных web-приложений, а также для разработки приложений с многокомпонентной архитектурой.
Все эти курсы предполагают, как наличие учебного контента в видео и текстовом формате, так и наличие тестов и самостоятельных заданий.
Однако задания, выполняемые при изучении теоретических курсов направлены на лучшее освоение и понимание изучаемого материала. Для получения практических навыков требуются специальные практикумы. При дистанционной форме обучения, когда личный контакт ограничен в основном обсуждениями в учебном чате, задания практикума по каждой теме целесообразно разбивать на две группы:
• задания с подробным описанием последовательности их исполнения, примерами кода, и объяснениями предполагаемых результатов;
• самостоятельные задания, результат выполнения которых со скриншотами должен быть представлен преподавателю.
Такой подход применяется при изучении языков программирования по программе дистанционного обучения "PKT". Одним из таких специальных практикумов является курс "Язык программирования C# и основы технологии .NET". Этот курс позволяет получить практические навыки в таких технологиях, как:
• Windows Forms;
• Windows Presentation Foundation;
• LINQ;
• ADO.NET;
• ASP.NET.
Данный курс обобщает полученные ранее теоретические знания и включает подробно описанные задания по следующим темам:
• основы объектно-ориентированного программирования на C#:
o классы и структуры, инициализаторы объекта; o методы члены класса, конструкторы, статические методы,
способы передачи параметров, свойства; o механизмы наследования, раннее и позднее связывание,
виртуальные методы; o явное и неявное приведение типов; o сравнение объектов, перегрузка операций; o анонимные типы; o индексаторы;
o делегаты, вызов методов через делегата, применение делегатов как методов обратного вызова;
• основные конструкции языка C#:
o типы значений и ссылочные типы, конвертирование типов
значений; o тип dynamic; o коллекции, итераторы;
o одномерные, многомерные массивы и массивы массивов, запросы к массивам с применением LINQ;
• механизмы отражения:
o сборки, статическая и динамическая загрузка сборок; o получение информации о типе, методе и параметрах;
• Windows Forms:
o графический интерфейс пользователя; o приложения с SDI и MDI интерфейсом; o стандартные диалоги;
o пользовательский рендеринг элементов управления на примере списков;
• использование серверов автоматизации:
o работа с объектами типа Excel.Application и Word.Application; o обмен данными с приложениями Excel и Word;
• технология WPF:
o язык XAML и файлы отделенного кода;
o компоновка графического интерфейса пользователя с
использованием панелей; o применение элементов управления WPF; o использование ресурсов и стилей WPF;
• технология ADO.NET:
o построение приложений для работы с базой данных; o соединение с базой данных;
o компоненты, используемые для отображение наборов данных; o выполнение параметризированных запросов; o выполнение хранимых процедур базы данных; o отображение связанных данных;
• распределенное программирование:
o создание и развертывание web-сервиса;
o создание службы Windows, регистрация службы, управление службой.
Подготовка учебного контента при дистанционной форме обучения включает следующие этапы:
• запись видео-лекций;
• формирование учебного материала в текстовой форме (учебники, web-страницы и примеры кода, размещаемые в системе дистанционного обучения);
• формирование тестов и заданий для регулярного контроля за учебным процессом.
При этом в отличие от обычной формы образования, когда преподаватель на лекции имеет возможность каждый год обновлять свой курс с учетом принятия новых стандартов и появления новых возможностей в языках программирования, один раз записанные видео-лекции труднее поддаются изменению. Поэтому особенно важным представляется правильное разбиение видео-лекции на небольшие логические части, которое позволяет преподавателю добавлять новые фрагменты лекций между ранее записанными частями лекции, а также заменять отдельные части лекций. Наиболее удобным способом формирования видео-контента можно считать систему Camtasia Studio, которая позволяет записывать голос лектора на фоне отображаемой на компьютере презентации, или на фоне демонстрации лектором применения программных конструкций в различных системах программирования. Такой подход обеспечивает постоянную актуальность учебного контента в системе дистанционного обучения.
При формировании системы тестов для курсов по языкам программирования наряду с авторскими тестовыми вопросами имеет смысл добавлять тесты аналогичные, используемым для сертификационных экзаменов по различным языкам программирования. Главное, что тесты не должны быть направлены только на формальное знание материала, а должны выявлять насколько студент разобрался с изучаемым материалом.
Набор тестов по курсу "Основы языков программирования" базируется на правильном понимании студентом применения различных конструкций языков программирования и позволяет определить степень понимания студентом различных аспектов применения объектно-ориентированной парадигмы в языках программирования.
Сформированный учебный контент позволяет студенту самостоятельно освоить учебные курсы. Для общения со студентом
преподаватель в процессе обучения может использовать чаты, семинары и опросы.
При самостоятельном обучении студента преподаватель должен постоянно контролировать процесс освоения студентом учебного контента. Для этого можно использовать:
1.временные рамки работы с лекциями и выполнения тестов;
2.фиксирование сроков выполнения самостоятельных заданий. Окончательная аттестация по учебному курсу может быть выполнена
только при очном экзамене.
Такой подход к формированию учебного контента и процессу построения обучения языкам программирования используется автором в рамках программы дистанционного образования "Разработчик компьютерных технологий".
Литература
1. Баженова И.Ю. Языки программирования. /под редакцией В.А.Сухомлина. М.: Из-во"Академия", 2012.
2. Баженова И.Ю., Сухомлин В.А. Введение в программирование. Учебное пособие. М.: Из-во «Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний», 2006.
3. Баженова И.Ю. С++ и Visual Studio .Net. М.: Из-во «Кудиц-ОБРАЗ».
4. Баженова И.Ю. Delphi 7. Программирование на языке Object Pascal. М.: Из-во " Кудиц-ОБРАЗ".
5. Баженова И.Ю. Применение облачных технологий при дистанционном обучении языкам программирования. М.: Вестник МГЛУ Вып 6(619), 2013, 19-25 с.
6. Баженова И.Ю. Интегральный подход к дистанционному обучению в области информационных технологий М.: Вестник МГЛУ. Вып 6(619), 2011, 19-25 с.