Кодинг в обучении английскому как иностранному: английский через код-ревью

Язык труда и переводы:
УДК:
372.881.111.1
Дата публикации:
08 декабря 2020, 19:50
Категория:
Преподавание профессионально ориентированного иностранного языка
Авторы
Жильцов Александр Александрович
Ярославский государственный технический университет
Аннотация:
Идея исследования и связанного с ним кейса — определить, поможет ли код-ревью настоящего программного обеспечения студентам IT-специальностей читать и писать на английском языке таким же образом, как они читают и пишут код. Синтаксис языков программирования высокого уровня основывается на структуре английского языка (IF buttonPressed(.) THEN moveForward(.)). Апробированную идею можно использовать при проектировании курса английского для IT и программирования для лингвистов.
Ключевые слова:
английский язык, программирование, обучение иностранному языку, методика преподавания, дистанционное обучение, code review
Основной текст труда

Идея использовать языки программирования в обучении английскому языку не нова — за последние десятилетия было несколько случаев успешного применения Scratch и настоящих языков программирования учителями английского языка [1, 2]. Студентам предлагалось программировать на условном английском и проводить параллели между естественными языками и языками программирования. Для университета в этих кейсах есть три проблемы: они проходили со школьниками, большинство учителей не умели программировать, и английский давался на базовом уровне — написание (или «сборка») простейших фраз, таких как IF buttonPressed(.) THEN moveForward(.) [3]. Эти варианты занятий не подойдут студентам вузов, изучающим информационные технологии, поскольку им нужен английский как инструмент для их основной деятельности, а уровень их навыков программирования превосходит базовые, которые даются на таких занятиях в школе, что никак не способствует повышению навыков.

Цель исследования и связанного с ним кейса — определить, поможет ли код-ревью настоящего программного продукта студентам IT-специальностей читать и писать на английском языке таким же образом, как они читают и пишут код. Код-ревью (Code Review, инспекция кода) — это проверка кода на ошибки, неточности и общий стиль программирования [4]. Код, который пишут разработчики, проверяется разработчиками ступенью выше — примерно так же, как на любых занятиях преподаватель проверяет работы студентов или в издательском доме редактор проверяет работу писателя либо переводчика. Эта практика среди разработчиков помогает совершенствовать код, оттачивать мастерство его написания, получать более целостную картину проекта, за разные части которого отвечают разные люди.

Кроме того, код-ревью помогает разобраться в том, что именно выполняется в коде проекта. Эта проблема часто возникает у разработчиков, которые впервые приступают к работе с чужой кодовой базой: если код не написан с точки зрения естественного языка, приходится разбираться в его функционале, построчно читая и представляя, что он делает. Если же переменные и функции называются словами и фразами естественного языка, которые явно указывают на их предназначение, разработчику не нужно представлять функционал в голове, поскольку все уже описано [5]. Для сравнения два блока кода с одинаковым функционалом — сначала краткими сокращениями, потом полноценным кодом [6]:

if (MS.IV)

            {

                s.I = m.DSI;

                dP.DS.Add(s);

                _sn.Save(dP);

 

                _nr.Success(H[«Deployment plan step added successfully»]);

                return RTA(«Display», «DeploymentPlan», new { i = m.DPI });

            }

 

if (ModelState.IsValid)

            {

                step.Id = model.DeploymentStepId;

                deploymentPlan.DeploymentSteps.Add(step);

                _session.Save(deploymentPlan);

 

                _notifier.Success(H[«Deployment plan step added successfully»]);

                return RedirectToAction(«Display», «DeploymentPlan», new { id = model.DeploymentPlanId });

            }

 

В первом примере только по выводимым данным (“Deployment plan step added successfully”) можно понять, что в коде добавляется шаг с планом развертывания, что бы это ни было. Во втором примере при достаточном знании английского можно понять, что это произойдет, только если состояние модели допустимо(if (ModelState.IsValid)); сессия с этим планом куда-то отдельно сохраняется (_session.Save(deploymentPlan)); действие перенаправляет на другое действие — отображения (RedirectToAction(“Display”,  “DeploymentPlan”…).

На основе кода OrchardCore двум учебным группам студентов IT-специальностей второго курса (всего 25 студентов) было предложено провести код-ревью с точки зрения английского языка в рамках экспериментального модуля дисциплины «Английский язык». Модуль преподавался в течение весеннего семестра 2020 года удаленно (в связи с переходом на дистанционное обучение в течение семестра). Обе группы предварительно два семестра изучали общий английский язык и один семестр — английский для IT-специалистов.

Основной задачей студентов было разобраться с функционалом модулей проекта OrchardCMS, читая код как написанный естественным английским языком, написать к отдельным частям модулей комментарии на английском языке по тому, что именно в них выполняется, устно на английском разъяснить работоспособность и функционал заданных модулей, а также перевести «с листа» фрагмент кода на русский. Для оценки успешности учебного модуля и поисков пути совершенствования методики с каждой группой было проведено одно итоговое интервью и специальный опрос.

В рамках итогового интервью 19 студентов продемонстрировали способность читать и понимать с листа код, в котором переменные и функции написаны с использованием английского языка, из них только 6 смогли разобраться с функционалом предложенных фрагментов, где имена переменных и функций состояли только из первых букв слов, описывающих их (пример 1), затратив при этом гораздо больше времени, чем ушло на понимание кода с естественным английским (пример 2).

По результатам опроса 17 студентов сообщили о том, что их навык чтения и понимания чужого кода и английского языка в целом заметно улучшился; из оставшихся 5 сообщили о полезности, но непонимании процесса код-ревью и кода в целом, и трое сообщили, что им не удалось прочитать код с помощью имеющихся знаний английского языка и/или программирования.

21 студент отметил, что учебный модуль при должной вариации и доработке будет полезен IT-специалистам из неанглоязычных стран как в изучении английского языка, так и в получении навыков программирования. 4 студента отметили, что учебный модуль помог им разобраться с темами программирования, которые они раньше не понимали.

Статистика, собранная с помощью интервью и опроса, подтвердила, что данный эксперимент, а также ранее отмеченные успешные кейсы других преподавателей английского языка можно использовать при проектировании полноценного курса обучения программированию либо английскому в IT, или общего курса, объединяющего программирование и английский. Код-ревью может стать сопровождающим модулем, проходящим параллельно с темами, разбираемыми на той или иной дисциплине, либо выделенной темой, разбираемой ближе к окончанию дисциплины, так как для успешного завершения модуля необходим определенный уровень навыков программирования, достаточный уровень владения английским языком, а также словарный запас с лексикой, соответствующей IT-направленности.

Литература
  1. Brown J. Coding in English Class-Perfect Pair // Current and Cool. 2016. Available at: https://currentandcool.blogspot.com/2016/01/coding-in-english-class-perfect-pair.html (accessed May 12, 2019).
  2. Bradley L. Coding in English Class? Yes! And Not Just An #HourOfCode, But A #MonthOfCode! // Laura Bradley Blog. 2016. Available at: https://laurabradley.me/2016/12/15/coding-in-english-class-yes-and-not-just-an-hourofcode-but-a-monthofcode/ (accessed May 12, 2019).
  3. Stevens V., Verschoor J. Coding and English Language Teaching // The Electronic Journal for English as a Second Language (TESL-EJ). 2017. Vol. 21, no. 2 (21). Available at: http://www.tesl-ej.org/wordpress/issues/volume21/ej82/ej82int/ (accessed Mаy 19, 2019).
  4. Что такое код-ревью // КОД: Журнал Яндекс Практикума. 2019. URL: https://thecode.media/code-review/ (дата обращения 21.05.2019).
  5. Shor E. It's time We Code in English // Hacker Noon. 2018. Available at: https://hackernoon.com/its-time-we-code-in-english-e02df6b62ecc (accessed May 19, 2019).
  6. Orchard Project. Orchard CMS source code: OrchardCore.Modules/OrchardCore.Deployment/Controllers/StepController.cs. 2016. [Исходный код]. Available at: https://github.com/OrchardCMS/OrchardCore/raw/dev/src/OrchardCore.Modules/OrchardCore.Deployment/Controllers/StepController.cs (accessed November 11, 2020).
Ваш браузер устарел и не обеспечивает полноценную и безопасную работу с сайтом.
Установите актуальную версию вашего браузера или одну из современных альтернатив.