diff --git a/README.md b/README.md index b4e5020..046a0e2 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,140 @@ * Методические указания и варианты заданий — в списке файлов выше. * [Журнал](https://docs.google.com/spreadsheets/d/1P9XF8Chyo3sBx5sgGW2UriUBv78sLLuHwOadQvefH9s/edit?usp=sharing) -* [Комментарии к методическим указаниям](comments.md) \ No newline at end of file +* [Комментарии к методическим указаниям](comments.md) + +--- + +## Работа с Git + +**Работы проверяются только после того, как закоммичены по правилам ниже.** + +1. В начале семестра + создать на сервере копию этого репозитория ("форкнуть" его), нажав *Fork*. + Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/python`, + где `IvanovII` — ваше имя пользователя. + +1. В начале каждого занятия: + + Клонировать свой форк на рабочий стол: + + ```sh + git clone http://uit.mpei.ru/git/IvanovII/python + ``` + + Перебазировать свой форк на исходный репозиторий ("апстрим"): + + ```sh + # Первую команду нужно запускать только один раз, + # иначе будет ошибка "error: remote upstream already exists". + git remote add upstream http://uit.mpei.ru/git/main/python.git + git fetch upstream + git stash push + git rebase upstream/main + git stash pop + ``` + + Перебазировать нужно, чтобы подтянуть из исходного репозитория обновления. + +1. После того, как отчет написан, закоммитить его как `TEMAn/report.md`. + Здесь и далее `TEMAn` — каталоги конкретных тем: `TEMA1`, `TEMA2` и т. д. + Можно также коммитить по частям в процессе работы. + Если для отчета нужны рисунки, то их закоммитить в `TEMAn`, + назвав `figure0.png`, `figure1.png` и т. д. + +1. Решение общего контрольного задания (ОКЗ) закоммитить как `TEMAn/task.md`. + Исключения: + + * Тема 1 не содержит общего контрольного задания — ничего не делать. + * Тема 8 требует нескольких файлов — закоммитить их в каталог `TEMA8/task`. + +1. Решение индивидуального контрольного задания (ИКЗ) по темам 2, 4, 5, 7, 8 + или решение теста по модуля после тем 3, 6, 9 + закоммитить как `TEMAn/test.md`. + Исключения: + + * Тема 1 вместо ИКЗ содержит контрольный вопрос — + закоммитить также в `TEMA1/test.md`. + * Тема 8 и тест по модулю 3 (после темы 9) требуют нескольких файлов — + закоммитить в каталог `TEMAn/test`. + +## Оформление отчета + +Отчет `TEMAn/report.md` оформляется в формате Markdown по следующему образцу: + + # Отчет по теме 1 + + Иванов Иван, А-01-25 + + ## 1 Изучение среды IDLE + + ## 1.1 Настройка текущего каталога + + ``` + >>> import os + >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") + >>> os.getcwd() + 'C:\\Users\\u111-19\\Desktop\\python\\TEMA1' + ``` + + Нажал *Файл / Открыть*, диалог оказался сразу нацелен на установленную папку: + + ![Скриншот диалога открытия файла](figure0.png) + +Нужно написать приведенный выше текст в `report.md` (например, Блокнотом), +а рядом разместить изображение `figure0.png`, +тогда в web-интерфейсе Gitea фрагмент будет отображаться так: + +> # Отчет по теме 1 +> +> Иванов Иван, А-01-25 +> +> ## 1 Изучение среды IDLE +> +> ## 1.1 Настройка текущего каталога +> +> ``` +> >>> import os +> >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") +> >>> os.getcwd() +> 'C:\\Users\\u111-19\\Desktop\\python\\TEMA1' +> ``` +> +> Нажал *Файл / Открыть*, диалог оказался сразу нацелен на установленную папку: +> +> ![Скриншот диалога открытия файла](assets/report-example.png) + +Заголовки пунктов должны отражать их суть в нескольких словах, +то есть просто скопировать текст пункта в заголовок не подойдет. +Вы должны сами придумать осмысленные заголовки, прочитав пункт задания. + +В отчет копируется код, введенный в оболочку (строки, начинающиеся с `>>>`), +и вывод соответствующих команд (`'C:\\Users...` в примере). + +Если в пункте задания требуется сделать вывод или объяснить что-то, +к коду и выводу добавляется письменный ответ или пояснение. + +[Узнать больше о формате Markdown.](https://commonmark.org/help/) + +## Оформление решений + +Решение всех заданий оформлять по образцу: + + # Общее контрольное задание по теме 2 + + Иванов Иван, А-01-25 + + ## Задание + + Создать переменную `name`, содержащую ваше имя. Определить тип этой переменной. + + ## Решение + + ```py + >>> name = 'Иван' + >>> type(name) + 'str' + ``` + +Для тем 8 и 9 раздела «Решение» не нужно, +вместо этого решение размещается в отдельных файлах `*.py`. diff --git a/assets/report-example.png b/assets/report-example.png new file mode 100644 index 0000000..dee2425 Binary files /dev/null and b/assets/report-example.png differ