Практикум на ЭВМ (317)/2017-2018
Материал из MachineLearning.
(→Материалы занятий (осень)) |
|||
(51 промежуточная версия не показана) | |||
Строка 8: | Строка 8: | ||
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму] | Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму] | ||
- | |||
Репозиторий со всеми материалами: [https://github.com/arti32lehtonen/mmp_prac_2017 ссылка на репозиторий] | Репозиторий со всеми материалами: [https://github.com/arti32lehtonen/mmp_prac_2017 ссылка на репозиторий] | ||
= Правила сдачи практикума в осеннем семестре 2017/2018 = | = Правила сдачи практикума в осеннем семестре 2017/2018 = | ||
- | 1. В рамках семестра предполагается три больших практических задания и четыре домашних задания. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя. | + | 1. В рамках семестра предполагается три больших практических задания и четыре домашних задания. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя. |
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. За каждый день просрочки назначается штраф 1 балл. Задание, сданное через две недели после срока сдачи, оценивается в 0 баллов. | 2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. За каждый день просрочки назначается штраф 1 балл. Задание, сданное через две недели после срока сдачи, оценивается в 0 баллов. | ||
Строка 18: | Строка 17: | ||
3. За каждое домашнее задание можно получить до 20-ти баллов. Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после срока сдачи, оцениваются в 0 баллов. | 3. За каждое домашнее задание можно получить до 20-ти баллов. Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после срока сдачи, оцениваются в 0 баллов. | ||
- | 4. | + | 4. Также в рамках семестра каждый студент делает небольшое выступление по теме курса. За выступление можно получить до 10-ти баллов. |
- | + | 5. Критерии итоговой оценки: | |
- | + | ||
- | + | ||
- | + | * отлично — 190 баллов, все практические и домашние задания зачтены | |
+ | * хорошо — 145 баллов, все практические задания зачтены | ||
+ | * удовлетворительно — 95 баллов, все практические задания зачтены | ||
+ | |||
+ | 6. Критерий <<зачтённости>> задания объявляется вместе с заданием. | ||
= Материалы занятий (осень) = | = Материалы занятий (осень) = | ||
Строка 47: | Строка 48: | ||
|Занятие 2 | |Занятие 2 | ||
| | | | ||
- | Структуры данных (продолжение). Библиотека Numpy. | + | Структуры данных (продолжение). |
+ | Библиотека Numpy. | ||
| | | | ||
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/02.%20Numpy/Python%20structures%20(additionally).ipynb jupyter-notebook(python)] | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/02.%20Numpy/Python%20structures%20(additionally).ipynb jupyter-notebook(python)] | ||
Строка 55: | Строка 57: | ||
| | | | ||
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task2.pdf домашнее задание 2] | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task2.pdf домашнее задание 2] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |19 сентября | ||
+ | |Занятие 3 | ||
+ | | | ||
+ | Функции, модули, классы. ООП в Python. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/03.%20Funtions%2C%20modules%2C%20classes/slides.pdf слайды] | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task3.pdf домашнее задание 3] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |26 сентября | ||
+ | |Занятие 4 | ||
+ | | | ||
+ | Разбор первого домашнего задания. | ||
+ | |||
+ | Тестирование. | ||
+ | Основы визуализации. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/04.%20Testing%20%26%20Visualization/slides_testing.pdf слайды(тестирование)] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/04.%20Testing%20%26%20Visualization/notebook_visualization.ipynb jupyter-notebook(matplotlib)] | ||
+ | | | ||
+ | |||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |3 октября | ||
+ | |Занятие 5 | ||
+ | | | ||
+ | Обсуждение первого практического задания. | ||
+ | |||
+ | Основы обработки изображений. | ||
+ | |||
+ | Разбор второго домашнего задания. | ||
+ | |||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/05.%20Image%20processing/slides.pdf слайды(изображения)] | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task1.pdf практическое задание 1] | ||
+ | |||
+ | [https://contest.yandex.ru/contest/5216/standings/ страничка соревнования] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |10 октября | ||
+ | |Занятие 6 | ||
+ | | | ||
+ | Подготовка текстовых отчётов. Система TeX. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/06.%20TeX/slides.pdf слайды]<br> | ||
+ | [http://www.ptep-online.com/ctan/llang2003.pdf Книга по системе LaTeX]<br> | ||
+ | [http://www.ccas.ru/voron/download/voron05latex.pdf LaTeX в примерах] | ||
+ | | | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |17 октября | ||
+ | |Занятие 7 | ||
+ | | | ||
+ | Итераторы. Генераторы. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/07.%20Iterators/slides.pdf слайды] | ||
+ | | | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |24 октября | ||
+ | |Занятие 8 | ||
+ | | | ||
+ | Декораторы. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/08.%20Decorators/slides.pdf слайды] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/08.%20Decorators/decorator_notebook.ipynb ноутбук с примерами] | ||
+ | |||
+ | [https://compscicenter.ru/courses/python/2015-autumn/classes/1387/ лекция CSC] | ||
+ | |||
+ | [https://pythonworld.ru/osnovy/dekoratory.html статья самоучителя] | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task4.pdf домашнее задание 4] | ||
+ | |||
+ | [https://contest.yandex.ru/contest/5622/enter/ страница соревнования] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |31 октября | ||
+ | |Занятие 9 | ||
+ | | | ||
+ | Разбор отчётов по практическому заданию. | ||
+ | |||
+ | Обработка текстов. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/09.%20Text%20processing/reports_analysis.pdf слайды (отчёты)] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/09.%20Text%20processing/slides_text.pdf слайды (тексты)] | ||
+ | | | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |7 ноября | ||
+ | |Занятие 10 | ||
+ | | | ||
+ | Подготовка коротких выступлений. | ||
+ | |||
+ | Пакет beamer для презентаций. Продвинутый TeX. | ||
+ | | | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides%20(short_talks).pdf слайды (выступление)] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides%20(tex).pdf слайды (тех)] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides_code.zip исходники слайдов] | ||
+ | | | ||
+ | Готовиться к выступлению | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task2/task2.pdf практическое задание 2] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |14 ноября | ||
+ | |Занятие 11 | ||
+ | | | ||
+ | Выступления студентов. | ||
+ | | | ||
+ | | | ||
+ | Готовиться к выступлению | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |21 ноября | ||
+ | |Занятие 12 | ||
+ | | | ||
+ | Выступления студентов. | ||
+ | | | ||
+ | | | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |28 ноября | ||
+ | |Занятие 13 | ||
+ | | | ||
+ | Обсуждение третьего практического задания. | ||
+ | |||
+ | Задачи условной оптимизации. | ||
+ | |||
+ | Метод субградиентного спуска. Метод PEGASOS. | ||
+ | | | ||
+ | | Готовиться к выступлению | ||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task3/task3.pdf практическое задание 3] | ||
+ | |||
+ | [https://github.com/arti32lehtonen/mmp_prac_2017/tree/master/Tasks/task3/prototypes прототипы] | ||
+ | <!-- Конец занятия --> | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |5 декабря | ||
+ | |Занятие 14 | ||
+ | | | ||
+ | Выступления студентов. | ||
+ | | | ||
+ | | | ||
<!-- Конец занятия --> | <!-- Конец занятия --> | ||
|} | |} | ||
+ | |||
+ | = Выступления студентов на семинаре = | ||
+ | |||
+ | Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса. | ||
+ | |||
+ | Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему. | ||
+ | |||
+ | {|class="standard sortable" | ||
+ | ! № п/п !! Тема !! ФИО студента !! Материалы | ||
+ | |- | ||
+ | | align="center"|1 || Система контроля версий Git || Солоткий Михаил || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Solotky_Git.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|2 || Основные отличия Python2 и Python3 || Шестакова Анна|| [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shestakova_Distinctions_between_Python2_and_3.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|3 || Средства консервации объектов в Python (json, pickle и другие) || Всеволод Полетаев || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Poletaev_Serialization.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|4 || Библиотека multiprocessing для распараллеливания и ускорения вычислений в Python || Цыпин Артем || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Tsypin_Multiprocessing.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|5 || Библиотека для автоматического дифференцирования и вычислений на GPU TensorFlow || Руднев Виктор || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Rudnev_Tensorflow.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|6 || Библиотека для автоматического дифференцирования и вычислений на GPU PyTorch || Яворская Мария || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Iavorskaia_pytorch.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|7 || Магические команды Jupyter Notebook (отладка, профилирование) || Филимонов Владислав || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Filimonov_Magic_Command.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|8 || Полезные расширения Jupyter Notebook (Jupyter notebook extensions) || Шамшиев Мамат || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shamshiev_JN_extensions.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|9 || Разметка markdown и создание текстовых отчётов в формате pdf с помощью Jupyter Notebook || Шаталов Николай || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shatalov_markdown.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|10 || Создание презентаций с помощью Jupyter Notebook || Пономарева Любовь || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Ponomareva_Slideshow_in_IPython.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|11 || Проксимальный градиентный метод для обучения моделей с L1-регуляризацией || Фоминская Галина || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/fominskaya_proximal.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|12 || Разложение Холецкого и его применения || Драгунов Никита || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Dragunov_Cholesky.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|13 || Стандартные матричные разложения: LDL, LU и QR. Примеры использования. || Скачков Николай || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Skachkov_decompositions.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|14 || Метод NCA для обучения метрики || Сомов Иван || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Somov_NCA.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|15 || Одноклассовый SVM и его применения || Медведев Алексей || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Medvedev_A_OSVM.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|16 || Система вёрстки XeTeX || Медведев Дмитрий || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Medvedev_D_xetex.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|17 || Библиотека для визуализации в Python (выбрать одну, не matplotlib) || Сагайдак Олег || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Sagaydak_seaborn.pdf слайды] | ||
+ | |- | ||
+ | | align="center"|18 || Интерпретатор языка Python PyPy || Дженаков Дмитрий || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Dzhenakov_PyPy.pdf слайды] | ||
+ | |- | ||
+ | |} | ||
= Требования к отчёту по большим практическим заданиям = | = Требования к отчёту по большим практическим заданиям = |
Текущая версия
- Обязательный курс для студентов каф. ММП 3 курса, 5-6 семестр
- Зачёт с оценкой
- Преподаватели: Д.А. Кропотов, Артём Попов и другие
- Занятия проходят в ауд. 524 по вторникам, начало в 16:20
Анонимные отзывы по курсу можно оставлять здесь: ссылка на гугл-форму
Репозиторий со всеми материалами: ссылка на репозиторий
Правила сдачи практикума в осеннем семестре 2017/2018
1. В рамках семестра предполагается три больших практических задания и четыре домашних задания. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. За каждый день просрочки назначается штраф 1 балл. Задание, сданное через две недели после срока сдачи, оценивается в 0 баллов.
3. За каждое домашнее задание можно получить до 20-ти баллов. Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после срока сдачи, оцениваются в 0 баллов.
4. Также в рамках семестра каждый студент делает небольшое выступление по теме курса. За выступление можно получить до 10-ти баллов.
5. Критерии итоговой оценки:
- отлично — 190 баллов, все практические и домашние задания зачтены
- хорошо — 145 баллов, все практические задания зачтены
- удовлетворительно — 95 баллов, все практические задания зачтены
6. Критерий <<зачтённости>> задания объявляется вместе с заданием.
Материалы занятий (осень)
Дата | Номер | Тема | Материалы | Д/З |
---|---|---|---|---|
5 сентября | Занятие 1 |
Организационные вопросы. Введение в Python. |
Ознакомиться c PEP8 | |
12 сентября | Занятие 2 |
Структуры данных (продолжение). Библиотека Numpy. | ||
19 сентября | Занятие 3 |
Функции, модули, классы. ООП в Python. | ||
26 сентября | Занятие 4 |
Разбор первого домашнего задания. Тестирование. Основы визуализации. | ||
3 октября | Занятие 5 |
Обсуждение первого практического задания. Основы обработки изображений. Разбор второго домашнего задания. | ||
10 октября | Занятие 6 |
Подготовка текстовых отчётов. Система TeX. | ||
17 октября | Занятие 7 |
Итераторы. Генераторы. | ||
24 октября | Занятие 8 |
Декораторы. | ||
31 октября | Занятие 9 |
Разбор отчётов по практическому заданию. Обработка текстов. | ||
7 ноября | Занятие 10 |
Подготовка коротких выступлений. Пакет beamer для презентаций. Продвинутый TeX. |
Готовиться к выступлению | |
14 ноября | Занятие 11 |
Выступления студентов. |
Готовиться к выступлению | |
21 ноября | Занятие 12 |
Выступления студентов. | ||
28 ноября | Занятие 13 |
Обсуждение третьего практического задания. Задачи условной оптимизации. Метод субградиентного спуска. Метод PEGASOS. | Готовиться к выступлению | |
5 декабря | Занятие 14 |
Выступления студентов. |
Выступления студентов на семинаре
Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса.
Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему.
№ п/п | Тема | ФИО студента | Материалы |
---|---|---|---|
1 | Система контроля версий Git | Солоткий Михаил | слайды |
2 | Основные отличия Python2 и Python3 | Шестакова Анна | слайды |
3 | Средства консервации объектов в Python (json, pickle и другие) | Всеволод Полетаев | слайды |
4 | Библиотека multiprocessing для распараллеливания и ускорения вычислений в Python | Цыпин Артем | слайды |
5 | Библиотека для автоматического дифференцирования и вычислений на GPU TensorFlow | Руднев Виктор | слайды |
6 | Библиотека для автоматического дифференцирования и вычислений на GPU PyTorch | Яворская Мария | слайды |
7 | Магические команды Jupyter Notebook (отладка, профилирование) | Филимонов Владислав | слайды |
8 | Полезные расширения Jupyter Notebook (Jupyter notebook extensions) | Шамшиев Мамат | слайды |
9 | Разметка markdown и создание текстовых отчётов в формате pdf с помощью Jupyter Notebook | Шаталов Николай | слайды |
10 | Создание презентаций с помощью Jupyter Notebook | Пономарева Любовь | слайды |
11 | Проксимальный градиентный метод для обучения моделей с L1-регуляризацией | Фоминская Галина | слайды |
12 | Разложение Холецкого и его применения | Драгунов Никита | слайды |
13 | Стандартные матричные разложения: LDL, LU и QR. Примеры использования. | Скачков Николай | слайды |
14 | Метод NCA для обучения метрики | Сомов Иван | слайды |
15 | Одноклассовый SVM и его применения | Медведев Алексей | слайды |
16 | Система вёрстки XeTeX | Медведев Дмитрий | слайды |
17 | Библиотека для визуализации в Python (выбрать одну, не matplotlib) | Сагайдак Олег | слайды |
18 | Интерпретатор языка Python PyPy | Дженаков Дмитрий | слайды |
Требования к отчёту по большим практическим заданиям
Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX.
Отчёт должен давать проверяющему ответы на следующие вопросы:
- К какому курсу относится задание?
- Какое задание выполнено?
- Кем выполнено задание?
- В чём заключалось задание?
- Что было сделано? Что не было сделано?
- Даны ли правильные ответы на все теоретические вопросы задания?
- Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?
- Выполнена ли творческая часть задания?
- Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
- Какой литературой пользовался студент?
Требования к программному коду
- Код должен в целом соответствовать PEP8 (eng или rus )
- В частности, код должен проходить автоматическую проверку стиля ссылка. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, автоматически оценивается в 0 баллов.
- Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению
- Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
- Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов
- Код, содержащий плагиат, автоматически оценивается в 0 баллов