Практикум на ЭВМ (317)/2018 (осень)
Материал из MachineLearning.
(→Выступления студентов) |
|||
(16 промежуточных версий не показаны.) | |||
Строка 22: | Строка 22: | ||
5. Критерии итоговой оценки: | 5. Критерии итоговой оценки: | ||
- | * отлично — | + | * отлично — 190 баллов, 3 практических задания зачтены |
- | * хорошо — | + | * хорошо — 145 баллов, 2 практических задания зачтены |
- | * удовлетворительно — | + | * удовлетворительно — 95 баллов, 1 практическое задание зачтено |
Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы. | Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы. | ||
Строка 86: | Строка 86: | ||
|Занятие 4 | |Занятие 4 | ||
| | | | ||
+ | Метрические методы классификации. | ||
+ | |||
Обсуждение первого практического задания. | Обсуждение первого практического задания. | ||
Строка 98: | Строка 100: | ||
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/visualization.ipynb визуализация] | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/visualization.ipynb визуализация] | ||
| | | | ||
- | |||
+ | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/tree/master/Tasks/task1 1 практическое задание] | ||
<!-- Конец занятия --> | <!-- Конец занятия --> | ||
|- <!-- Новое занятие --> | |- <!-- Новое занятие --> | ||
Строка 146: | Строка 148: | ||
|Занятие 8 | |Занятие 8 | ||
| | | | ||
+ | Линейные модели классификации. | ||
+ | |||
Обсуждение второго практического задания. | Обсуждение второго практического задания. | ||
Строка 154: | Строка 158: | ||
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/08_linear_and_text/main.pdf презентация (тексты)] | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/08_linear_and_text/main.pdf презентация (тексты)] | ||
| | | | ||
+ | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/tree/master/Tasks/task2 2 практическое задание] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |9 ноября | ||
+ | |Занятие 9 | ||
+ | | | ||
+ | Обработка текстов (окончание). | ||
+ | |||
+ | Выступления студентов. | ||
+ | | | ||
+ | |||
+ | | | ||
+ | |||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |16 ноября | ||
+ | |Занятие 10 | ||
+ | | | ||
+ | Выступления студентов. | ||
+ | | | ||
+ | |||
+ | | | ||
+ | |||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |23 ноября | ||
+ | |Занятие 11 | ||
+ | | | ||
+ | Декораторы. | ||
+ | | | ||
+ | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/10_decorators/decorators.pdf презентация] | ||
+ | | | ||
+ | |||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |23 ноября | ||
+ | |Занятие 12 | ||
+ | | | ||
+ | Композиции алгоритмов. | ||
+ | |||
+ | Обсуждение третьего практического задания. | ||
+ | | | ||
+ | |||
+ | | | ||
+ | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/tree/master/Tasks/task3 3 практическое задание] | ||
+ | <!-- Конец занятия --> | ||
+ | |- <!-- Новое занятие --> | ||
+ | |30 ноября | ||
+ | |Занятие 13 | ||
+ | | | ||
+ | Проверочная работа по теме «декораторы». | ||
+ | |||
+ | Выступления студентов. | ||
+ | | | ||
+ | |||
+ | | | ||
<!-- Конец занятия --> | <!-- Конец занятия --> | ||
|} | |} | ||
Строка 168: | Строка 228: | ||
|- | |- | ||
| align="center"|1 || Саенко Иван || Системы контроля версий || Зачем нужны? Кейсы использования. Какие бывают? || | | align="center"|1 || Саенко Иван || Системы контроля версий || Зачем нужны? Кейсы использования. Какие бывают? || | ||
+ | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/SaenkoI_VersionControl.pdf презентация] | ||
|- | |- | ||
- | | align="center"|2 || Кормаков Георгий || Система контроля версий Git|| Преимущества. Основы работы с Git. || | + | | align="center"|2 || Кормаков Георгий || Система контроля версий Git|| Преимущества. Основы работы с Git. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Georgy_Kormakov_GIT.pdf презентация] |
|- | |- | ||
| align="center"|3 || Попов Дмитрий || Пакеты в Python || Зачем нужны, что это. Назначение __init__.py. Относительные импорты. || | | align="center"|3 || Попов Дмитрий || Пакеты в Python || Зачем нужны, что это. Назначение __init__.py. Относительные импорты. || | ||
|- | |- | ||
- | | align="center"|4 || Еремеев Максим || Средства консервации объектов в Python || Зачем нужно. Json, Pickle и др. || | + | | align="center"|4 || Еремеев Максим || Средства консервации объектов в Python || Зачем нужно. Json, Pickle и др. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Max_Eremeev_Serialization.pdf презентация] |
+ | |- | ||
+ | | align="center"|5 || [[Участник:KorolevN|Королев Николай]] || Регулярные выражения || Зачем нужно. Синтаксис регулярных выражений. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/KorolevN_regex.pdf презентация] | ||
+ | |- | ||
+ | | align="center"|6 || Лесников Богдан || Разложение Холецкого. || Что такое. Примеры использования (много и подробно). || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/lesnikov_cholesky_decomposition.pdf презентация] | ||
|- | |- | ||
- | | align="center"| | + | | align="center"|7 || Нерус Даниил || Стандартные матричные разложения: LDL, LU и QR. || Что такое. Примеры использования. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Nerus_Daniil_Matrix.pdf презентация] |
|- | |- | ||
- | | align="center"| | + | | align="center"|8 || [[Участник:LebedF|Лебедь Федор]] || Метод LMNN для обучения метрики. || Рассказать про алгоритм. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/fedor_lebed_lmnn.pdf презентация] |
|- | |- | ||
- | | align="center"| | + | | align="center"|9 || [[Участник:ChernyshevA|Чернышёв Александр]] || Расстояние Левенштейна. || Определение. Эффективный алгоритм подсчёта. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Chernyshev_Levenshtein_distance.pdf презентация] |
|- | |- | ||
- | | align="center"| | + | | align="center"|10 || Устюжанин Александр || Алгоритмы хранения разреженных матриц (COO, LIL, CSR и т.д.). || Определения. Примеры использования. Преимущества и недостатки каждого из алгоритмов. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Alex_Ustyuzhanin_Sparse_Matrices.pdf презентация] |
|- | |- | ||
- | | align="center"| | + | | align="center"|11 || Лукьянов Павел || Многопроцессорность в Python. Библиотека multiprocessing. || Что такое, как использовать. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Lukynov_multiprocessing.pdf презентация] |
|- | |- | ||
- | | align="center"| | + | | align="center"|12 || Петренко Дарья || Многопоточность в Python. Библиотека threading. || Что такое, как использовать. Что такое GIL? || |
|} | |} | ||
Текущая версия
- Обязательный курс для студентов каф. ММП 3 курса, 5 семестр
- Зачёт с оценкой
- Преподаватели: Д.А. Кропотов, Артём Попов, Виктор Януш
- Занятия проходят в ауд. 524 по пятницам, начало в 16:20. Первое занятие 4 сентября.
Анонимные отзывы по курсу можно оставлять здесь: ссылка на гугл-форму
Репозиторий со всеми материалами: ссылка
Содержание |
Объявления
ВНИМАНИЕ! Занятия переехали в аудиторию 524!
Правила сдачи практикума
1. В рамках семестра предполагается три больших практических задания и пять домашних заданий. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 3 недели. Задания, сданные после этого срока, не принимаются на проверку.
3. За каждое домашнее задание можно получить от 15 до 25 баллов (в зависимости от задания). Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после этого срока, не принимаются на проверку.
4. Предусмотрены различные бонусные активности: бонусные задачи, за которые можно получить дополнительные баллы, возможность сделать выступление по заранее заданной теме.
5. Критерии итоговой оценки:
- отлично — 190 баллов, 3 практических задания зачтены
- хорошо — 145 баллов, 2 практических задания зачтены
- удовлетворительно — 95 баллов, 1 практическое задание зачтено
Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.
Материалы занятий
Дата | Номер | Тема | Материалы | Д/З |
---|---|---|---|---|
4 сентября | Занятие 1 |
Организационные вопросы. Введение в Python. |
контест 1 (в anytask) Прочитать о PEP8: | |
18 сентября | Занятие 2 |
Разбор 1 контеста. Библиотека numpy и векторизация вычислений. |
контест 2 (в anytask)
| |
28 сентября | Занятие 3 |
Организация кода в Python: функции, модули, классы. ООП в Python. |
контест 3 (в anytask)
| |
5 октября | Занятие 4 |
Метрические методы классификации. Обсуждение первого практического задания. Введение в обработку изображений. Визуализация в Python. | ||
12 октября | Занятие 5 |
Подготовка текстовых отчётов. Система TeX. | ||
19 октября | Занятие 6 |
Обработка исключений. Мененджеры контекста. Тестирование. Подготовка коротких выступлений. | ||
26 октября | Занятие 7 |
Итераторы. Генераторы. |
контест 4 (в anytask) | |
2 ноября | Занятие 8 |
Линейные модели классификации. Обсуждение второго практического задания. Обработка текстов (начало). | ||
9 ноября | Занятие 9 |
Обработка текстов (окончание). Выступления студентов. | ||
16 ноября | Занятие 10 |
Выступления студентов. | ||
23 ноября | Занятие 11 |
Декораторы. | ||
23 ноября | Занятие 12 |
Композиции алгоритмов. Обсуждение третьего практического задания. | ||
30 ноября | Занятие 13 |
Проверочная работа по теме «декораторы». Выступления студентов. |
Выступления студентов
Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса. За выступление выставляется до 5 бонусных баллов.
Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему.
№ п/п | ФИО студента | Тема | Замечания | Материалы |
---|---|---|---|---|
1 | Саенко Иван | Системы контроля версий | Зачем нужны? Кейсы использования. Какие бывают? | |
2 | Кормаков Георгий | Система контроля версий Git | Преимущества. Основы работы с Git. | презентация |
3 | Попов Дмитрий | Пакеты в Python | Зачем нужны, что это. Назначение __init__.py. Относительные импорты. | |
4 | Еремеев Максим | Средства консервации объектов в Python | Зачем нужно. Json, Pickle и др. | презентация |
5 | Королев Николай | Регулярные выражения | Зачем нужно. Синтаксис регулярных выражений. | презентация |
6 | Лесников Богдан | Разложение Холецкого. | Что такое. Примеры использования (много и подробно). | презентация |
7 | Нерус Даниил | Стандартные матричные разложения: LDL, LU и QR. | Что такое. Примеры использования. | презентация |
8 | Лебедь Федор | Метод LMNN для обучения метрики. | Рассказать про алгоритм. | презентация |
9 | Чернышёв Александр | Расстояние Левенштейна. | Определение. Эффективный алгоритм подсчёта. | презентация |
10 | Устюжанин Александр | Алгоритмы хранения разреженных матриц (COO, LIL, CSR и т.д.). | Определения. Примеры использования. Преимущества и недостатки каждого из алгоритмов. | презентация |
11 | Лукьянов Павел | Многопроцессорность в Python. Библиотека multiprocessing. | Что такое, как использовать. | презентация |
12 | Петренко Дарья | Многопоточность в Python. Библиотека threading. | Что такое, как использовать. Что такое GIL? |
Требования к отчёту по практическим заданиям
Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX. Студенты, хорошо выполнившие отчёты по прошлым заданиям, получают возможность сдавать отчёты в формате HTML или PDF, подготовленные с помощью jupyter notebook.
Отчёт должен давать проверяющему ответы на следующие вопросы:
- К какому курсу относится задание?
- Какое задание выполнено?
- Кем выполнено задание?
- В чём заключалось задание?
- Что было сделано? Что не было сделано?
- Даны ли правильные ответы на все теоретические вопросы задания?
- Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?
- Выполнена ли творческая часть задания?
- Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
- Какой литературой пользовался студент?
Некоторые элементы хорошего отчёта:
- Объём отчёта: 5--20 страниц;
- Текст отчёта не повторяет полной формулировки задания;
- Структура отчёта соответствует пунктам задания;
- Используются векторные шрифты;
- Графики оформлены надлежащим образом;
- Шкала для графиков выбрана правильно;
- На разных графиках результаты для одинаковых методов отображаются одним и тем же цветом;
- Между расположением графиков и местами их упоминания в тексте относительно небольшое расстояние (на той же или на соседней странице);
- На страницах не должно быть много пустого места;
- В большинстве случаев графики/таблицы/псевдокоды алгоритмов не должны занимать большей части одной страницы отчёта;
- Все числа в тексте/таблицах указаны с необходимым числом значащих цифр;
- В большинстве случае в отчёте не должно быть никакого кода;
- Для всех экспериментов описан выбранный дизайн экспериментов, а также сделаны выводы из полученных результатов;
Требования к программному коду
- Код должен в целом соответствовать PEP8 (eng или rus )
- В частности, код должен проходить автоматическую проверку стиля ссылка. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, может дополнительно штрафоваться.
- Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению.
- Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
- Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов
- Код, содержащий плагиат, автоматически оценивается в 0 баллов