Проекты*

Автоматизация создания школьного расписания

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

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

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

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

Цель

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

Задачи

  1. Изучить существующие способы составления расписания.
  2. Изучить рекомендации СанПиНа по составлению расписания.
  3. Разработать программу, позволяющую создавать расписание для одного класса.
  4. Учесть рекомендации СанПиНа.
  5. Доработать программу, чтобы она могла создавать расписание для всей школы (ввести занятость учителей, кабинетов).

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

  • Компьютер

Описание

Принцип работы программы

Пользователь, составляющий расписание, вводит данные, которые требует программа (кол-во часов попредметно, максимальное кол-во уроков в день; все предметы, которые преподают в этом учебном заведении).

Автором реализована данная опция через функцию, которая отвечает за равномерное распределение учебных часов по дням. Эти данные хранятся в списке hours_each_day. Созданы функции needed_lessons и lessons_deleter.

Функция needed_lessons выделяет из списка всех уроков те, которые нужны для определённого класса, и заполняет два связанных списка, которые отвечают за учебные часы, отведённые под каждый урок, и за сами уроки. Функция lessons_deleter просматривает список всех уроков, если количество часов урока равно 0, то урок удаляется из списка уроков, которые ещё должны пройти за оставшиеся дни недели. На данный момент правила достаточно просты: не ставить два одинаковых урока в один день. Реализована возможность добавления правил. Расписание хранится в списке недели days, который содержит списки расписания дней: monday, tuesday, wednesday, thursday, friday. По завершении составления первым выводится количество учебных часов по дням, потом выводится расписание на каждый день.

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

Создана программа для автоматизации составления школьного расписания

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

Использовать программу для составления расписания в школах Москвы.

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

«Я был очень рад поучаствовать в Открытой городской научно-практической конференции «Инженеры будущего». По моему мнению, это было хорошим опытом»