Основы и методология программирования на ПМИ 2021/2022 (основной поток) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница: «== Основы и методология программирования, основной поток, 2020-2021, 1 модуль == '''Лектор:''' [https…»)
 
 
(не показаны 83 промежуточные версии 10 участников)
Строка 1: Строка 1:
== Основы и методология программирования, основной поток, 2020-2021, 1 модуль ==
+
== Основы и методология программирования, основной поток, 2021-2022 1 модуль ==
  
'''Лектор:'''  [https://www.hse.ru/org/persons/133408680 М. С. Густокашин]
+
'''Лектор:'''  [А. Г. Михеев]
  
Конспекты лекций: https://yadi.sk/i/BkcKilJkumcPV
+
Программа курса и ноутбуки лекций (будут добавляться по мере поступления): https://github.com/justalge/another_python_tutorial
  
Видео-лекции можно смотреть тут: https://www.coursera.org/learn/python-osnovy-programmirovaniya/home/welcome (платить денег ни в коем случае не нужно)
+
Видеозаписи всех лекций и некоторых семинаров: https://www.youtube.com/playlist?list=PLEwK9wdS5g0pOn3KCblRmmBV24o17r3LD
  
Результаты: https://docs.google.com/spreadsheets/d/e/2PACX-1vTISYECHxXFwFAYrWPm0tVundmCeSN2Q4C3z2W0XAi14pGZjabsAANdz8FfSweZgv-GoIRhx9FXYws6/pubhtml?gid=1933945457&single=true
+
Материалы лекций основаны на https://www.python-course.eu (англ. яз.). Разделы [https://www.python-course.eu/python3_course.php Python Tutorial], [https://www.python-course.eu/object_oriented_programming_introduction.php OOP] и [https://www.python-course.eu/advanced_python.php Advanced].
  
Красным выделены выявленные случаи нарушения академических норм (будет подана служебная записка), желтым - неудовлетворительное качество видео и скринкаста (требуется переписывание защиты). За подробностями можете обратиться к своим преподавателям.
+
Канал с важными объявлениями: https://t.me/joinchat/LsEVKZunealjOTUy
  
Обратите внимание, что текущие оценки являются предварительными (осуществлены еще не все проверки на соблюдение правил, особенно на контрольной).
+
Материалы прошлого года (рус. яз.):
 +
* Конспекты лекций: https://yadi.sk/i/BkcKilJkumcPV
 +
* Видео-лекции: https://www.coursera.org/learn/python-osnovy-programmirovaniya/home/welcome (платить денег ни в коем случае не нужно)
  
== Итоговые оценки и экзамен ==
+
==ДЗ==
  
Накопленная оценка не превышает 10.
+
После каждого семинара вам будет дано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала соответствующего семинара. Еще в течение 7 дней после этого доступна возможность досдать задачи, однако задачи оцениваются вполовину меньшим баллом. Перед семинаром необходимо изучить соответствующую тему по лекциям и текстовым конспектам.
  
Итоговая оценка за курс вычисляется как 0.6*накопленная + 0.4*экзамен. Промежуточные значения не округляются, итоговое значение округляется по математическим правилам: к ближайшему целому, при дробной части 0.5 -- в большую сторону.
+
[https://official.contest.yandex.ru/contest/29037/enter/ ДЗ 1 (Арифметика)]
  
Демонстрационный вариант экзамена: https://official.contest.yandex.ru/contest/9592
+
[https://official.contest.yandex.ru/contest/29069/enter/ ДЗ 2 (if, while, for, float)]
  
Экзамен состоится в субботу, 17.10.2020 с 14:40 до 16:40 в онлайн-режиме с асинхронным прокторингом. Правила аналогичны защитам ДЗ.
+
[https://official.contest.yandex.ru/contest/29227/enter/ ДЗ 3 (strings, lists)]
  
Ссылка на вход в экзамен 2020: https://official.contest.yandex.ru/contest/20998
+
[https://official.contest.yandex.ru/contest/29228/enter/ ДЗ 4 (dictionaries, sets)]
  
Форма для сдачи ссылок на видео: https://docs.google.com/forms/d/e/1FAIpQLSf4Mh4AfzgRs6P8G_TdWFSLUsdUQHh73Esx67UyI2Vm8dSl0g/viewform
+
[https://official.contest.yandex.ru/contest/29478/enter/ ДЗ 5-6 (functions, recursion)]  '''На 2 недели. Чтобы набрать максимальное количество баллов за это ДЗ нужно решить на 20 баллов'''
  
== Используемое ПО ==
+
[https://official.contest.yandex.ru/contest/29691/enter ДЗ 7 (sorting, linear search)]
Необходимо установить интерпретатор Python версии не ниже 3.6 под свою ОС. Ссылка https://www.python.org/downloads/
+
  
JetBrains PyCharm Community: https://www.jetbrains.com/pycharm/download/
+
[https://official.contest.yandex.ru/contest/29699/enter ДЗ 8 (OOP intro)] - Максимальное количество баллов за это ДЗ - 14 (см баллы в контесте), чтобы получить максимум, нужно решить все задачи
  
На занятия можно приносить свой ноутбук.
+
[https://official.contest.yandex.ru/contest/29825/enter ДЗ 9 (OOP outro) - Максимальное количество баллов за это ДЗ - 14 (см баллы в контесте), чтобы получить максимум, нужно решить все задачи], '''Дедлайн 16.10 23:59 для всех групп'''
  
==Домашние задания==
+
[https://official.contest.yandex.ru/contest/29982/enter/ ДЗ 10 (bonus) - Максимальное количество баллов за это ДЗ - 14], '''Дедлайн 16.10 23:59 для всех групп'''
  
Максимальная оценка за ДЗ - 12 баллов (если накопите больше 10 - получите 10, это просто бонус на случай неудач на защитах и т.п.), баллы распределены по задачам равномерно. Заходить нужно под тем же логином, под которым вы заходили в тестирование. На выполнение задания дается 8 дней от момента начала соответствующего семинара. Еще в течение 7 дней после этого доступна возможность досдать задачи, однако задачи оцениваются вполовину меньшим баллом. Перед семинаром необходимо изучить соответствующую тему по видеолекциям и текстовым конспектам.
+
==Программа advanced группы 2112-2==
  
[https://official.contest.yandex.ru/contest/19577/enter/ ДЗ 1 (Арифметика)]
+
Краткое введение на примерах в:
  
[https://official.contest.yandex.ru/contest/19578/enter/ ДЗ 2 (Условный оператор)]
+
- использование внешних библиотек
  
[https://official.contest.yandex.ru/contest/19683/enter/ ДЗ 3 (Цикл while)]
+
- dataclasses, type hints
  
[https://official.contest.yandex.ru/contest/19684/enter/ ДЗ 4 (Вещественные числа и строки)]
+
- сравнение oop и fp стилей
  
[https://official.contest.yandex.ru/contest/19817/enter/ ДЗ 5 (Функция и рекурсия)]
+
- чистый читабельный код: нейминг, agile, ограничения на средства языка, линтеры
  
[https://official.contest.yandex.ru/contest/19818/enter/ ДЗ 6 (Цикл for)]
+
- простой веб сервис: http, бд
  
[https://official.contest.yandex.ru/contest/19934/enter/ ДЗ 7 (Списки)]
+
- threading, multiprocessing
  
[https://official.contest.yandex.ru/contest/19935/enter/ ДЗ 8 (Сортировка и линейный поиск)]
+
- async
  
[https://official.contest.yandex.ru/contest/20258/enter/ ДЗ 9 (Множества)]
+
- git
  
[https://official.contest.yandex.ru/contest/20259/enter/ ДЗ 10 (Словари)]
+
- bash
  
[https://official.contest.yandex.ru/contest/20675/enter/ ДЗ 11 (Функциональное программирование)]
+
- публикация библиотек
  
[https://official.contest.yandex.ru/contest/20676/enter/ ДЗ 12 (ООП)]
+
- аналитика и визуализация
  
==Дедлайны==
+
- ML/pytorch
{| class="wikitable"
+
 
|-
+
- поиск информации и готовых модулей
! Контест !! ДЗ 1 !! ДЗ 2 !! ДЗ 3 !! ДЗ 4 !! ДЗ 5 !! ДЗ 6 !! ДЗ 7 !! ДЗ 8 !! ДЗ 9 !! ДЗ 10 !! ДЗ 11 !! ДЗ 12
+
 
|-
+
- мини-проект на любую из вышеперечисленных тем
| 202-1 || 12.09.20 9:29 || 17.09.20 9:29 || 19.09.20 9:29 || 24.09.20 9:29 || 26.09.20 9:29 || 01.10.20 18:09 || 03.10.20 9:29 || 08.10.20 18:09 || 10.10.20 9:29 || 15.10.20 18:09 || 17.10.20 9:29 || 22.10.20 18:09
+
 
|-
+
==Программа advanced группы 214-2==
| 204-1
+
 
|-
+
Семинар 1 - знакомство с python
| 204-2 || 12.09.20 9:29 || 16.09.20 9:29 || 19.09.20 9:29 || 23.09.20 9:29 || 26.09.20 9:29 || 30.09.20 9:29 || 03.10.20 9:29 || 07.10.20 9:29 || 10.10.20 9:29 || 14.10.20 9:29 || 16.10.20 23:59 || 16.10.20 23:59
+
 
|-
+
Семинар 2 - код стайл, pep8, правила хорошего тона camel case, snake case
| 206-1 || 13.09.20 09:30 || 13.09.20 11:10 || 20.09.20 09:30 || 20.09.20 11:10 || 27.09.20 09:30 || 27.09.20 11:10 || 04.10.20 09:30 || 04.10.20 11:10 || 11.10.20 09:30 || 11.10.20 11:30 || 16.10.20 23:59 || 16.10.20 23:59
+
 
|-
+
Семинар 3 - учимся писать тесты, tdd
| 206-2  
+
 
|-
+
Семинар 4 - python в математике: графики, статистика
| 207-1 || 12.09.20 9:29 ||  17.09.20 9:29 || 19.09.20 9:29 || 24.09.20 9:29 || 26.09.20 9:29 || 01.10.20 9:59 || 05.10.20 9:29 || 08.10.20 09:59 || 11.10.20 11:29 || 15.10.20 9:29 || 16.10.20 23:59 || 16.10.20 23:59
+
 
|-
+
Семинар 5 - системы контроля версий, open source
| 207-2 || 12.09.20 9:29 || 17.09.20 9:29 || 19.09.20 9:29 || 24.09.20 9:29 || 26.09.20 9:29 || 29.09.20 18:09 || 03.10.20 9:29 || 06.10.20 18:09 || 10.10.20 9:29 || 13.10.20 18:09 || 16.10.20 23:59 || 16.10.20 23:59
+
 
|-
+
Семинар 6 - парсинг данных: bs4, selenium
| 208-1 || 11.09.20 14:39 || 11.09.20 14:39 || 19.09.20 14:39 || 19.09.20 14:39 || 25.09.20 14:39 || 25.09.20 14:39 || 30.09.20 9:29 || 30.09.20 9:29 || 07.10.20 9:29 || 07.10.20 9:29 || 14.10.20 9:29 || 14.10.20 9:29
+
 
|-
+
Семинар 7 - учимся писать код на собеседованиях, и как их проходить
| 208-2
+
 
|-
+
Семинар 8 - фреймворки для тестирования, пишем свой mvp проект на семинаре
| 209-1 || 15.09.20 12:59 || 15.09.20 12:59 || 23.09.20 12:59 || 23.09.20 12:59 || 25.09.20 14:39 || 25.09.20 14:39 || 02.10.20 14:39 || 02.10.20 14:39 || 10.10.20 14:39 || 10.10.20 14:39 || 16.10.20 23:59 || 16.10.20 23:59
+
 
|-
+
Семинар 9 - pyqt
| 209-2
+
 
|-
+
Семинар 10 - веб разработка, requests, flask
| 210-1
+
 
|-
+
Семинар 11 - пишем телеграм-бота
| 210-2
+
 
|-
+
Семинар 12 - intro ml
| 211-1
+
|-
+
| 21-2
+
|-
+
| 212-1
+
|-
+
| 212-2
+
|-
+
| 2010-1 || 18.09.20 09:29 || 18.09.20 11:09 || 24.09.20 09:29 || 24.09.20 11:09 || 02.10.20 09:29 || 02.10.20 11:09 || 08.10.20 09:29 || 08.10.20 11:09 || 15.10.20 09:29 || 15.10.20 11:09 || 16.10.20 23:59 || 16.10.20 23:59
+
|-
+
| 2011-2 || 11.09.20 11:09 || 16.09.20 11:09 || 23.09.20 11:09 || 23.09.20 11:09 || 25.09.20 11:09 || 30.09.20 11:09 || 02.10.20 11:09 || 07.10.20 11:09 || 09.10.20 11:09 || 14.10.20 11:09 || 16.10.20 23:59 || 16.10.20 23:59
+
|-
+
| 2012-2 || 17.09.20 11:09 || 17.09.20 12:59 || 24.09.20 11:09 || 24.09.20 12:59 || 08.10.20 11:09 || 08.10.20 12:59 || 10.10.20 11:09 || 10.10.20 12:59 || 15.10.20 11:09 || 15.10.20 12:59 || 16.10.20 23:59 || 16.10.20 23:59
+
|}
+
  
 
==Система защиты ДЗ==
 
==Система защиты ДЗ==
  
Раз в две недели проходит защита ДЗ (с прокторингом или очно). По теме каждого ДЗ будет предложено 2 задачи средней сложности, всего 8 задач, на защиту отводится одна пара. Во время решения практических задач можно пользоваться конспектами и своими решениями задач ДЗ.
+
Раз в две недели проходит защита ДЗ (с прокторингом или очно). На защиту отводится одна лекционная пара.
 +
На защите будет предложено для решения 8 задач, по 2 задачи средней сложности на каждую тему лекции.
 +
Во время решения практических задач можно пользоваться конспектами и своими решениями задач ДЗ.
  
Оценка за каждое ДЗ определяется как min(Оценка за ДЗ; Оценка за защиту).
+
Оценка за каждую лекционную тему определяется как '''koef*оценка за лекционную тему (до защиты)''', где koef - коэффициент, который определяется тем, как была написана защита ДЗ.
 +
Так, если на защите ДЗ решено 0 задач - коэффициент составляет 0.3, 1 задача - 0.6, 2 задачи - 1.
  
Оценка за защиту по каждой теме вычисляется следующим образом: 0 задач - 3, 1 задача - 7, 2 задачи - 12.
+
Со студентами, результат работы которых на защите сильно отличается от оценки за ДЗ до защиты, будет проведена дополнительная устная защита с целью поиска путей исправления проблем в освоении материала.
  
Со студентами, оценка которых на защите чрезвычайно низка по сравнению с оценкой на ДЗ, будет проведена дополнительная устная защита с целью поиска путей исправления проблем в освоении материала.
+
== Формула оценки и экзамен ==
  
==Защита ДЗ 1-4==
+
На оценку влияют: выполнение домашнего задания, работа на семинаре, защита домашнего задания и экзамен. Итоговая оценка за курс вычисляется как '''0.6*накопленная + 0.4*экзамен'''.
  
Защита состоится в субботу 26.09.2020 с 14:40 до 16:00 в режиме онлайн с асинхронным прокторингом. Заранее ознакомьтесь с техническими требованиями и порядком проведения защиты по ссылке: [[Защита_ДЗ_1-4_ОиМП-1_2020 | Защита ДЗ 1-4]]
+
Накопленная оценка считается как: среднее арифметическое оценок за каждую лекционную тему.
 +
Оценка за каждую лекционную тему рассчитывается как: '''min(10, koef*(0.8*оценка за ДЗ по теме лекции (до защиты) + 0.2*оценка за семинар по теме лекции))'''.
 +
Максимальная оценка за работу на семинаре - 10 баллов. Максимальная оценка за  ДЗ по теме лекции (до защиты) - 14 баллов. При этом суммарное количество баллов в одном ДЗ в контесте больше 14. Чтобы получить максимальную оценку за ДЗ можно решить не все задачи. Таким образом, максимальную оценку по теме лекции вы можете получить, решая только ДЗ.
  
Демонстрационный вариант защиты ДЗ 1-4 доступен по ссылке https://official.contest.yandex.ru/contest/14004/enter/ в режиме виртуального контеста.
+
За найденные и сообщенные семинаристу проблемы в тестах вы можете получить от 2 до 5 дополнительных баллов к оценке за семинар.
  
==Защита ДЗ 5-8==
+
Промежуточные значения не округляются, итоговое значение округляется по математическим правилам: к ближайшему целому, при дробной части 0.5 - в большую сторону.
  
Защита состоится в субботу 10.10.2020 с 14:40 до 16:00 в режиме онлайн с асинхронным прокторингом. Заранее ознакомьтесь с техническими требованиями и порядком проведения защиты по ссылке: [[Защита_ДЗ_5-8_ОиМП-1_2020 | Защита ДЗ 5-8]]
+
== Используемое ПО ==
  
==Переписывание защиты==
+
Необходимо установить интерпретатор Python версии не ниже 3.6 под свою ОС. Ссылка https://www.python.org/downloads/
  
Переписывание защиты состоится в четверг 15.10.2020 с 19:40 до 21:00 в режиме онлайн с асинхронным прокторингом. Переписывание разрешено для тех, кто пропустил защиту по уважительной причине (необходимо отдать справку в учебный офис), а также для тех, кто пропустил защиту по неуважительной причине или предъявил некачественную запись во время основной защиты. На защиту необходима предварительная запись: https://docs.google.com/forms/d/e/1FAIpQLSdQPPapjf406sRt1uTTTG27h42CmEVuB9vPzu1n6yEy347ECA/viewform
+
JetBrains PyCharm Community: https://www.jetbrains.com/pycharm/download/
  
==Материалы 208-1==
+
На занятия можно приносить свой ноутбук.
  
[https://docs.google.com/presentation/d/107onVJ7819CQiWa6bycWxEJmrOMtpSOGCsIFpP2bFEM Семинары 3,4]
+
== Списывание ==
  
[https://docs.google.com/presentation/d/15JCjfGPZHlrijdNuLGXfyaV6ioY5t_VhNL8KoHjvLKY Семинары 5,6]
+
Все ваши домашние задания, их защиты и экзамен будут проверены на плагиат. При выявлении списывания ваша работа будет аннулирована. Выявление повторного списывания влечет за собой отчисление из университета.
  
[https://docs.google.com/presentation/d/1KNQNVAoXCcriLUAA3gh7NAgqSUbw4TI3C2LWG2OlNfs Семинары 7,8]
+
== Дедлайны по ДЗ в группах ==
 +
{| class="wikitable"
 +
|-
 +
! Контест !! ДЗ 1 !! ДЗ 2 !! ДЗ 3 !! ДЗ 4 !! ДЗ 5-6 !! ДЗ 7 !! ДЗ 8 !! ДЗ 9 !! ДЗ 10 !! ДЗ 11 !! ДЗ 12
 +
|-
 +
| 212-1 || 15.09.21 16:20 || 16.09.21 15:00 || - || - || - || - || - || - || - || - || -
 +
|-
 +
| 212-2 || 16.09.21 9:30 || 16.09.21 11:10 || 23.09.21 9:30 || 23.09.21 11:10 || 06.10.21 9:30 || 07.10.21 9:30 || 07.10.21 11:10 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 214-2 || 16.09.21 9:29 || 18.09.21 9:29 || 23.09.21 9:29 || 25.09.21 9:29  || 06.10.21 9:29 || 07.10.21 9:29 || 09.10.21 9:29 || 16.10.21 23:59 || - || - || -
 +
|-
 +
| 218-1 || 19.09.21 13:00 || 22.09.21 19:40 || 23.09.21 14:40 || 29.09.21 19:40 || 06.10.21 14:40 || 07.10.21 13:00 || 13.10.21 19:40 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 2111-2 || 18.09.21 09:30 || 19.09.21 11:10 || 23.09.21 09:30 || 25.09.21 09:30 || 07.10.21 09:30 || 07.10.21 09:30 || 09.10.21 23:59 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 216-2 || 15.09.21 18:10 || 15.09.21 19:40 || 22.09.21 18:10 || 22.09.21 19:40 || 06.10.21 18:10 || 06.10.21 18:10 || 06.10.21 19:40 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 219-1 || 15.09.21 11:10 || 16.09.21 11:10 || 22.09.21 11:10 || 23.09.21 11:10 || 06.10.21 11:10 || 06.10.21 11:10 || 07.10.21 11:10 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 2111-1 || 16.09.21 9:30 || 18.09.21 9:30 || 23.09.21 9:30 || 25.09.21 9:30 || 07.10.21 9:30 || 07.10.21 9:30 || 09.10.21 9:30 || 16.10.21 23:59 || 16.10.21 23:59 || - || -
 +
|-
 +
| 216-1 || 16.09.21 9:30 || 16.09.21 11:10 || 23.09.21 9:30 || 23.09.21 11:10 || 07.10.21 9:30 || 07.10.21 11:10 || - || - || - || - || -
 +
|-
 +
| 219-2 || 14.09.21 23:59 || 17.09.21 23:59 || 21.09.21 23:59 || 24.09.21 23:59 || 05.10.21 23:59 || 05.10.21 23:59 || 09.10.21 23:59 || 16.10.21 23:59 || - || - || -
 +
|}
  
[https://docs.google.com/presentation/d/1Z-inMhUrL4Zlb54dS_I7Y_mlajAomnixmoGfjQUo-Qc Семинары 9,10]
+
== Дедлайны по дорешиванию семинаров в группах ==
 +
{| class="wikitable"
 +
|-
 +
! - !! Семинар 2 (code style) !! Семинар 3 (тестирование) !! Семинар 4 (matplotlib)!! Семинар 5 (git)!! Семинар 6 (wiki) !! Семинар 7 (cv) !! Семинар 8 (pyqt) !! Семинар 9 (pytest) !! Семинар 10 (web)
 +
|-
 +
| 214-2 || 13.09.21 23:59 || 18.09.21 23:59 || 20.09.21 23:59 || 27.09.21 23:59 || 06.10.21 23:59 || 16.10.21 23:59 || 16.10.21 23:59 || 16.10.21 23:59 || 16.10.21 23:59 ||
 +
|}

Текущая версия на 11:32, 14 октября 2021

Основы и методология программирования, основной поток, 2021-2022 1 модуль

Лектор: [А. Г. Михеев]

Программа курса и ноутбуки лекций (будут добавляться по мере поступления): https://github.com/justalge/another_python_tutorial

Видеозаписи всех лекций и некоторых семинаров: https://www.youtube.com/playlist?list=PLEwK9wdS5g0pOn3KCblRmmBV24o17r3LD

Материалы лекций основаны на https://www.python-course.eu (англ. яз.). Разделы Python Tutorial, OOP и Advanced.

Канал с важными объявлениями: https://t.me/joinchat/LsEVKZunealjOTUy

Материалы прошлого года (рус. яз.):

ДЗ

После каждого семинара вам будет дано оцениваемое домашнее задание. На выполнение задания дается 8 дней от момента начала соответствующего семинара. Еще в течение 7 дней после этого доступна возможность досдать задачи, однако задачи оцениваются вполовину меньшим баллом. Перед семинаром необходимо изучить соответствующую тему по лекциям и текстовым конспектам.

ДЗ 1 (Арифметика)

ДЗ 2 (if, while, for, float)

ДЗ 3 (strings, lists)

ДЗ 4 (dictionaries, sets)

ДЗ 5-6 (functions, recursion) На 2 недели. Чтобы набрать максимальное количество баллов за это ДЗ нужно решить на 20 баллов

ДЗ 7 (sorting, linear search)

ДЗ 8 (OOP intro) - Максимальное количество баллов за это ДЗ - 14 (см баллы в контесте), чтобы получить максимум, нужно решить все задачи

ДЗ 9 (OOP outro) - Максимальное количество баллов за это ДЗ - 14 (см баллы в контесте), чтобы получить максимум, нужно решить все задачи, Дедлайн 16.10 23:59 для всех групп

ДЗ 10 (bonus) - Максимальное количество баллов за это ДЗ - 14, Дедлайн 16.10 23:59 для всех групп

Программа advanced группы 2112-2

Краткое введение на примерах в:

- использование внешних библиотек

- dataclasses, type hints

- сравнение oop и fp стилей

- чистый читабельный код: нейминг, agile, ограничения на средства языка, линтеры

- простой веб сервис: http, бд

- threading, multiprocessing

- async

- git

- bash

- публикация библиотек

- аналитика и визуализация

- ML/pytorch

- поиск информации и готовых модулей

- мини-проект на любую из вышеперечисленных тем

Программа advanced группы 214-2

Семинар 1 - знакомство с python

Семинар 2 - код стайл, pep8, правила хорошего тона camel case, snake case

Семинар 3 - учимся писать тесты, tdd

Семинар 4 - python в математике: графики, статистика

Семинар 5 - системы контроля версий, open source

Семинар 6 - парсинг данных: bs4, selenium

Семинар 7 - учимся писать код на собеседованиях, и как их проходить

Семинар 8 - фреймворки для тестирования, пишем свой mvp проект на семинаре

Семинар 9 - pyqt

Семинар 10 - веб разработка, requests, flask

Семинар 11 - пишем телеграм-бота

Семинар 12 - intro ml

Система защиты ДЗ

Раз в две недели проходит защита ДЗ (с прокторингом или очно). На защиту отводится одна лекционная пара. На защите будет предложено для решения 8 задач, по 2 задачи средней сложности на каждую тему лекции. Во время решения практических задач можно пользоваться конспектами и своими решениями задач ДЗ.

Оценка за каждую лекционную тему определяется как koef*оценка за лекционную тему (до защиты), где koef - коэффициент, который определяется тем, как была написана защита ДЗ. Так, если на защите ДЗ решено 0 задач - коэффициент составляет 0.3, 1 задача - 0.6, 2 задачи - 1.

Со студентами, результат работы которых на защите сильно отличается от оценки за ДЗ до защиты, будет проведена дополнительная устная защита с целью поиска путей исправления проблем в освоении материала.

Формула оценки и экзамен

На оценку влияют: выполнение домашнего задания, работа на семинаре, защита домашнего задания и экзамен. Итоговая оценка за курс вычисляется как 0.6*накопленная + 0.4*экзамен.

Накопленная оценка считается как: среднее арифметическое оценок за каждую лекционную тему. Оценка за каждую лекционную тему рассчитывается как: min(10, koef*(0.8*оценка за ДЗ по теме лекции (до защиты) + 0.2*оценка за семинар по теме лекции)). Максимальная оценка за работу на семинаре - 10 баллов. Максимальная оценка за ДЗ по теме лекции (до защиты) - 14 баллов. При этом суммарное количество баллов в одном ДЗ в контесте больше 14. Чтобы получить максимальную оценку за ДЗ можно решить не все задачи. Таким образом, максимальную оценку по теме лекции вы можете получить, решая только ДЗ.

За найденные и сообщенные семинаристу проблемы в тестах вы можете получить от 2 до 5 дополнительных баллов к оценке за семинар.

Промежуточные значения не округляются, итоговое значение округляется по математическим правилам: к ближайшему целому, при дробной части 0.5 - в большую сторону.

Используемое ПО

Необходимо установить интерпретатор Python версии не ниже 3.6 под свою ОС. Ссылка https://www.python.org/downloads/

JetBrains PyCharm Community: https://www.jetbrains.com/pycharm/download/

На занятия можно приносить свой ноутбук.

Списывание

Все ваши домашние задания, их защиты и экзамен будут проверены на плагиат. При выявлении списывания ваша работа будет аннулирована. Выявление повторного списывания влечет за собой отчисление из университета.

Дедлайны по ДЗ в группах

Контест ДЗ 1 ДЗ 2 ДЗ 3 ДЗ 4 ДЗ 5-6 ДЗ 7 ДЗ 8 ДЗ 9 ДЗ 10 ДЗ 11 ДЗ 12
212-1 15.09.21 16:20 16.09.21 15:00 - - - - - - - - -
212-2 16.09.21 9:30 16.09.21 11:10 23.09.21 9:30 23.09.21 11:10 06.10.21 9:30 07.10.21 9:30 07.10.21 11:10 16.10.21 23:59 16.10.21 23:59 - -
214-2 16.09.21 9:29 18.09.21 9:29 23.09.21 9:29 25.09.21 9:29 06.10.21 9:29 07.10.21 9:29 09.10.21 9:29 16.10.21 23:59 - - -
218-1 19.09.21 13:00 22.09.21 19:40 23.09.21 14:40 29.09.21 19:40 06.10.21 14:40 07.10.21 13:00 13.10.21 19:40 16.10.21 23:59 16.10.21 23:59 - -
2111-2 18.09.21 09:30 19.09.21 11:10 23.09.21 09:30 25.09.21 09:30 07.10.21 09:30 07.10.21 09:30 09.10.21 23:59 16.10.21 23:59 16.10.21 23:59 - -
216-2 15.09.21 18:10 15.09.21 19:40 22.09.21 18:10 22.09.21 19:40 06.10.21 18:10 06.10.21 18:10 06.10.21 19:40 16.10.21 23:59 16.10.21 23:59 - -
219-1 15.09.21 11:10 16.09.21 11:10 22.09.21 11:10 23.09.21 11:10 06.10.21 11:10 06.10.21 11:10 07.10.21 11:10 16.10.21 23:59 16.10.21 23:59 - -
2111-1 16.09.21 9:30 18.09.21 9:30 23.09.21 9:30 25.09.21 9:30 07.10.21 9:30 07.10.21 9:30 09.10.21 9:30 16.10.21 23:59 16.10.21 23:59 - -
216-1 16.09.21 9:30 16.09.21 11:10 23.09.21 9:30 23.09.21 11:10 07.10.21 9:30 07.10.21 11:10 - - - - -
219-2 14.09.21 23:59 17.09.21 23:59 21.09.21 23:59 24.09.21 23:59 05.10.21 23:59 05.10.21 23:59 09.10.21 23:59 16.10.21 23:59 - - -

Дедлайны по дорешиванию семинаров в группах

- Семинар 2 (code style) Семинар 3 (тестирование) Семинар 4 (matplotlib) Семинар 5 (git) Семинар 6 (wiki) Семинар 7 (cv) Семинар 8 (pyqt) Семинар 9 (pytest) Семинар 10 (web)
214-2 13.09.21 23:59 18.09.21 23:59 20.09.21 23:59 27.09.21 23:59 06.10.21 23:59 16.10.21 23:59 16.10.21 23:59 16.10.21 23:59 16.10.21 23:59