Практикум на ЭВМ (317)/2018 (осень)
Материал из MachineLearning.
(→Выступления студентов) |
(→Выступления студентов) |
||
Строка 175: | Строка 175: | ||
| align="center"|4 || Еремеев Максим || Средства консервации объектов в Python || Зачем нужно. Json, Pickle и др. || | | align="center"|4 || Еремеев Максим || Средства консервации объектов в Python || Зачем нужно. Json, Pickle и др. || | ||
|- | |- | ||
- | | align="center"|5 || Королев Николай || Регулярные выражения || Зачем нужно. Синтаксис регулярных выражений. || | + | | align="center"|5 || [[Участник:KorolevN|Королев Николай]] || Регулярные выражения || Зачем нужно. Синтаксис регулярных выражений. || |
|- | |- | ||
| align="center"|6 || Лесников Богдан || Разложение Холецкого. || Что такое. Примеры использования (много и подробно). || | | align="center"|6 || Лесников Богдан || Разложение Холецкого. || Что такое. Примеры использования (много и подробно). || | ||
Строка 181: | Строка 181: | ||
| align="center"|7 || Нерус Даниил || Стандартные матричные разложения: LDL, LU и QR. || Что такое. Примеры использования. || | | align="center"|7 || Нерус Даниил || Стандартные матричные разложения: LDL, LU и QR. || Что такое. Примеры использования. || | ||
|- | |- | ||
- | | align="center"|8 || [[ | + | | align="center"|8 || [[Участник:LebedF|Лебедь Федор]] || Метод LMNN для обучения метрики. || Рассказать про алгоритм. || |
|- | |- | ||
| align="center"|9 || [[Участник:ChernyshevA|Чернышёв Александр]] || Расстояние Левенштейна. || Определение. Эффективный алгоритм подсчёта. || | | align="center"|9 || [[Участник:ChernyshevA|Чернышёв Александр]] || Расстояние Левенштейна. || Определение. Эффективный алгоритм подсчёта. || |
Версия 19:32, 16 ноября 2018
- Обязательный курс для студентов каф. ММП 3 курса, 5 семестр
- Зачёт с оценкой
- Преподаватели: Д.А. Кропотов, Артём Попов, Виктор Януш
- Занятия проходят в ауд. 524 по пятницам, начало в 16:20. Первое занятие 4 сентября.
Анонимные отзывы по курсу можно оставлять здесь: ссылка на гугл-форму
Репозиторий со всеми материалами: ссылка
Содержание |
Объявления
ВНИМАНИЕ! Занятия переехали в аудиторию 524!
Правила сдачи практикума
1. В рамках семестра предполагается три больших практических задания и пять домашних заданий. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 3 недели. Задания, сданные после этого срока, не принимаются на проверку.
3. За каждое домашнее задание можно получить от 15 до 25 баллов (в зависимости от задания). Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после этого срока, не принимаются на проверку.
4. Предусмотрены различные бонусные активности: бонусные задачи, за которые можно получить дополнительные баллы, возможность сделать выступление по заранее заданной теме.
5. Критерии итоговой оценки:
- отлично — 200 баллов, 3 практических задания зачтены
- хорошо — 150 баллов, 2 практических задания зачтены
- удовлетворительно — 100 баллов, 1 практическое задание зачтено
Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.
Материалы занятий
Дата | Номер | Тема | Материалы | Д/З |
---|---|---|---|---|
4 сентября | Занятие 1 |
Организационные вопросы. Введение в Python. |
контест 1 (в anytask) Прочитать о PEP8: | |
18 сентября | Занятие 2 |
Разбор 1 контеста. Библиотека numpy и векторизация вычислений. |
контест 2 (в anytask)
| |
28 сентября | Занятие 3 |
Организация кода в Python: функции, модули, классы. ООП в Python. |
контест 3 (в anytask)
| |
5 октября | Занятие 4 |
Обсуждение первого практического задания. Введение в обработку изображений. Визуализация в Python. |
1 практическое задание (в anytask) | |
12 октября | Занятие 5 |
Подготовка текстовых отчётов. Система TeX. | ||
19 октября | Занятие 6 |
Обработка исключений. Мененджеры контекста. Тестирование. Подготовка коротких выступлений. | ||
26 октября | Занятие 7 |
Итераторы. Генераторы. |
контест 4 (в anytask) | |
2 ноября | Занятие 8 |
Обсуждение второго практического задания. Обработка текстов (начало). |
Выступления студентов
Выступление должно сопровождаться презентацией, подготовленной в 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 и т.д.). | Определения. Примеры использования. Преимущества и недостатки каждого из алгоритмов. |
Требования к отчёту по практическим заданиям
Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX. Студенты, хорошо выполнившие отчёты по прошлым заданиям, получают возможность сдавать отчёты в формате HTML или PDF, подготовленные с помощью jupyter notebook.
Отчёт должен давать проверяющему ответы на следующие вопросы:
- К какому курсу относится задание?
- Какое задание выполнено?
- Кем выполнено задание?
- В чём заключалось задание?
- Что было сделано? Что не было сделано?
- Даны ли правильные ответы на все теоретические вопросы задания?
- Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?
- Выполнена ли творческая часть задания?
- Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
- Какой литературой пользовался студент?
Некоторые элементы хорошего отчёта:
- Объём отчёта: 5--20 страниц;
- Текст отчёта не повторяет полной формулировки задания;
- Структура отчёта соответствует пунктам задания;
- Используются векторные шрифты;
- Графики оформлены надлежащим образом;
- Шкала для графиков выбрана правильно;
- На разных графиках результаты для одинаковых методов отображаются одним и тем же цветом;
- Между расположением графиков и местами их упоминания в тексте относительно небольшое расстояние (на той же или на соседней странице);
- На страницах не должно быть много пустого места;
- В большинстве случаев графики/таблицы/псевдокоды алгоритмов не должны занимать большей части одной страницы отчёта;
- Все числа в тексте/таблицах указаны с необходимым числом значащих цифр;
- В большинстве случае в отчёте не должно быть никакого кода;
- Для всех экспериментов описан выбранный дизайн экспериментов, а также сделаны выводы из полученных результатов;
Требования к программному коду
- Код должен в целом соответствовать PEP8 (eng или rus )
- В частности, код должен проходить автоматическую проверку стиля ссылка. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, может дополнительно штрафоваться.
- Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению.
- Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
- Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов
- Код, содержащий плагиат, автоматически оценивается в 0 баллов