Оценки по каким дисциплинам идут в приложение к диплому по профессиональной переподготовке "Современные образовательные технологии"? |
Характеристика основных типов "облачных" услуг
2.1. Программирование в "облаке"
В этом разделе показано, как можно использовать облачные вычисления при обучении основам программирования. Приводится подробный пример работы с Web-сервисом, позволяющим создавать и отлаживать учебные программы на любом языке программирования с помощью облачного сервиса сайта http://ideone.com.
Современная практика программирования предполагает активное использование специализированных интегрированных средств разработки (IDE – Integrated Development Environment). Их использование связано со следующими двумя сложностями:
- Настройка и установка IDE требует высокой квалификации системного администратора.
- Современные IDE достаточно требовательны к ресурсам вычислительной машины, на которой они используются.
Поясним каждый пункт подробно. Для обеспечения полнофункциональной работы IDE требуется, чтобы квалификация системного администратор, осуществляющего установку, настройку и поддержку IDE была достаточно высока. Это приводит к необходимости нанимать в учебные заведения на должность системного администратора высококвалифицированных сотрудников, заработная плата которых может оказаться существенной статьёй расходов в бюджете образовательного учреждения.
Более того, затраты образовательного учреждения могут возрасти вследствие того, что современные IDE требуют наличия высокопроизводительных вычислительных машин. Например, одна из самых распространенных IDE Microsoft Visual Studio 2012 требует для нормальной работы процессор мощностью 1,6 ГГц или выше, 1 ГБ ОЗУ (или 1,5 ГБ для виртуальной машины), 10 ГБ свободного дискового пространства [7]. Для большинства задач образовательных учреждений не требуется компьютеров с такой высокой производительностью, поэтому их покупка может оказаться недопустимой роскошью.
Обе указанные проблемы позволяет решить применение облачных технологий при обучении программированию. В настоящее время существуют большое количество так называемых онлайн-IDE, которые не требуют установки на компьютер пользователя и которые требуют для запуска лишь наличие Интернет-браузера. Системные требования браузеров к оборудованию вычислительной машины традиционно являются скромными. Например, популярный Веб-браузер Mozilla Firefox 17 требует для установки процессор от 1300 МГц, 512 МБ ОЗЦ и 200 МБ свободного дискового пространства [6], что существенно меньше приведённых ранее цифр для IDE Microsoft Visual Studio 2012.
Рассмотрим ниже, как можно использовать онлайн-IDE в учебных заведениях для обучения основам программирования на примере http://ideone.com. Этот сервис позволяет в режиме онлайн создавать тексты программ на разных языках программирования и запускать эти программы на исполнение с возможностью анализа полученных результатов. Основные рабочие элементы Ideone показаны на рис. 2.1.
В поле "А" необходимо ввести текст программы, а в поле "В" нужно выбрать используемый язык программирования, затем нужно нажать кнопку "Отправить". В [2] указано, что Ideone поддерживает работу со следующими 55 популярными языками программирования: Ada, Assembler, AWK, Bash, bc, Brainf**k, C, C#, C++, C++0x, C99 strict, CLIPS, Clojure, COBOL, Common Lisp (clisp), D (dmd), Erlang, F#, Factor, Falcon, Forth, Fortran, Go, Groovy, Haskell, Icon, Intercal, Java, JavaScript, Lua, Nemerle, Nice, Nimrod, Node.js, Objective-C, Ocaml, Oz, PARI/GP, Pascal, Perl, PHP, Pike, Prolog, Python, R, Ruby, Scala, Scheme (guile), Smalltalk, SQL, Tcl, Text, Unlambda, VB.NET, Whitespace. Очевидно, что этого перечня достаточно при обучении основам программирования практически в любом учебном заведении мира. Более того, при использовании сервиса ideone.com у преподавателя появляется возможность использовать при обучении сразу несколько языков программирования без необходимости поддерживать работу нескольких IDE.
Покажем на примере, как может быть организована работа в группе при обучении основам программирования. Рис 2.2 иллюстрирует способ запуска простой программы на языке Си. Как можно видеть, в тексте программы используется подсветка синтаксиса, аналогичная той, что пользователи привыкли использовать в обычных офлайн-IDE. Однако при желании подсветка может быть отключена с помощью элемента управления "А". С помощью элемента управления "В" можно указать перечень входных данных для программы, что позволяет реализовать более сложную логику работы программы, чем в приведённом примере.
Очень важным является элемент управления "С", который позволяет персонифицировать работу с программой. Данная возможность крайне ценна при организации учебного процесса. Если преподаватель попросит всех студентов зарегистрироваться в Ideone (или использовать для входа свою учётную запись Facebook), то появляется возможность сделать процесс работы с программой коллективным, а процесс совместной работы с программой будет проходить с использованием современных технологий Web 2.0. Подробнее об этом расскажем, используя рис. 2.3.
Рис 2.3 представляет собой результаты запуска программы, приведённой на рис. 2.2, самые важные из которых помечены знаком "А". Это консольный вывод программы и возвращаемое значение. Знаком "В" отмечена Интернет-ссылка, которую преподаватель может переслать студентам для ознакомления с результатам работы демонстрационной программы, либо сами студенты могут выслать подобную ссылку преподавателю в качестве отчёта о проделанной работе.
Следующим этапом совместной работы может стать онлайн-обсуждение результатов работы программы с помощью средств Web 2.0 одного из популярных сервисов социальных сетей. Это становится возможным благодаря использованию элемента управления "С" на рис. 2.3.
Этот элемент управления позволяет выбрать из списка в правой части экрана один из виджетов популярных сайтов социальных сетей.
К сожалению, онлайн-IDE Ideone позволяет реализовать не все из функций традиционных офлайн-IDE. Например, отсутствует возможность использовать функции работы с сетью, обращения к файлам и некоторые другие. Также невозможно запустить программу, время выполнения которой займёт более 15 секунд или потребности в оперативной памяти превысят 256 МБ, или объём программы превысит 64 КБ [2]. Все эти ограничения являются достаточно серьёзными, если планируется использовать Ideone для разработки профессионального программного обеспечения. Однако для образовательных целей эти ограничения более чем приемлемы. Кроме того, для более требовательных преподавателей существуют платные и бесплатные сервисы, аналогичные Ideone, которые при этом в большей степени реализуют функционал традиционных офлайн-IDE. Таким примером являются сервисы Cloud9 IDE (www.c9.io), CodeRun [3]. На рис. 2.4 показан вид интерфейса сервиса CodeRun: пользователи, работавшие с традиционными офлайн-IDE, сразу увидят много знакомых элементов управления. Присутствует панель со списком используемых классов, со списком задействованных в проекте файлов, а также окна с отладочной информацией о состоянии стека вызовов подпрограмм и с ошибками времени комплиляции или времени выполнения.
Созданный проект можно сохранить в офлайн, но предпочтительным является режим работы только в облаке. Все операции, включая отладочную сборку, анализ результатов выполнения в консольком режиме, компиляцию под разные платформы и операционные системы можно выполнить в режиме онлайн. В идеале окончанием работы программиста будет скачивание готовых бинарных файлов с работающей программой. Такой подход позволяет сэкономить используемой офлайн дисковое пространство, а также позволяет компилировать проект существенно более быстро, чем на рабочем месте пользователя, если это рабочее место оборудовано устаревшим аппаратным обеспечением. Итогом этого является возможная финансовая экономия для образовательного учреждения.
Однако помимо экономического эффекта, можно получить и существенные преимущества при организации образовательного процесса. Студенты получают возможность совместно редактировать программные проекты, находясь у себя дома. Это позволяет реализовывать сложные курсовые проекты и лабораторные работы с существенной экономией на осуществление организационных мероприятий со стороны преподавателя.