ВВЕДЕНИЕ
1 Анализ предметной области
1.1 Возможности студента в системе
1.2 Возможности преподавателя в системе
1.3 Обработка действий пользователя
1.4 Поддержка работы студента
1.5 Поддержка работы преподавателя
1.6 Анализ существующих решений
1.6.1 Инструментальные средства, поддерживающие онлайн компиляцию и
выполнение
2 Архитектура разработанной системы
2.1 Общая архитектура приложения
2.2 Средства разработки
2.3 Описание прецедентов
2.4 Модульная структура приложения
2.6 Данные, используемые системой
3 Реализация разрабатываемой системы
3.1 Разработка серверной части
3.2 Список функций слоя логики
4 Функционирование системы
4.1 Вход пользователя в систему
4.2 Рабочее пространство студента
4.3 Рабочее пространство преподавателя
4.4 Регистрация пользователей
4.5 Создание задания
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Приложение А Структура баз данных системы
На сегодняшний день существует множество различных программных продуктов для разработки программного обеспечения, как полностью свободного для использования с открытым исходным кодом, так и проприетарного, для использования которого пользователю приходится приобретать лицензию. Компании-разработчики каждый день предоставляют все больше и больше потенциала пользователям в своих программах. В связи с этим, память, занимаемая ими, растет в быстром темпе, а также растет время, требуемое на установку.
Обучение программированию на машинах с автономным программным обеспечением становится неудобным в ходе интерактивного обучения, и поэтому предлагается проводить его в онлайн системах, способных скомпилировать программный код, запустить программу на стороне сервера и выдать результат ее выполнения, а также вести учет выполненных работ.
На текущий момент существует множество подобных систем, но ни одна не позволяет в полной мере применять ее для обучения студентов. Все эти системы могут только производить какую-либо работу с программным кодом, будь то компиляция, исполнение или выдача результата, но для обучения программированию вдобавок необходим список определенных для выполнения студентом задач, а также рейтинг с оценками за их выполнение.
Данный подход к обучению программированию имеет свои достоинства и недостатки.
Достоинства:
• Отсутствие необходимости устанавливать то или иное специализированное программное обеспечение, ведь для работы такой системы пользователю достаточно иметь браузер с выходом в сеть Интернет;
• Задания могут выполняться в любое удобное для студента время в любом удобном для него месте;
• Студенту нет смысла переживать за свои работы, т.к. они все будут храниться на сервере;
• Автоматизированная система оценивания работ, экономящая время преподавателей;
Недостатки:
• Система не позволит подготовить студента к нормальному программированию в условиях разработки программного обеспечения в больших компаниях;
В настоящее время данный метод обучения студентов программированию распространен далеко не повсеместно, но развить его не составит труда. Скорее всего, он не сможет полностью заменить нынешний подход, оставив разработку программного обеспечения в специализированных программных продуктах манерой разработчиков, но может являться вводным для большинства начинающих студентов.
Целью данной работы является разработка онлайн системы обучения программированию, в которой студент сможет написать программный код, отправить его на компиляцию на сервер и получить выходные данные. Все задания будут автоматически оцениваться системой по нескольким критериям. В ходе анализа технического задания были определены основные задачи:
• Изучить информацию о данной предметной области;
• Проанализировать существующие системы;
• Выбрать вариант реализации разрабатываемой системы;
• Поиск возможного решения с открытым исходным кодом для последующей доработки;
• Разработка пользовательского интерфейса, удовлетворяющего всем требуемым функциям;
• Разработать клиентскую часть;
• Разработать серверную часть;
В ходе исследования предметной области были выделены основные функции, которыми должна обладать система. Она должна обеспечивать удобство проведения практических занятий во время лекций, как для студента, так и для преподавателя, путем их интерактивного взаимодействия, которое более подробно будет рассмотрено далее.
В ходе выполнения выпускной квалификационной работы была разработана онлайн система обучения программированию. Функции, реализованные в полученной системе:
• Разработка программного кода онлайн с использованием веббраузера;
• Отправка выполненного задания на сервер для последующей компиляции и выполнения;
• Возможность написания задания для студентов преподавателем через удобный веб-интерфейс;
Также были выполнены общие требования к системе, а именно:
• Обеспечение необходимого уровня безопасности и надёжности, защиты от несанкционированного повреждения информации;
• Адекватное поведение системы при одновременной работе нескольких пользователей;
• Простой и интуитивно понятный интерфейс;
• Разграничение прав доступа;
Для достижения полученного результата были решены следующие задачи:
• Изучена информация о данной предметной области;
• Проанализированы существующие системы;
• Выбран вариант реализации разрабатываемой системы;
• Доработана серверная часть;
• Доработана клиентская часть;