Научная статья на тему 'Современные методы и средства обучения программированию'

Современные методы и средства обучения программированию Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
370
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОБИЛЬНЫЕ ПРИЛОЖЕНИЯ / MOBILE APPLICATIONS / ОБУЧЕНИЕ ПРОГРАММИРОВАНИЮ / PROGRAMMING TRAINING / МАССОВЫЕ ОТКРЫТЫЕ ОНЛАЙН КУРСЫ / MASS OPEN ONLINE COURSES / ЭЛЕКТРОННОЕ ОБУЧЕНИЕ / E-LEARNING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Голубничий Артем Александрович, Чернявская Ксения Александровна

Рассматриваются основные подходы и средства обучения программированию. Анализируются основные ресурсы для изучения как отдельных языков программирования, так и комплексные проекты. Определены преимущества и недостатки отдельных систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Modern methods and tools for teaching programming

The main approaches and tools for teaching programming are considered. The main resources for studying both separate programming languages and complex projects are analyzed. The advantages and disadvantages of individual systems are considered.

Текст научной работы на тему «Современные методы и средства обучения программированию»

УДК 378.147

СОВРЕМЕННЫЕ МЕТОДЫ И СРЕДСТВА ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ

©Голубничий А. А., Хакасский государственный университет им. Н. Ф. Катанова,

г. Абакан, Россия, artem@golubnichij.ru ©Чернявская К. А., Хакасский государственный университет им. Н. Ф. Катанова, г. Абакан, Россия, kseniya0975@yandex.ru

MODERN METHODS AND TOOLS FOR TEACHING PROGRAMMING

©Golubnichiy A., Katanov Khakass State University, Abakan, Russia, artem@golubnichij.ru ©Chernyavskaya K., Katanov Khakass State University, Abakan, Russia, kseniya0975@yandex.ru

Аннотация. Рассматриваются основные подходы и средства обучения программированию. Анализируются основные ресурсы для изучения как отдельных языков программирования, так и комплексные проекты.

Определены преимущества и недостатки отдельных систем.

Abstract. The main approaches and tools for teaching programming are considered. The main resources for studying both separate programming languages and complex projects are analyzed.

The advantages and disadvantages of individual systems are considered.

Ключевые слова: мобильные приложения, обучение программированию, массовые открытые онлайн курсы, электронное обучение.

Keywords: mobile applications, programming training, mass open online courses, e-learning.

Программирование представляет собой специфическую область профессиональной деятельности. Подготовка IT специалистов в данной сфере требует значительного количества времени и отличается содержательно от любой другой деятельности. Как обучение любой другой практикоориентированной деятельности обучение программированию требует значительной реальной работы в данной сфере. Особенностью программирования является тот факт, что будущий программист должен не только знать синтаксис языка программирования, но и понимать возможность реализации конкретных алгоритмов для решения конкретных задач. Постоянная связь теории (возможность реализации алгоритма) и практики (написание решения на конкретном языке программирования) усложняет построение процесса обучения.

Для обучения программированию в настоящее время можно использовать различного рода онлайн-курсы, видео уроки, системы проверки правильности кода и т. д. При соответствующих запросах в поисковых системах значительная часть ресурсов ссылается также на мобильные программные продукты. Таким образом, обучение программированию возможно в рамках веб-платформ (онлайн курсов, MOOC), мобильных приложений, подборок обучающих видео и других тематических ресурсов.

Платформы и веб-ресурсы для изучения программирования

По результатам голосования, проводившегося на платформе Хабрахабр (1) летом 2017 года, в которое было включено 44 проекта, можно составить ТОП-10 ресурсов для изучения программирования. Лучшими проектами для изучения программирования, по мнению пользователей Рунета, являются: Codecademy, Javascript.ru, Coursera, HTML Academy, Stepik, Codewars, ITVDN, JavaRush, Hexlet и LiveEdu.tv. Рассмотрим некоторые из них.

Codecademy (2) представляет собой интерактивную онлайн-платформу для изучения программирования на языках Python, Java, JavaScript, Ruby и др., а также обучению языку разметки (HTML и CSS) при оформлении веб-страниц. Пользователи имеют профили для фиксирования прогресса в обучении, имеется форум для общения, также есть возможность публиковать собственные курсы через Course Creator. Особенностью некоторых курсов в рамках платформы является наличие «песочницы», в которой можно протестировать свой код.

Структура рабочей области курса в системе Codecademy удобна и содержит достаточный минимум для изучения программирования. Рабочая область системы представлена в виде материалов по теме, задания, состоящего из набора инструкций, подсказок к выполнению задания, области набора скрипта и эмулятора консоли, в которую выводится итог выполнения кода (Рисунок 1). Такая структура является оптимальной, как минимум с позиций того, что пользователь одновременно видит все необходимые модули и нет времени на поиск дополнительных материалов для решения задачи, при этом правильность решения возможно проверить сразу через систему проверки кода.

Рисунок 1. Интерфейс рабочей области проекта Codecademy.

Об удобстве данной платформы свидетельствует также факт того, что другие разработчики средств для онлайн обучения программированию, использовали схожий подход для организации ресурса. Так в платформе Data Camp используется аналогичный набор элементов, но с другим расположением в рабочей области (3).

Javascript.ru — тематический ресурс для изучения языка JavaScript (4). Данный ресурс привычен для пользователей, привыкших изучать язык программирования по учебникам, с минимумом интерактивных средств. В рамках данного сайта реализован учебник по языку программирования, форум для общения, а также небольшие тесты для проверки контроля знаний.

Coursera — система организации массовых открытых онлайн курсов (5). Сайт проекта Coursera не является тематическим ресурсом для изучения программирования, так в рамках платформы можно встретить большое количество курсов по химии, физике, математике, другим естественным, техническим и гуманитарным дисциплинам, а также курсы, посвященные использованию отдельных программных продуктов.

В большей части структура курсов представлена в виде кратких (чаще всего) видеороликов и различные задания для контроля полученных знаний. Системы контроля различаются по типу и могут включать задания с отложенным контролем лектором или другими слушателями, тестовые задания с открытым и закрытым типом контроля, интерактивные задания, реализованные по типу технологии Drag-and-drop и т. д. В настоящее время на платформе преимущественно располагаются курсы по изучению языка программирования Python, однако, данный перевес в изучении конкретного языка на платформе является следствием его популярности, в последнее время, и никоим образом не связан с техническими особенностями данного языка или ориентиром платформы. Платформа Coursera, как и многие другие MOOC-проекты, создавалась как средство сделать открытыми и доступными для всех желающих курсы, читаемые в ведущих мировых вузах, однако сейчас данный, и схожие ему проекты, используются и отдельными фондами и даже частными пользователями для продвижения своих проектов в сфере образования.

Мобильные приложения

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

1) текстовый и графический учебный материал;

2) медиа материал (аудио, видео уроки)

3) компилятор языка программирования, реализованный по типу песочницы;

4) справка по языку программирования;

5) тесты на проверку знаний;

6) система контроля правильности кода (при решении заданий), реализованную по технологии Drag-and-drop;

7) система контроля правильности кода (при решении заданий), реализованная через паттерны;

8) система контроля правильности кода (при решении заданий), реализованная через отсылку данных на сервер;

9) систему контроля правильности кода (при решении заданий), реализованная через встроенный компилятор и набор тестов.

Все мобильные программные продукты имеют один или несколько структурных элементов, представленных в списке ранее. Особый интерес представляет система контроля правильности (корректности кода) при решении конкретных задач при программировании.

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

Наиболее удачным на наш взгляд является программный продукт, имеющий структуру, представленную на Рисунке 2.

Компоненты для приобретения знаний

Компоненты для закрепления знаний на практике

Тестовый материал по темам

Медиа материал (видео уроки)

Компилятор языка программирования (песочница)

Тесты на проверку знаний

Справка по языку программирования

Система контроля правильности кода, реализованная через отсылку данных на сервер

Рисунок 2. Структура мобильного программного продукта для изучения программирования.

Наличие в компонентах для приобретения знаний как текстовых, так и видео материалов объясняется самим подходом к изучению программирования при помощи мобильной техники (телефона или планшета). Аудио и видео материал чаще лучше воспринимается слушателем, однако просмотр видео роликов и аудио треков не всегда возможен. Поэтому все видео лекции рекомендуется продублировать в текстовом виде с соответствующим графическим материалом для иллюстрирования.

Справку по языку программирования лучше всего представлять в виде перевода соответствующей официальной документации с гипертекстовой структурой.

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

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

Заключение

Все проекты для изучения программирования можно разделить на: подборки тематических видео, электронные учебники, МООС-проекты, интерактивные системы с проверкой правильности кода, мобильные и десктопные приложения.

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

Источники:

1. 30+ онлайн ресурсов для изучения программирования в 2017 / Хабрахабр [Электронный ресурс] URL: https://habrahabr.ru/post/331530/ (дата обращения 20.05.2018)

2. Learn to code | Codecademy [Электронный ресурс] URL: https://www.codecademy.com/ (дата обращения 20.05.2018)

3. Learn R, Python & Data Science Online | DataCamp [Электронный ресурс] URL:// https://www.datacamp.com/ (дата обращения 20.05.2018)

4. Центральный Javascript-ресурс. Учебник с примерами скриптов. Форум. Книги и многое другое. [Электронный ресурс] URL: //https://javascript.ru/ (дата обращения 20.05.2018)

5. Coursera | Online Courses From Top Universities. Join for Free [Электронный ресурс] URL:// https://www.coursera.org (дата обращения 20.05.2018)

Sources:

1. 30+ onlayn resursov dlya izucheniya programmirovaniya v 2017 / Habrahabr URL: https://habrahabr.ru/post/331530/ (

2. Learn to code | Codecademy URL: https://www.codecademy.com/

3. Learn R, Python & Data Science Online | DataCamp URL: https://www.datacamp.com/

4. Centralnyi Javascript-resurs. Uchebnik s primerami skriptov. Forum. Knigi i mnogoe drugoe. URL: /https://javascript.ru/

5. Coursera | Online Courses from Top Universities. Join for Free URL: https://www.coursera.org

Работа поступила Принята к публикации

в редакцию 20.05.2018 г. 2 7.05.2018 г.

Ссылка для цитирования:

Голубничий А. А., Чернявская К. А. Современные методы и средства обучения программированию // Бюллетень науки и практики. 2018. Т. 4. №6. С. 368-372. Режим доступа: http://www.bulletennauki.com/golubnichiy (дата обращения 15.06.2018).

Cite as (APA):

Golubnichiy, A., & Chernyavskaya, K. (2018). Modern methods and tools for teaching programming. Bulletin of Science and Practice, 4(6), 368-372.

i Надоели баннеры? Вы всегда можете отключить рекламу.