Автор: Федоров Вячеслав Васильевич, м.н.с. ИЯФ им. Г. И. Будкера СО РАН.
Электронное пособие по физике для основной школы. Составлено по учебникам И. М. Перышкина, сборникам задач А. Е. Марона и рабочей программе 7–9 классов.
Каждый урок — отдельная тетрадь Jupyter: теория, интерактивная модель, настоящий опыт с измерениями, численный эксперимент на Python, задачи с разбором и вопросы для самопроверки.
Интерактивные модели написаны на Canvas + JavaScript, поэтому работают прямо
на опубликованном сайте, где ядра Python нет: ученику не нужно ничего устанавливать.
Физика в моделях считается честно — упругие столкновения молекул и потенциал
Леннард-Джонса. Формулы рисует MathJax из папки _mathjax, поэтому сайт работает
и без интернета.
8 класс, раздел «Тепловые явления»:
| № | Тема | Параграф | Опыт на уроке |
|---|---|---|---|
| 1 | Основные положения МКТ и их опытные подтверждения | § 1 | диффузия в горячей и холодной воде |
| 2 | Масса и размеры атомов и молекул | § 1 | измерение размера молекулы по масляной плёнке |
| 3 | Модели твёрдого, жидкого и газообразного состояний | § 2 | сжимаемость газа и жидкости, выращивание кристалла |
Полный список 68 уроков 8 класса с отметками готовности — в grade8/index.md.
intro.md титульная страница пособия
_toc.yml оглавление: части по классам и разделам программы
_config.yml настройки сборки
grade7/ grade8/ grade9/
index.md обзор курса класса: все уроки по программе
lessons/*.ipynb сами уроки
samostoyatelnye/ короткие проверочные работы с ответами для учителя
phys/ общий код для всех классов
_static/custom.css оформление блоков с опытами
_mathjax/ MathJax для работы без интернета
Вспомогательный код общий для всех классов:
| Модуль | Назначение |
|---|---|
phys/sim.py | интерактивные модели: броуновское движение, диффузия, агрегатные состояния, взаимодействие молекул, шкала размеров |
phys/quiz.py | задания с проверкой ответа: выбор варианта, число, скрытый разбор |
phys/calc.py | физические постоянные и расчёты |
phys/style.py | единое оформление графиков |
- Положите тетрадь в
grade<N>/lessons/— имя вида12-uravnenie-teplovogo-balansa.ipynb, номер совпадает с номером урока в рабочей программе. - Впишите файл в нужный раздел
_toc.yml. Новый раздел программы — новая часть с заголовком вида8 класс · Электрические явления. - Отметьте урок готовым в таблице
grade<N>/index.md— поставьте галочку и сделайте название ссылкой. - Соберите:
make rebuild.
Для нового класса достаточно создать grade<N>/index.md и папку lessons/ —
весь код в phys/ уже общий.
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/pip install -e .
make buildГотовый сайт окажется в _build/html/index.html.
Важно: после правок в пакете phys/ нужна полная пересборка — Sphinx не отслеживает
изменения в нём сам:
make rebuildПосмотреть сайт локально: make serve (откроется на http://localhost:8321).
Править уроки удобно в JupyterLab: .venv/bin/jupyter lab.
Сайт собирается и публикуется автоматически при каждом push в main
(см. .github/workflows/deploy.yml) и доступен по адресу
https://phys-dev.github.io/school-phys-book/.
Если публикация настраивается заново, в настройках репозитория нужно один раз выбрать Settings → Pages → Source: GitHub Actions.