Skip to content

feat(10-basics): полный перенос теории из Python и адаптация под java#303

Open
fey wants to merge 2 commits into
mainfrom
update-10-basics-from-python
Open

feat(10-basics): полный перенос теории из Python и адаптация под java#303
fey wants to merge 2 commits into
mainfrom
update-10-basics-from-python

Conversation

@fey

@fey fey commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Контекст

Выравниваем курсы code-basics по эталонному exercises-python, помодульно. Этот PR — первый модуль 10-basics курса Java. Теория была урезана относительно Python (~72% объёма README), местами пустые data.yml. Цель — паритет RU-теории и заданий с Python при сохранении Java-специфики.

Объёмы README (слов: было → стало / Python)

Урок Было Стало Python %
10-hello-world 240 502 372 135%
20-comments 187 310 227 137%
30-statements 117 298 268 111%
40-testing 381 420 326 129%
50-syntax-error 166 325 314 103%

Что добавлено

  • 10-hello-world: секция «Значение символов», диаграмма Код→Компилятор/JVM→Экран.
  • 20-comments: секция «Служебные комментарии» (BEGIN/END), definition + tip.
  • 30-statements: секции «Порядок имеет значение», «Зачем это нужно»; definitions «Инструкция»/«Компилятор» + tip.
  • 40-testing: структурный заголовок «Моя ошибка или нет?».
  • 50-syntax-error: секции «Что такое синтаксическая ошибка?», «Почему ошибки простые?», «Что делать при ошибке?»; tip; задание переписано в стиле Python (вывести → намеренно сломать → прочитать ошибку → починить).
  • description.ru.yml модуля дополнено до объёма Python.

Java-специфика (НЕ копировали из Python буквально)

  • Компилятор/JVM вместо интерпретатора; JShell — REPL-обёртка.
  • Строки — только двойные кавычки; одинарные = char (не PEP 8 single quotes).
  • ; — обязательный терминатор инструкции (в Python — необязательный разделитель).
  • Формат ошибок — javac/JUnit (expected … but was …), не pytest-диф и не SyntaxError/^.
  • 3 вида комментариев Java (//, /* */, /** */) сохранены.
  • Задание 20-comments оставлено обычным комментарием, не TODO: checkstyle-правило TodoComment запрещает TODO в коде (нюанс, которого нет в Python).

Что НЕ тронуто

  • Задания/тесты 10-hello-world, 30-statements, 40-testing (педагогически эквивалентны Python).
  • Python-картинки (hello-world.png и др.) не переносились — содержат Python-код.
  • Локали en/es — отдельной фазой перевода (этот PR только RU).

Проверки

  • Тесты всех 5 уроков модуля — зелёные (bin/test.sh в Docker).
  • checkstyle — 0 ошибок.
  • YAML изменённых data.yml/description.ru.yml — валиден, структура совпадает с Python.
  • schema-validate/description-lint локально не запускались (нет доступа к официальному base-image из-за сети) — отработают в CI.

🤖 Generated with Claude Code

fey and others added 2 commits June 18, 2026 14:55
Доведение RU-теории и заданий модуля 10-basics до паритета с эталонным
exercises-python с сохранением Java-специфики.

- 10-hello-world: секция «Значение символов», диаграмма Код→Компилятор/JVM→Экран;
  кавычки описаны по-Java (строка — двойные, одинарные — char), без PEP 8.
- 20-comments: секция «Служебные комментарии» (BEGIN/END), definition + tip.
- 30-statements: секции «Порядок имеет значение» и «Зачем это нужно»;
  `;` описан как обязательный терминатор; definitions «Инструкция»/«Компилятор».
- 40-testing: структурный заголовок «Моя ошибка или нет?» (формат ошибок — JUnit).
- 50-syntax-error: секции «Что такое синтаксическая ошибка?», «Почему ошибки
  простые?», «Что делать при ошибке?»; tip; задание в стиле Python (сломай-и-почини).
- description.ru.yml модуля дополнено до объёма Python.

Java-специфика, отличная от Python: компилятор/JVM вместо интерпретатора;
двойные кавычки для строк; обязательная `;`; формат ошибок javac/JUnit;
3 вида комментариев сохранены.

Локаль только RU (en/es — отдельной фазой). Задание 20-comments оставлено
обычным комментарием (не TODO): checkstyle-правило TodoComment запрещает TODO.

Проверки: тесты всех 5 уроков зелёные, checkstyle 0 ошибок, YAML валиден.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…comments

Правило TodoComment запрещало `// TODO:` в коде решений, из-за чего нельзя
было перенести из Python педагогически ценное задание про TODO-комментарии.
Отключаем правило (закомментировано в checkstyle.xml) и выравниваем задание
20-comments под Python: студент добавляет `// TODO: добавить метод приветствия`.

Проверки: checkstyle 0 ошибок, тест 20-comments зелёный.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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