-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path16_2019_Sterjanov.tex
48 lines (33 loc) · 9.18 KB
/
16_2019_Sterjanov.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
\documentclass[10pt, a5paper]{article}
\input{preamble.tex}
\switchlang{ru}
\begin{document}
\title{Опыт преподавания языка Ruby в рамках дисциплины <<Cовременные технологии разработки программного обеспечения>>}
\author{Максим Стержанов, Минск, Belarus\footnote{\url{[email protected]}, \url {https://lvee.org/ru/abstracts/320}}}
\maketitle
\begin{abstract}
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.
\end{abstract}
Кафедра Информатики БГУИР ведет подготовку бакалавров и магистров по специальности <<Информатика и технологии программирования>>. Одной из основных специальных дисциплин, читаемых при подготовке магистрантов является <<Современные технологии разработки программного обеспечения>>(СТРПО). Целью преподавания данной дисциплины является предоставление обучаемым знаний и умений в области проектирования, разработки, тестирования, отладки и внедрения программного обеспечения (ПО) вычислительной техники с использованием современных технологий.
В данной работе описывается перечень лабораторных задач,\linebreak предлагаемых студентам для проработки и закрепления материала по предмету СТРПО в 2017 /2018 учебном году.
Устный опрос показывает, что основную группу магистрантов составляют программисты-практики с профильным высшим образованием (БГУИР или БГУ) и опытом работы в софтверных компаниях от 2 до 4 лет. Следовательно, данная аудитория должна иметь глубокое понимание теоретических основ информатики, опыт практического использования одного или нескольких языков и технологий. Исходя из этого, образовательный процесс фокусировался на ключевых особенностях языка Ruby.
В рамках первой лабораторной работы магистрантам предлагается познакомиться с основами написания скриптов на динамическом объектно-ориентированном языке Ruby и проработать применение базовых конструкций языка. В качестве среды разработки предлагается тестовый редактор Sublime Text или специализированная среда RubyMine. В рамках данной работы предлагается реализация простейшего алгоритма шифрования.
Вторая лабораторная работа посвящена изучению функционального стиля программирования в Ruby. Все функции в Ruby являются методами, то есть свойственны объектам. Цель выполнения работы --- изучение итераторов, блоков и замыканий. Также магистратам предлагается провести сравнительный анализ объектов, которые можно вызывать (proc, lambda, method).
В рамках третьей лабораторной работы магистрантам предлагается применить на практике знания об объектной модели Ruby. Мы предполагаем, что большая часть аудитории знакома с понятиями ООП на примере других языков. Ruby является полностью объектно-ориентированным языком: числа, строки, регулярные выражения, массивы --- это все объекты определенных классов. Магистрантам предлагается изучить концепцию модуля и примеси, инкапсуляцию. Результатом выполнения работы является реализация взаимодействия объектов в соответствии с индивидуальным заданием.
Четвертая и пятая лабораторная работы посвящены метапрограммированию в объектной модели Ruby. Под метапрограммированием понимается расширение и изменение абстракций языка \cite{bib1}. Магистранты изучают способы динамического определения и вызова методов, применение method\_missing, синглетон-методы, синг\-летон-классы, отрабатывают техники динамического изменения \linebreak классов и методов.
На шестой, заключительной работе, магистрантам предлагается обобщить полученные знания при построении серверной части веб-приложения на платформе Ruby on Rails. Rails представляет собой среду, облегчающую разработку, развертывание и обслуживание веб-приложений \cite{bib3}. Магистранты создают REST ориентированные сервисы в соответствии с предложенными вариантами заданий (библиотека, ресторан, больница и т.д.). Задачей является продемонстрировать умение пользоваться фреймворком объектно-реляционного отображения ActiveRecord и основами ресурсного роутинга Rails. Реализация клиентской части (HTML представления) не требуется. Тестирование осуществляется при помощи программы POSTMAN (либо аналогичной).
Содержание лабораторных работ построено в единой логике и позволяет эффективно обучить магистрантов приемам программирования на современном скриптовом языке Ruby.
Опыт преподавания языка Ruby для магистрантов выявил некоторые проблемы:
\begin{itemize}
\item недостаточная подготовка в области программирования (отсутствие умений и навыков разработки, отсутствие понятийного аппарата ООП) после окончания ВУЗа;
\item нехватка времени для самостоятельной работы в связи с загруженностью по основному месту работы;
\item выполнение работ на поверхностном уровне, нежелание переучиваться и погружаться в детали новой и незнакомой технологии.
\end{itemize}
Для решения данных проблем отстающим магистрантам были предложены упрощенные версии индивидуальных заданий.
Не смотря на указанные сложности, изучение языка Ruby и платформы Ruby on Rails дает магистрантам уникальные возможности для расширения собственного багажа знаний и опыта, которыми нельзя не воспользоваться.
\begin{thebibliography}{9}
\bibitem{bib1} A. Hunt. Programming Ruby./ A. Hunt, D. Thomas --- М.: Финансы и статистика, 2004. --- 864 p.
\bibitem{bib2} Perrotta P. Metaprogramming Ruby 2: Program Like the Ruby Pros. -- The Pragmatic Programmers, 2004. --- 262 p.
\bibitem{bib3} Руби С. Rails 4. Гибкая разработка веб-приложений. С. Руби, Д. Томас, Д. Хэнссон --- СПб.: Питер, 2014. --- 448 с.
\end{thebibliography}
\end{document}