-
Notifications
You must be signed in to change notification settings - Fork 1
Main Idea & Strategy
Чтобы освоить оценку сложности алгоритмов разным людям требуется разное количество практики. Некоторые схватывают уже после 2-3 примеров. Некоторым нужно прорешать штук 10.
Идея: сделать бота для телеграмма, в котором каждый сможет упражняться столько, сколько ему нужно. Бот должен генерировать каждый раз новые задания, постепенно увеличивая уровень сложности.
- Все задания разбиты на уровни. Уровень определяет тему заданий. Чтобы пройти уровень, нужно заполнить прогрессбар уровня до конца. Level 1️⃣. Progress: 🔘🔘🔘🔘⚫️https://changaco.oy.lc/unicode-progress-bars/
- Внутри уровня много генераторов. Каждый генератор объявляет сколько ячеек прогресс бара он добавляет. Корректный ответ — +1, Ошибка — -1, но только если правильных ответов на задачи этого генератора больше, чем неправильных.
- Прохождение уровня может открывать возможность прохождения других уровней.
- В любой момент можно перейти на любой из открытых уровней и продолжить упражняться там.
- При неудачном ответе можно запросить объяснения. Объяснения могут становиться подробнее с каждым разом.
Все задания разбиты на темы. Внутри тема разбивается на уровни сложности. Чтобы пройти уровень, нужно набрать достаточное количество очков — заполнить прогрессбар уровня до конца.
-
Уровень — это набор генераторов.
-
Генератор умеет генерировать код, правильный ответ и список возможных вариантов ответа, объяснения.
-
Генератор должен быть максимально общим. Но при этом должна быть простая реализация по шаблону, примерно такому:
for(var $var$=0; $var$<n; $var$ $inc$) c++; var: one of [i, k, j, index] inc: one of [++ +=1 +=2 +=3] answer: Θ(n)
-
Генерация вариантов ответов:
- Сложность других генераторов в этом уровне.
- Чуть-чуть отличающаяся сложность от правильной
- Неправильный вариант ответа, который чаще выбирают статистически.