Электронная почта: danny.paleyev@gmail.com
[ НАЗВАНИЕ ПРОЕКТА ]
“CS tutor”
[ ПРОБЛЕМНОЕ ПОЛЕ ] Ежегодно в олимпиадах по спортивному программированию участвует большое количество школьников и студентов. И с каждым годом их количество только увеличивается. У любого, кто начинал заниматься спортивным программированием возникали следующие потребности:
- Наличие учебника с темами по спортивному программированию упорядоченных по сложности/глобальным темам
- Наличие сборника упражнений для каждой темы, которые могут помочь закрепить пройденный материал
- Наличие сервиса, который поможет визуализировать твой прогресс для повышения мотивации и продуктивности
- Наличие сервиса, в котором можно фиксировать идеи для задач нерешенных сразу
- Наличие сервиса, который предлагал какую задачу стоит решить, исходя из уровня ученика, для более эфективной подготовки к олимпиадам
На данный момент существует множество учебников, но ни в одном из них не представлены задачи, которые помогут освоить тему. Также не существует сервисов которые помогли бы контроллировать уровень прогресса ученика, предлагать задачи для решения и в нужный момент мотивировать ученика заниматься спортивным программированием
Заявляемый программный продукт позволит решить эти проблемы и обеспечит пользователям широкий функционал и интуитивно понятный интерфейс.
[ ЗАКАЗЧИК / ПОТЕНЦИАЛЬНАЯ АУДИТОРИЯ ]
Программный продукт может заинтересовать учеников средней и старшей школы, желающих проявить себя в олимпиадном программировании или уже занимающихся олимпиадным программированием и готовящихся к школьному, муниципальному, региональному этапу всероссийской олимпиады школьников по информатике и другим крупным олимпиадам, и студентов "младших курсов", начинающих в олимпиадах или готовящихся к 1/8 этапу ACM ICPC и олимпиадам подобного уровня сложности.
[ АППАРАТНЫЕ ТРЕБОВАНИЯ ] *IOS - версия 11 и выше, до 100 Мб свободного места на устройстве *MacOS - версия Сatalina и выше, до 100 Мб свободного места на устройстве
[ ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ ] Программный продукт будет являтся приложением-компаньоном для крупнейшего сборника задач в рунете https://timus.online/ и предоставлять следующие возможности:
- Чтение теоретических статей по спортивном урограммированию начального и среднего уровня сложности (динамическое программирование, структуры данных, графы, теория чисел, поиск, вычислительная геометрия)
- Получение списка задач для каждой статьи
- Получение проверки пройденности тем по количеству решенных задач для данной темы на сайте https://timus.online/
- Получение автоматической статистики решения задач по дням, темам на сайте https://timus.online/
- Запись и чтение идей решения нерешенных задач
- Получение напоминаний мотивирующих вернуться к решению нерешенных задач
- Получение напоминаний о снижении активности в решении задач и прохожднии тем
- Получение задач, которые подойдут под стэк тем пройденных учеником
[ ПОХОЖИЕ / АНАЛОГИЧНЫЕ ПРОДУКТЫ ] Анализ 3 программных продуктов, которые максимально приближены к заданному функционалу, показал, что:
- https://timus.online/ , https://acmp.ru/ , https://informatics.mccme.ru: не обладает учебником, слишком широкое разбиение задач по темам, недостаточная статистика (только общее количество решенных задач), отсутстиве каких-либо напоминаний, невозможность фиксировать идеи для задач
- https://foxford.ru/ : отсутстивие задач, отсутствие статистики, отсутстиве каких-либо напоминаний, невозможность фиксировать идеи для задач
- https://e-maxx.ru/ : в некоторых темах отсутствуют задачи для решения, отсутствие статистики, отсутстиве каких-либо напоминаний, невозможность фиксировать идеи для задач
[ ИНСТРУМЕНТЫ РАЗРАБОТКИ ]
- Swift / XCode - для разработки iOS-версии
- Python/PyCharm - для разработки серверной части сервиса
[ ЭТАПЫ РАЗРАБОТКИ ]
- Разработка пользовательских сценариев
- Проектирование интерфейса
- Создание серверной части сервиса
- Создание IOS - приложения
- Тестирование и отладка
- Запуск IOS-приложения
- Подготовка проекта к защите
[ ВОЗМОЖНЫЕ РИСКИ ]
- К некоторым темам могут отсутствовать задачи на https://timus.online/
- Сложность в получении с сайта информации о решенных задачах
- Неправильная оценка стека технологий, которые мне необходимо изучить, как следствие – нехватка времени на изучение необходимых языков программирования, фреймворков и т. п.