Практикум на ЭВМ (317)/2018 (осень)

Материал из MachineLearning.

Перейти к: навигация, поиск
  • Обязательный курс для студентов каф. ММП 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 и векторизация вычислений.

ноутбук про ошибки

ноутбук про numpy

контест 2 (в anytask)


28 сентября Занятие 3

Организация кода в Python: функции, модули, классы.

ООП в Python.

презентация

контест 3 (в anytask)


5 октября Занятие 4

Метрические методы классификации.

Обсуждение первого практического задания.

Введение в обработку изображений.

Визуализация в Python.

конспект (о задании)

презентация (изображения)

визуализация

1 практическое задание

[]

12 октября Занятие 5

Подготовка текстовых отчётов. Система TeX.

презентация

исходный код 4 лекции

19 октября Занятие 6

Обработка исключений. Мененджеры контекста. Тестирование.

Подготовка коротких выступлений.

презентация (тестирование)

презентация (выступления)

26 октября Занятие 7

Итераторы. Генераторы.

презентация

текст задания

контест 4 (в anytask)

2 ноября Занятие 8

Линейные модели классификации.

Обсуждение второго практического задания.

Обработка текстов (начало).

конспект (о задании)

презентация (тексты)

9 ноября Занятие 9

Обработка текстов (окончание).

Выступления студентов.

16 ноября Занятие 10

Выступления студентов.

23 ноября Занятие 11

Декораторы.

23 ноября Занятие 12

Композиции алгоритмов.

Обсуждение третьего практического задания.

Выступления студентов

Выступление должно сопровождаться презентацией, подготовленной в 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 баллов

Страницы прошлых лет

2017-2018 (осень) , 2017-2018 (весна)

2016-2017

2015-2016

2014-2015

2013-2014

2012-2013

2011-2012

Личные инструменты