Основы программирования на Python осень 2020 матфак — различия между версиями
Svdcvt (обсуждение | вклад) |
Svdcvt (обсуждение | вклад) |
||
(не показано 15 промежуточных версии 2 участников) | |||
Строка 16: | Строка 16: | ||
* [https://t-do.ru/joinchat/CDE3kheCqQ9FmNDkdXCUjw Чат курса в телеграме] | * [https://t-do.ru/joinchat/CDE3kheCqQ9FmNDkdXCUjw Чат курса в телеграме] | ||
* [https://t-do.ru/joinchat/AAAAAFEIJZosdXGN5fJoOg Канал курса в телеграме] | * [https://t-do.ru/joinchat/AAAAAFEIJZosdXGN5fJoOg Канал курса в телеграме] | ||
− | * [https://anytask.org/course/723#tasks-tab Anytask] | + | * [https://anytask.org/course/723#tasks-tab Anytask], [https://t.me/c/1359488410/43 инвайты] |
* [https://docs.google.com/spreadsheets/d/13AtF13iSHQrNWiyPlDQ0Hth8z2C6WdaZrnSu5jsRRXw/edit?usp=sharing Таблица оценок] | * [https://docs.google.com/spreadsheets/d/13AtF13iSHQrNWiyPlDQ0Hth8z2C6WdaZrnSu5jsRRXw/edit?usp=sharing Таблица оценок] | ||
* [https://www.hse.ru/ba/math/courses/375290780.html ПУД курса] | * [https://www.hse.ru/ba/math/courses/375290780.html ПУД курса] | ||
Строка 48: | Строка 48: | ||
! № !! Тема !! Ссылка на занятие !! Контест !! Дедлайн | ! № !! Тема !! Ссылка на занятие !! Контест !! Дедлайн | ||
|- | |- | ||
− | | 1 || Вводные курса. Установка ПО. Введение в Python. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19635/enter/ contest] || 25.09 23:59 | + | | 1 || Вводные курса. Установка ПО. Введение в Python. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture01_intro_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19635/enter/ contest 1] || 25.09 23:59 |
|- | |- | ||
− | | 2 || Условные конструкции. While. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19781/enter/ contest] || 02.10 23:59 | + | | 2 || Условные конструкции. While. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture02_if_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19781/enter/ contest 2] || 02.10 23:59 |
|- | |- | ||
− | | 3 || Последовательности: списки, кортежи, строки. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19913/enter/ contest] || 03.10 23:59 | + | | 3 || Последовательности: списки, кортежи, строки. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture03_container_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/19913/enter/ contest 3] || 03.10 23:59 |
|- | |- | ||
− | | 4 || Цикл for. Функции range, enumerate, zip, map. Генераторы. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/20226/enter/ contest] || 12.10 23:59 | + | | 4 || Цикл for. Функции range, enumerate, zip, map. Генераторы. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture04_for_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/20226/enter/ contest 4] || 12.10 23:59 |
|- | |- | ||
− | | 5 || Функции, рекурсия.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def_slides.ipynb#/ slides] [https://youtu.be/yDqr1mc-j4Y YouTube] || [https://contest.yandex.ru/contest/14529/enter/ contest] || 18.10 23:59 | + | | 5 || Функции, рекурсия.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture05_def_slides.ipynb#/ slides] [https://youtu.be/yDqr1mc-j4Y YouTube] || [https://contest.yandex.ru/contest/14529/enter/ contest 5] || 18.10 23:59 |
|- | |- | ||
| 6 || Домашнее задание #1.|| [https://www.notion.so/6-4049aa1ddc90402aa077cfa8c3bca535 материалы и условие] || [https://contest.yandex.ru/contest/20857/standings contest] || 06.11 23:00 | | 6 || Домашнее задание #1.|| [https://www.notion.so/6-4049aa1ddc90402aa077cfa8c3bca535 материалы и условие] || [https://contest.yandex.ru/contest/20857/standings contest] || 06.11 23:00 | ||
|- | |- | ||
− | | 7 || Строки, форматирование.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str_slides.ipynb#/ slides] [https://youtu.be/-n5mvm6lzgE YouTube] || [https://contest.yandex.ru/contest/21625/enter/ contest] || 12.11 23:59 | + | | 7 || Строки, форматирование.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture06_str_slides.ipynb#/ slides] [https://youtu.be/-n5mvm6lzgE YouTube] || [https://contest.yandex.ru/contest/21625/enter/ contest 6] || 12.11 23:59 |
|- | |- | ||
− | | 8 || Словари, множества.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/21782/enter/ contest] || 18.11 23:59 | + | | 8 || Словари, множества.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture07_setdict_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/21782/enter/ contest 7] || 18.11 23:59 |
|- | |- | ||
− | | 9 || Алгоритмическая сложность, сортировки.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/22385/problems/ contest] || 27.11 23:59 | + | | 9 || Алгоритмическая сложность, сортировки.|| [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg.ipynb notebook] [https://nbviewer.jupyter.org/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg.ipynb nbviewer] [https://nbviewer.jupyter.org/format/slides/github/svdcvt/math_python_hse_2020/blob/master/lectures/lecture08_alg_slides.ipynb#/ slides] || [https://contest.yandex.ru/contest/22385/problems/ contest 8] || 27.11 23:59 |
|- | |- | ||
| 10 || Продвинутые темы 1. Исключения, тестирование, логирование. Модульное оформление. Аргпарс. Файлы. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture09_adv1/lecture09_adv1.ipynb notebook] || - || - | | 10 || Продвинутые темы 1. Исключения, тестирование, логирование. Модульное оформление. Аргпарс. Файлы. || [https://github.com/svdcvt/math_python_hse_2020/blob/master/lectures/lecture09_adv1/lecture09_adv1.ipynb notebook] || - || - | ||
|- | |- | ||
− | | 11 || Классы | + | | 11.1 || Классы. || [https://colab.research.google.com/drive/1c1CVoZ_l1pZHPw2tZq94siXZ9FF7_axK?usp=sharing notebook] || [https://contest.yandex.ru/contest/23108 необязательный contest на 40 бонусных баллов] || 3.12 23:59 |
|- | |- | ||
− | | | + | | 11.2 || Домашнее задание #2.|| [https://www.notion.so/802e574853dc420ba52a1dcf600b562f ДЗ #2. Класс многочленов. Условие.]|| [https://contest.yandex.ru/contest/23118 contest] || 13.12 23:59 |
|- | |- | ||
− | | | + | | 12 || Продвинутые темы 2. Итераторы. Itertools, collection, functools. Регулярные выражения. || [https://www.notion.so/11-08124f6d7db343f2a7a0b043b512be10 Подборка] || - || - |
|- | |- | ||
− | | | + | | 13 || Библиотеки для научных вычислений: numpy, scipy. || - || - || - |
|- | |- | ||
− | | 15 || Библиотеки для визуализаций: matplotlib, seaborn, plotly. || | + | | 14 || Библиотека для работы с таблицами: pandas. Домашнее задание #3. || || [https://drive.google.com/file/d/1sM6sbWGBlZK2Z7YEKKKCjthZD1qAd1q8/view notebook] || 25.12 23:59 |
+ | |- | ||
+ | | 15 || Библиотеки для визуализаций: matplotlib, seaborn, plotly. || - || - || - | ||
|} | |} | ||
Строка 112: | Строка 114: | ||
* Нажатие кнопки "стрелка вправо" переводит к следующему поколению; | * Нажатие кнопки "стрелка вправо" переводит к следующему поколению; | ||
* Нажатие пробела - "умерщвляет" все клетки, то есть отчищает поле. | * Нажатие пробела - "умерщвляет" все клетки, то есть отчищает поле. | ||
+ | |} | ||
+ | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
+ | | <strong>Домашнее задание 2</strong> | ||
+ | |- | ||
+ | | | ||
+ | Дедлайн: | ||
+ | * 1 часть, контест: 13.12 23:59 | ||
+ | * 2 часть, anytask: 20.11 23:59 | ||
+ | ---- | ||
+ | Максимальное число баллов за всё задание: 10 = 5 + 4 (1 часть, открытые и закрытые тесты) + 1 (пункт на выбор из 2 части). Можно получить допбаллы за выполнение других пунктов из второй части, максимум 3 допбалла. То есть можно получить 13/10. | ||
+ | ---- | ||
+ | [https://www.notion.so/802e574853dc420ba52a1dcf600b562f Условие и материалы], [https://contest.yandex.ru/contest/23118/problems/ Контест] | ||
+ | ---- | ||
+ | В Anytask необходимо сдать архив с файлами polynomial.py и другими, например, main.py для задания argparse, test_more.py для задания с тестированием. Для задания с Github необходимо приложить ссылку на репозиторий. | ||
+ | |||
+ | Помимо проверки верной работы кода, будет проверяться, что код читаемый и аккуратный (PEP8, осознанные имена переменных, комментарии), не содержит очевидно неоптимальных конструкций (помните о сложности алгоритма, у нас была лекция на эту тему), которых можно было избежать. За плохой код могут быть сняты баллы. | ||
+ | |} | ||
+ | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
+ | | <strong>Домашнее задание 3</strong> | ||
+ | |- | ||
+ | | | ||
+ | Дедлайн: 25.12 23:59 -> перенесен на 28.12 23:59 | ||
+ | ---- | ||
+ | Максимально число баллов за всё задание: 10, остальные 3 являются дополнительными. То есть можно получить 13/10. | ||
+ | ---- | ||
+ | [https://drive.google.com/file/d/1sM6sbWGBlZK2Z7YEKKKCjthZD1qAd1q8/view?usp=sharing Задание]. Чтобы открыть, необзодимо либо скачать и локально открыть файл, либо нажать кнопку сверху "Открыть в Google Colaboratory". | ||
+ | ---- | ||
+ | Необходимо отправить в Anytask либо решенный jupyter ноутбук в формате .ipynb, либо ссылку на Google Colab с правами на редактирование. | ||
|} | |} |
Текущая версия на 22:29, 28 декабря 2020
Содержание
О курсе
Курс читается для студентов факультета математики ВШЭ в 1-2 модулях.
Необходимые ссылки
- Чат курса в телеграме
- Канал курса в телеграме
- Anytask, инвайты
- Таблица оценок
- ПУД курса
- Форма контактов
- Документация Питон по темам
Семинаристы
Группа | Преподаватель | Почта | Расписание |
---|---|---|---|
1, 2 | Соня Дымченко | sadymchenko@edu.hse.ru | понедельник, четверг: 1я пара, ауд. 318 |
3, 4 | Митя Попов | mitya1510@ya.ru | вторник, пятница: 1я пара, ауд. 318 |
Формула оценки
Результирующая оценка по дисциплине рассчитывается по формуле:
Oитог (пилот) = 6 + 0.2 * OМидтерм + 0.2 * OЭкзамен
Oитог = 0.4 * Oсеминары + 0.6 * OДЗ
Семинары
Все материалы можно найти здесь.
№ | Тема | Ссылка на занятие | Контест | Дедлайн |
---|---|---|---|---|
1 | Вводные курса. Установка ПО. Введение в Python. | notebook nbviewer slides | contest 1 | 25.09 23:59 |
2 | Условные конструкции. While. | notebook nbviewer slides | contest 2 | 02.10 23:59 |
3 | Последовательности: списки, кортежи, строки. | notebook nbviewer slides | contest 3 | 03.10 23:59 |
4 | Цикл for. Функции range, enumerate, zip, map. Генераторы. | notebook nbviewer slides | contest 4 | 12.10 23:59 |
5 | Функции, рекурсия. | notebook nbviewer slides YouTube | contest 5 | 18.10 23:59 |
6 | Домашнее задание #1. | материалы и условие | contest | 06.11 23:00 |
7 | Строки, форматирование. | notebook nbviewer slides YouTube | contest 6 | 12.11 23:59 |
8 | Словари, множества. | notebook nbviewer slides | contest 7 | 18.11 23:59 |
9 | Алгоритмическая сложность, сортировки. | notebook nbviewer slides | contest 8 | 27.11 23:59 |
10 | Продвинутые темы 1. Исключения, тестирование, логирование. Модульное оформление. Аргпарс. Файлы. | notebook | - | - |
11.1 | Классы. | notebook | необязательный contest на 40 бонусных баллов | 3.12 23:59 |
11.2 | Домашнее задание #2. | ДЗ #2. Класс многочленов. Условие. | contest | 13.12 23:59 |
12 | Продвинутые темы 2. Итераторы. Itertools, collection, functools. Регулярные выражения. | Подборка | - | - |
13 | Библиотеки для научных вычислений: numpy, scipy. | - | - | - |
14 | Библиотека для работы с таблицами: pandas. Домашнее задание #3. | notebook | 25.12 23:59 | |
15 | Библиотеки для визуализаций: matplotlib, seaborn, plotly. | - | - | - |
Домашние задания
Правила сдачи заданий
Дедлайны по всем домашним заданиям являются жёсткими, то есть после срока работы не принимаются.
При обнаружении плагиата за домашнее задание ставится оценка ноль всем задействованным в списывании студентам, а также подаётся докладная записка в деканат.
Список заданий и описание
Домашнее задание 1 |
Дедлайн:
Максимальное число баллов за всё задание: 10 = 3 (контест) + 7 (визуализация). Можно получить допбаллы за придуманные студентом особенности визуализации. В Anytask необходимо сдать файл .py с кодом, который используя библиотеку pygame позволяет играть в игру "Жизнь". Код должен запускаться без ошибок, иначе за работу ставится оценка ноль. Часть кода сдается на автоматическую проверку в контест и оценивается отдельно. Помимо проверки верной работы кода, будет проверяться, что код читаемый и аккуратный (PEP8, осознанные имена переменных, комментарии), не содержит очевидных неоптимальных конструкций, которых можно было избежать, например тройные-четверные и более вложенные циклы. За плохой код могут быть сняты баллы. Интерактивная визуализация в себя включает:
|
Домашнее задание 2 |
Дедлайн:
Максимальное число баллов за всё задание: 10 = 5 + 4 (1 часть, открытые и закрытые тесты) + 1 (пункт на выбор из 2 части). Можно получить допбаллы за выполнение других пунктов из второй части, максимум 3 допбалла. То есть можно получить 13/10. В Anytask необходимо сдать архив с файлами polynomial.py и другими, например, main.py для задания argparse, test_more.py для задания с тестированием. Для задания с Github необходимо приложить ссылку на репозиторий. Помимо проверки верной работы кода, будет проверяться, что код читаемый и аккуратный (PEP8, осознанные имена переменных, комментарии), не содержит очевидно неоптимальных конструкций (помните о сложности алгоритма, у нас была лекция на эту тему), которых можно было избежать. За плохой код могут быть сняты баллы. |
Домашнее задание 3 |
Дедлайн: 25.12 23:59 -> перенесен на 28.12 23:59 Максимально число баллов за всё задание: 10, остальные 3 являются дополнительными. То есть можно получить 13/10. Задание. Чтобы открыть, необзодимо либо скачать и локально открыть файл, либо нажать кнопку сверху "Открыть в Google Colaboratory". Необходимо отправить в Anytask либо решенный jupyter ноутбук в формате .ipynb, либо ссылку на Google Colab с правами на редактирование. |