Международная конференция разработчиков
и пользователей свободного программного обеспечения

Опыт преподавания языка Ruby в рамках дисциплины «современные технологии разработки программного обеспечения»

Максим Стержанов, Минск, Belarus

LVEE 2019

Experience of teaching master degree students Ruby/RoR is detailed. We explain basic course structure, list main difficulties students face and way to resolve them.

Кафедра Информатики БГУИР ведет подготовку бакалавров и магистров по специальности ‘’Информатика и технологии программирования’’. Одной из основных специальных дисциплин, читаемых при подготовке магистрантов является “Современные технологии разработки программного обеспечения”(СТРПО). Целью преподавания данной дисциплины является предоставление обучаемым знаний и умений в области проектирования, разработки, тестирования, отладки и внедрения программного обеспечения (ПО) вычислительной техники с использованием современных технологий.

В данной работе описывается перечень лабораторных задач, предлагаемых студентам для проработки и закрепления материала по предмету СТРПО в 2017 /2018 учебном году.

Устный опрос показывает, что основную группу магистрантов составляют программисты-практики с профильным высшим образованием (БГУИР или БГУ) и опытом работы в софтверных компаниях от 2 до 4 лет. Следовательно, данная аудитория должна иметь глубокое понимание теоретических основ информатики, опыт практического использования одного или нескольких языков и технологий. Исходя из этого, образовательный процесс фокусировался на ключевых особенностях языка Ruby.

В рамках первой лабораторной работы магистрантам предлагается познакомиться с основами написания скриптов на динамическом объектно-ориентированном языке Ruby и проработать применение базовых конструкций языка. В качестве среды разработки предлагается тестовый редактор Sublime Text или специализированная среда RubyMine. В рамках данной работы предлагается реализация простейшего алгоритма шифрования.

Вторая лабораторная работа посвящена изучению функционального стиля программирования в Ruby. Все функции в Ruby являются методами, то есть свойственны объектам. Цель выполнения работы — изучение итераторов, блоков и замыканий. Также магистратам предлагается провести сравнительный анализ объектов, которые можно вызывать (proc, lambda, method).

В рамках третьей лабораторной работы магистрантам предлагается применить на практике знания об объектной модели Ruby. Мы предполагаем, что большая часть аудитории знакома с понятиями ООП на примере других языков. Ruby является полностью объектно-ориентированным языком: числа, строки, регулярные выражения, массивы – это все объекты определенных классов. Магистрантам предлагается изучить концепцию модуля и примеси, инкапсуляцию. Результатом выполнения работы является реализация взаимодействия объектов в соответствии с индивидуальным заданием.

Четвертая и пятая лабораторная работы посвящены метапрограммированию в объектной модели Ruby. Под метапрограммированием понимается расширение и изменение абстракций языка 1. Магистранты изучают способы динамического определения и вызова методов, применение method_missing, синглетон-методы, синглетон-классы, отрабатывают техники динамического изменения классов и методов.

На шестой, заключительной работе, магистрантам предлагается обобщить полученные знания при построении серверной части веб-приложения на платформе Ruby on Rails. Rails представляет собой среду, облегчающую разработку, развертывание и обслуживание веб-приложений 3. Магистранты создают REST ориентированные сервисы в соответствии с предложенными вариантами заданий (библиотека, ресторан, больница и т.д.). Задачей является продемонстрировать умение пользоваться фреймворком объектно-реляционного отображения ActiveRecord и основами ресурсного роутинга Rails. Реализация клиентской части (HTML представления) не требуется. Тестирование осуществляется при помощи программы POSTMAN (либо аналогичной).

Содержание лабораторных работ построено в единой логике и позволяет эффективно обучить магистрантов приемам программирования на современном скриптовом языке Ruby.

Опыт преподавания языка Ruby для магистрантов выявил некоторые проблемы:

  • недостаточная подготовка в области программирования (отсутствие умений и навыков разработки, отсутствие понятийного аппарата ООП) после окончания ВУЗа;
  • нехватка времени для самостоятельной работы в связи с загруженностью по основному месту работы;
  • выполнение работ на поверхностном уровне, нежелание переучиваться и погружаться в детали новой и незнакомой технологии.

Для решения данных проблем отстающим магистрантам были предложены упрощенные версии индивидуальных заданий.

Не смотря на указанные сложности, изучение языка Ruby и платформы Ruby on Rails дает магистрантам уникальные возможности для расширения собственного багажа знаний и опыта, которыми нельзя не воспользоваться.

Литература

1 A. Hunt. Programming Ruby./ A. Hunt, D. Thomas — М.: Финансы и статистика, 2004. — 864 p.

2 Perrotta P. Metaprogramming Ruby 2: Program Like the Ruby Pros. – The Pragmatic Programmers, 2004. — 262 p.

3 Руби С. Rails 4. Гибкая разработка веб-приложений. С. Руби, Д. Томас, Д. Хэнссон — СПб.: Питер, 2014. — 448 с.

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад