Проекты*

Сервис для обучения основам алгоритмики. Машина Тьюринга

Работа победителя открытой городской научно-практической конференции «Инженеры будущего» по направлению «Инженеры» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10–11 классов

Направление работы: Инженерия
Авторы работы: ГБОУ Школа № 2065
Предметы: Математика, Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» по направлению «Инженеры» 2022 года

Актуальность

С развитием технологий сфера применения компьютеров растёт. Всё большему числу профессий требуются работа с вычислительными устройствами, понимание их логики, применение навыков в разработке алгоритмов. Развитие этих навыков требует решения сложных задач. Для этого отлично подходит практика программирования на машине Тьюринга. Решение задач, связанных с программированием на ней, требует внимания и вдумчивости и позволяет улучшать свои навыки в области алгоритмики и программирования.

Цель

Создать сервис для обучения алгоритмике с возможностью организовать связь учителя с учеником в рамках решения задач в удобном формате.

Задачи

  1. Провести анализ существующих решений.
  2. Разработать концепцию сервиса.
  3. Разработать серверную часть проекта.
  4. Разработать архитектуру базы данных и реализовать её.
  5. Разработать и реализовать маршрутизацию на сайте.
  6. Разработать и реализовать компонентный подход организации веб-страницы.
  7. Разработать и реализовать систему взаимодействия с клиентской частью проекта.
  8. Разработать клиентскую часть проекта.
  9. Разработать дизайн страниц.
  10. Сверстать страницы и разбить их на компоненты.
  11. Реализовать интерпретатор машины Тьюринга.
  12. Реализовать клиентские скрипты.
  13. Перенести сервер на хостинг.

Оснащение и оборудование, использованное при создании работы

  • Компьютер

Описание

После анализа задач начался процесс разработки серверной части проекта.

Первым делом была разработана архитектура базы данных и на PHP написаны функции для взаимодействия с ней.

Затем была создана система маршрутизации. Все запросы к сервису уходят на один скрипт-обработчик, а он далее сам вызывает необходимые функции.

Далее был разработан компонентный подход: для каждого элемента сайта, который мог повторяться на разных страницах, была создана функция построения этого компонента. Каждая такая функция выводит html-код компонента по заданным аргументам.

Затем был создан сам интерпретатор машины Тьюринга. Клиентский интерпретатор (на странице интерпретатора) полностью написан на JavaScript.

Его реализация состоит из двух частей: функций работы с таблицей (пользовательский функционал таблицы программирования) и непосредственно интерпретатора. 

Затем были свёрстаны и разбиты на компоненты остальные страницы сайта. 

Конечным этапом создания сервиса стало объединение различных его частей в целое.

Все аккаунты пользователей заносятся в базу данных. Пароли от аккаунтов хранятся в зашифрованном виде.

В личном кабинете пользователь может создать программу и её редактировать, создавать группы или вступать в чужие по ссылке.

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

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

значения ленты. Итоговое приложение протестировано и работает.

Результаты работы/выводы

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

Перспективы использования результатов работы

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

Награды/достижения

Конференция «Курчатовский проект» 2022 года – призёр;

Конференция «Наука для жизни» 2022 года – призёр

Мнение автора

«Выполнение проекта позволило подробнее изучить тему веб-разработки, попрактиковаться в написании сайта.

Открытая городская научно-практическая конференция «Инженеры будущего» позволила показать свой проект, чему я очень рад»