Skip to content

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

Open
gon7187 wants to merge 1 commit into
mainfrom
rework/lessons-1-12
Open

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

Conversation

@gon7187

@gon7187 gon7187 commented Jul 29, 2026

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 концепция)
1 hello print + строки + «ошибки-подсказки» Вывод текста: print() и строка в кавычках
2 variables присваивание + типы + f-строки Переменная и присваивание =
3 strings-input input + int() + float() + lower/strip/len (5 функций) f-строки
4 conditions if + else/elif + все сравнения Ветвление if/else
5 for-loop for + range + накопитель Цикл for по range
6 while-loop while + break + выбор цикла Цикл while по условию
7 functions def + return + именование Функция: вход → результат
8 lists список + индексы + append/pop/len Список и доступ по индексу
9 dicts-sets словарь + .get + set Словарь (set → урок 32)
10 files with + режимы + обход строк Файл через with: прочитать/записать
11 exceptions исключение + try/except + «проверяй заранее» try/except
12 classes класс + 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-connector chatgpt-codex-connector Bot 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 thread app/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 👍 / 👎.

Sign up for free to 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