Содержание 3
Введение 5
1 Анализ и особенности процесса обучения программированию 8
1.1 Специфика преподавания программирования 8
1.2 Лекция - часть учебного процесса 9
1.3 Традиционное лекционное занятие (описание процесса) 12
1.3.1 Преподаватель 13
1.3.2 Студент 15
1.3.3 Самостоятельная работа студента 15
1.4 Интерактивный подход к лекциям 16
1.5 Методы закрепления теоретических знаний 22
1.5.1 Лабораторные работы 22
1.5.2 Лекции 23
1.6 Обзор существующих систем обучения 24
1.6.1 CS50 IDE 24
1.6.2 Moodle 24
1.7 Обзор open source облачных IDE, на основе которой можно реализовывать
свою систему 25
1.7.1 Cloud 9 24
1.7.2 Codeboard 26
1.7.3 Codebox 27
1.7.4 Итоги выбора 28
2 Разработка требований к разрабатываемой системе 29
2.1 Пользовательские истории предполагаемого процесса обучения 29
2.1.1 Студент. Работа на занятиях 29
2.1.2 Запуск написанных программ 30
2.1.3 Предварительная настройка системы перед началом работы 30
2.1.4 Преподаватель 30
2.2 Обзор диаграмм прецедентов 32
2.3 Поток событий для прецедентов диаграммы 34
3 Разработка архитектуры и основных технических решений 38
3.1 Структура системы 38
3.2 Архитектура базы данных 41
3.2.1 Построение концептуальной модели данных 41
3.2.2 Модель данных СУБД 43
3.3 Построение диаграммы классов 45
3.4 Программная реализация системы 48
3.4.1 Клиентская часть 48
3.4.2 Серверная часть 50
4 Функциональность системы 52
4.1 Список занятий 52
4.2 Добавление / редактирование занятий 52
4.3 Добавление / редактирование задачи 53
4.4 Проведение занятия 54
4.5 Просмотр статистика 58
4.6 IDE 60
Заключение 61
Список используемых источников 62
Приложение А Диаграммы системы 64
Применение технических средств в ходе обучения стало неотъемлемым атрибутом образовательной деятельности. Основными составляющими учебного процесса являются получение знаний, навыков и компетенций, которые приобретаются путем применения различных форм обучения. Закрепление материала в таких дисциплинах как программирование обычно сопровождается решением задач после прочтения или прослушивания достаточно большого по объему теоретического материала. Этот теоретический материал обычно предоставляется в ходе лекционных занятий или во время самостоятельного прочтения соответствующих источников и зачастую не сопровождается достаточным числом примеров, необходимых для понимания. Во многом это происходит из-за нехватки времени на изложение всех возможных примеров, а также из-за того, что демонстрации подобных примеров без практической их реализации бывает недостаточным для получения нужных сведений.
Одним из возможных вариантов закрепления материала и понимания работы тех или иных конструкций языков программирования является непосредственное их использования в небольших демонстрационных программах, выдаваемых в качестве маленьких задач. Однако в большинстве случаев для оперативного решения подобных задач отсутствует техническая поддержка. Выполнение подобных задач на бумаге полностью убивает оперативность исполнения и контроля в виде обратной связи.
Зачастую процесс приобретения знаний является оторванным от их применения и освоения, что ведет к разрыву между получением информации и ее использованием. В результате чего к тому моменту, когда полученные знания нужно применить, информация о них уже забывается и ее приходится заново восстанавливать, пользуясь дополнительными источниками. Желательно, чтобы в процессе получения знаний можно было не только увидеть соответствующие примеры, но и непосредственно использовать их на практике. Однако ряд существующих методов обучения в настоящее время не позволяют это сделать.
Необходимо ускорить процесс практического закрепления полученных знаний, увязав выполнение задач с непосредственным закреплением только что полученных теоретических знаний. Для этого необходимо иметь соответствующую инструментальную поддержку, позволяющую выполнять простые задания по программированию не только при выполнении практических заданий, но и на лекции.
Целью данной работы является разработка интерактивной системы обучения программированию, обеспечивающая написание программ студентами, и оперативным отображением текущих результатов выполнения в виде соответствующих статистических данных для преподавателя при непосредственном выполнении заданий во время изучения теоретического материала, которая могла бы применяться в ВУЗах для предоставления студентам легкого механизма закрепления теоретических знаний по программированию.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Сделать анализ особенностей процесса обучения для определения основных подходов к повышению уровню интерактивного взаимодействия между преподавателем и студентами во время проведения лекционных занятий, сформировать рекомендации по повышению интерактивности.
2. Разработать процессы, обеспечивающих интерактивное выполнение заданий и их обработку при проведении лекционных занятий.
3. Разработать архитектуру системы, поддерживающую интерактивное взаимодействие между преподавателем и студентами.
4. Реализовать систему интерактивного взаимодействия с применением современных информационных технологий.
В первой главе проводится анализ существующего лекционного процесса. Делается обзор функций существующих систем для обучения студентов
Во второй главе представлены требования к разрабатываемому проекту и описаны пользовательские истории предполагаемого процесса обучения, который будет после внедрения разрабатываемой системы. На основе описанных пользовательских историй производится построение диаграмм прецедентов, которые отображают взаимодействие пользователей с возможностями системы и самой системы с пользователями.
Третья глава посвящена разработке внутренней структуре разрабатываемого проекта и интерфейса. На основе требований, описанных во второй главе была описана модель базы данных которая будет использоваться в системе, а также построены классы которые будут использоваться в системе. Описана программная реализация серверной и клиентской части.
В четвертой главе описано функционирование разработанной системы. Рассмотрено взаимодействие пользователей, выполняющих различные роли, с компонентами системы и между собой.
В ходе выполнения работы над магистерской диссертацией, были выполнены следующие задачи.
1. Произведен анализ особенностей процесса обучения для определения основных подходов к повышению уровню интерактивного взаимодействия между преподавателем и студентами во время проведения лекционных занятий, сформированы рекомендации по повышению интерактивности.
2. Разработана клиент - серверная архитектура приложения. Была разработана база данных, которая позволяет хранить данные пользователей, управлять задачами, и все что связано с выполнением задач, т.е. лекциями и тестами.
3. Был разработан прототип системы, который обладает функционалом, позволяющим использовать его во время проведения лекций. Данный прототип демонстрирует возможность проведения лекций в режиме интерактивности, что позволяет в любой момент остановить процесс подачи теоритического материала, и выдать небольшую задачу, для самостоятельного решения студентами.
4. Было произведено тестирование всех основных функций прототипа системы, таких как выдача задач, получение статистики, выполнение заданий студентами и др.
1. Калашников, В. И. и др. Информационно-измерительная техника и технологии / В. И. Калашников, С. В. Нефедов, А. Б. Путилин. - Москва: Высшая школа. - 2002. - 520 с.
2. Mikowski M. S., Powell J. C. Single page web applications //B and W. -2013.
3. Park R. C. et al. Picocell based telemedicine health service for human UX/UI //Multimedia Tools and Applications. - 2015. - Т. 74. - №. 7. - С. 2519¬2534.
4. React - A JavaScript library for building user interfaces URL: https://reactjs.org(дата обращения: 08.02.2018).
5. GraphQL | A query language for your API URL: http://graphql.org(дата обращения: 15.01.2018).
6. Freeman S. et al. Active learning increases student performance in science, engineering, and mathematics //Proceedings of the National Academy of Sciences. -
2014. - Т. 111. - №. 23. - С. 8410-8415.
7. Заболотнева, О. Л. Специфика лекции в образовательном пространстве вуза //Слово, высказывание, текст в когнитивном, прагматическом и культурологическом аспектах. - 2014. - С. 182-184.
8. Акулич, М. М. Образование в условиях глобализации [Текст] / М. М. Акулич // Университетское управление. - 2005.— № 5 (38).
9. Dolnicar, S. (2005). Should we still lecture or just post examination
questions on the web?: The nature of the shift towards pragmatism in undergraduate lecture attendance. Quality in Higher Education, 11(2), 103-115.
http: //ro .uow.edu.au/commpapers/299/
10. Cloud9 [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki/Cloud9
11. Cloud9 - Your development environment, in the cloud [Электронный ресурс]. - Режим доступа: https://aws.amazon.com/ru/cloud9/?origin=c9io
12. Codeboard - the IDE for the classroom [Электронный ресурс] - Режим доступа:https://codeboard.io
13. CS50 Docs [Электронный ресурс]. - Режим доступа: https://manual.cs50.net/cs50-ide/online.html