Skip to content

rework: уроки 1-12 — одна концепция на урок (стиль 13-25) - #22

Merged
gon7187 merged 2 commits into
mainfrom
rework/lessons-1-12
Aug 3, 2026
Merged

rework: уроки 1-12 — одна концепция на урок (стиль 13-25)#22
gon7187 merged 2 commits into
mainfrom
rework/lessons-1-12

Conversation

@gon7187

Copy link
Copy Markdown
Owner

Реворк уроков 1–12: 1 урок = 1 концепция

Уроки 1–12 (первая редакция от 14.07) переписаны по жёсткому стандарту: одна новая концепция на урок, тест строго по теории урока, спиральные повторы пройденного. Стиль и структура данных — как у рукописных уроков 13–25 (PR #17): 3 карты теории (концепция / углубление / «Типичная ошибка»), примеры с # Вывод:, вопросы choice/term/code, у code-задач есть reference-решение.

Нумерация не меняется: id уроков, порядок 1–12 и модули прежние — уроки 13–25 и 26–120 не затронуты.

Было → стало

УрокБылоСтало (1 концепция)
1helloprint + строки + «ошибки-подсказки»Вывод текста: print() и строка в кавычках
2variablesприсваивание + типы + f-строкиПеременная и присваивание =
3strings-inputinput + int() + float() + lower/strip/len (5 функций)f-строки
4conditionsif + else/elif + все сравненияВетвление if/else
5for-loopfor + range + накопительЦикл for по range
6while-loopwhile + break + выбор циклаЦикл while по условию
7functionsdef + return + именованиеФункция: вход → результат
8listsсписок + индексы + append/pop/lenСписок и доступ по индексу
9dicts-setsсловарь + .get + setСловарь (set → урок 32)
10fileswith + режимы + обход строкФайл через with: прочитать/записать
11exceptionsисключение + try/except + «проверяй заранее»try/except
12classesкласс + init/self + методыКласс — чертёж, объект — данные (методы → 65–68)

Вытесненные концепции уже покрыты курсом: elif → 33, break → 35, append/pop/len-методы → 25, set → 32, обход файла → 58, методы класса → 65–68, lower/strip → 17–20.

Вопросы к Максиму

  1. input() и int() убраны из урока 3: stdin раннером не тестируется, в уроках 13–120 input не используется. Варианты: а) оставить вне курса; б) вернуть отдельным уроком позже (CLI-раздел 25?); в) расширить блок 1–12 со сдвигом нумерации (большой реворк, ломает identity 13–25).
  2. len() больше не даётся явно в 1–12 (в 13–25 встречается 1 раз). Ввести его в уроке 17 или 25?
  3. Заголовки: урок 3 «Строки и ввод» → «f-строки», урок 9 «Словари и множества» → «Словари» (id прежние). ОК?
  4. XP уроков 1–12 теперь единый 35 (как у 13–25) вместо 20–45.

Прочие изменения

  • app/lessons_1_12.py — новый файл с уроками (content.py импортирует его, старые инлайн-уроки убраны).
  • Экзамены модулей start/logic/structures/realworld обновлены на новые id вопросов ({lesson}-choice/-term/-code).
  • Тесты: добавлены identity/стиль/reference-pass/исполняемость-примеров для 1–12 (зеркало тестов 13–25); тест prereq-безопасности уроков 4–6 обновлён на новые id; test_api — новые id и xp.
  • docs/CURRICULUM.md — строки разделов 1 и 3 приведены к новому содержанию.

Проверки

  • pytest: 42/42 passed
  • ruff check + ruff format --check: OK
  • pyright: 0 errors, 0 warnings

НЕ МЕРЖИТЬ без ревью Максима — это учебный контент, методику смотрит владелец курса.

- New app/lessons_1_12.py: 12 reworked lessons, 1 concept each,
3 theory cards (concept / deepening / typical mistake),
choice+term+code questions with reference solutions
- content.py: import LESSONS_1_12, exams updated to new question ids
- tests: 1-12 identity/style/reference/example-exec tests (mirroring
13-25), prereq test for lessons 4-6 updated to new ids
- docs/CURRICULUM.md: rows 1 and 3 match reworked content
pytest 42/42, ruff check+format OK, pyright 0 errors

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:564a3e1c95

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment threadapp/content.py
"variables-term",
"strings-input-choice",
"hello-code",
"variables-code",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve old exam totals when awarding repeat XP

For existing users who passed this four-question exam with 3/4, expanding it to five questions lets them earn the 50 XP reward a second time after upgrading and passing again. save_exam() determines previously_passed using the incoming total_count, so the stored 3/4 is treated as 3/5; the same regression applies to the expanded logic and structures exams. Compare the previous score against its stored total_count or migrate these progress records before changing the exam sizes.

Useful? React with 👍 / 👎.

@gon7187

Copy link
Copy Markdown
OwnerAuthor

Обновление PR (03.08.2026)

  1. len() в уроке 17 — добавлена аккуратно в карточку «Индекс указывает один символ» (app/lessons_13_25.py): len() как длина строки и связь с последним индексом len(word) - 1. id урока не менялось.
  2. input()/int() — решено: оставляем за пределами этого PR, будет отдельный урок позже (секция CLI, ~25). Нумерация 1–12 и размер блока 1–12 не меняются.

Жду перепроверки CI и мержа по разрешению 29.07.

@gon7187
gon7187 merged commit d9cbf4f into mainAug 3, 2026
2 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@gon7187