Skip to content

shvorobsofia/spbu-python-course

 
 

Repository files navigation

Check code style Code style

Python course

Курс "Программирование на Python".

Полезные ссылки:

Технологии:

  • Python 3.8+
  • Pytest для unit тестирования
  • GitHub Actions для CI
  • Google Colab для постановки и оформления экспериментов
  • Сторонние пакеты из requirements.txt файла
  • Английский язык для документации или самодокументирующийся код

Работа с проектом

  • Для выполнения домашних практических работ необходимо сделать приватный fork этого репозитория к себе в GitHub.
  • Рекомендуется установить pre-commit для поддержания проекта в адекватном состоянии.
    • Установить pre-commit можно выполнив следующую команду в корне вашего проекта:
      pre-commit install
    • Отформатировать код в соответствии с принятым стилем можно выполнив следующую команду в корне вашего проекта:
      pre-commit run --all-files
  • Ссылка на свой fork репозитория размещается в таблице курса с результатами.
  • В свой репозиторий необходимо добавить проверяющих с admin правами на чтение, редактирование и проверку pull-request'ов.

Домашние практические работы

Обратите внимание, что если проверка запрошена, но выполнены не все требования к решению (не проходит CI, не все пункты задачи выполнены, ответили не на все поставленные вопросы, не соблюли все требования к отчёту), то детальной проверки задачи не проводится, а попытка сдачи сгорает. Скорее всего, в таком случае единственным результатом проверки будет что-то в духе "задача решена не полностью".

Выполнение домашнего задания

  • Каждое домашнее задание выполняется в отдельной ветке. Ветка должна иметь осмысленное название.
  • Текст коммитов (commit message) должен быть адекватным и отражать суть происходящего.
  • Название файла должно отражать его содержимое (например, название алгоритма).
  • При выполнении домашнего задания в новой ветке необходимо открыть соответствующий pull-request в main вашего fork.
  • Pull-request снабдить понятным названием и описанием с соответствующими пунктами прогресса.
    • Название Pull-request должно иметь форму Фамилия. Task №X.
    • Описание с пунктами прогресса можно взять из текста соответствующего задания.
  • Проверка заданий осуществляется посредством review вашего pull-request.
  • На все написанные в ходе ревью комментарии/замечания должен быть написан ответ/комментарий
  • Как только вы считаете, что задание выполнено, вы можете запросить review у проверяющего. Обратите внимание, что CI должен проходить.
  • Количество проверок ограничено тремя. Первый запрос review должен быть до дедлайна. После двух неудачных проверок баллы за задачу сгорают.
  • Когда проверка будет пройдена, и задание зачтено, его необходимо merge в main вашего fork.

Получение оценки за домашнюю работу

  • Если review запрошено до дедлайна и ваша работа зачтена, то вы получаете полный балл за домашнюю работу.
  • Если review запрошено после дедлайна и ваша работа зачтена, то вы получаете половину полного балла за домашнюю работу.

Код

  • Исходный код практических задач по программированию размещайте в папке project.
  • Файлам и модулям даем осмысленные имена, в соответствии с официально принятым стилем.
  • Структурируем код, используем как классы, так и отдельно оформленные функции.
  • К функциям, классам, модулям должна быть написана документация.

Тесты

  • Тесты для домашних заданий размещайте в папке tests.
  • Формат именования файлов с тестами test_[какой модуль\класс\функцию тестирует].py.
  • Для работы с тестами рекомендуется использовать pytest.
  • Для запуска тестов необходимо из корня проекта выполнить следующую команду:
    python ./scripts/run_tests.py

Структура репозитория

.
├── .github - файлы для настройки CI и проверок
├── project - исходный код домашних работ
├── scripts - вспомогательные скрипты для автоматизации разработки
├── tasks - файлы с описанием домашних заданий
├── tests - директория для unit-тестов домашних работ
├── README.md - основная информация о проекте
└── requirements.txt - зависимости для настройки репозитория

Оценка за курс

Оценка за курс складывается из баллов, полученных за работу в семестре.

Задачи разделены на взвешенные блоки, где коэффициент это баллы за летучку (контрольная работа на 5 минут). Пусть например, в курсе два блока по 2 задачи и 2 летучки. Пусть за первые две задачи получено 5 баллов, за оставшиеся 1 и 2 соответственно. Пусть за летучки получено 1 и 0.5 баллов. Тогда оценка за курс: $(5 + 5) * 1 + (1 + 2) * 0.5 = 11.5$

Баллы конвертируются в оценки следующим образом:

Балл ECTS Классика
(90 -- 100] A 5
(80 -- 90] B 4
(70 -- 80] C 4
(60 -- 70] D 3
(50 -- 60] E 3
[0 -- 50] F 2

Контакты

About

Python course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%