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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Правила сдачи практикума)
(Выступления студентов)
 
(47 промежуточных версий не показаны.)
Строка 2: Строка 2:
* Зачёт с оценкой
* Зачёт с оценкой
* Преподаватели: [[Участник:Kropotov|Д.А. Кропотов]], [[Участник:Arti_lehtonen| Артём Попов]], Виктор Януш
* Преподаватели: [[Участник:Kropotov|Д.А. Кропотов]], [[Участник:Arti_lehtonen| Артём Попов]], Виктор Януш
-
* Занятия проходят в ауд. 524 по вторникам, начало в 16:20. Первое занятие 4 сентября.
+
* Занятия проходят в ауд. 524 по пятницам, начало в 16:20. Первое занятие 4 сентября.
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]
Строка 9: Строка 9:
= Объявления =
= Объявления =
-
{{важно | ВНИМАНИЕ! 11 сентября занятия не будет! 18 сентября занятие по расписанию.}}
+
{{важно | ВНИМАНИЕ! Занятия переехали в аудиторию 524!}}
= Правила сдачи практикума =
= Правила сдачи практикума =
Строка 22: Строка 22:
5. Критерии итоговой оценки:
5. Критерии итоговой оценки:
-
отлично — 200 баллов, 3 практических задания зачтены
+
* отлично — 190 баллов, 3 практических задания зачтены
-
хорошо — 150 баллов, 2 практических задания зачтены
+
 
-
удовлетворительно — 100 баллов, 1 практическое задание зачтено
+
* хорошо — 145 баллов, 2 практических задания зачтены
 +
 
 +
* удовлетворительно — 95 баллов, 1 практическое задание зачтено
Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.
Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.
Строка 48: Строка 50:
[https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html перевод]
[https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html перевод]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|18 сентября
 +
|Занятие 2
 +
|
 +
Разбор 1 контеста.
 +
 +
Библиотека numpy и векторизация вычислений.
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/02_numpy/about_contest_1.ipynb ноутбук про ошибки]
 +
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/02_numpy/intro_to_numpy.ipynb ноутбук про numpy]
 +
|
 +
контест 2 (в anytask)
 +
 +
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|28 сентября
 +
|Занятие 3
 +
|
 +
Организация кода в Python: функции, модули, классы.
 +
 +
ООП в Python.
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/03_structure_code/functions_modules_classes.pdf презентация]
 +
 +
|
 +
контест 3 (в anytask)
 +
 +
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|5 октября
 +
|Занятие 4
 +
|
 +
Метрические методы классификации.
 +
 +
Обсуждение первого практического задания.
 +
 +
Введение в обработку изображений.
 +
 +
Визуализация в Python.
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/lecture.pdf конспект (о задании)]
 +
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/image_processing.pdf презентация (изображения)]
 +
 +
[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 практическое задание]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|12 октября
 +
|Занятие 5
 +
|
 +
Подготовка текстовых отчётов. Система TeX.
 +
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/05_tex_reports/tex_reports.pdf презентация]
 +
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/05_tex_reports/lecture_source.tex исходный код 4 лекции]
 +
|
 +
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|19 октября
 +
|Занятие 6
 +
|
 +
Обработка исключений. Мененджеры контекста. Тестирование.
 +
 +
Подготовка коротких выступлений.
 +
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/06_testing/testing.pdf презентация (тестирование)]
 +
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/06_testing/presentation.pdf презентация (выступления)]
 +
|
 +
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|26 октября
 +
|Занятие 7
 +
|
 +
Итераторы. Генераторы.
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/07_iterators/iterators.pdf презентация]
 +
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/07_iterators/task_5.pdf текст задания]
 +
 +
контест 4 (в anytask)
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|2 ноября
 +
|Занятие 8
 +
|
 +
Линейные модели классификации.
 +
 +
Обсуждение второго практического задания.
 +
 +
Обработка текстов (начало).
 +
|
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/08_linear_and_text/linear_model.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
 +
|
 +
Проверочная работа по теме «декораторы».
 +
 +
Выступления студентов.
 +
|
 +
 +
|
<!-- Конец занятия -->
<!-- Конец занятия -->
|}
|}
 +
 +
= Выступления студентов =
 +
 +
Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса. За выступление выставляется до 5 бонусных баллов.
 +
 +
Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему.
 +
 +
{|class="standard sortable"
 +
! № п/п !! ФИО студента !! Тема !! Замечания !! Материалы
 +
|-
 +
| align="center"|1 || Саенко Иван || Системы контроля версий || Зачем нужны? Кейсы использования. Какие бывают? ||
 +
[https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/SaenkoI_VersionControl.pdf презентация]
 +
|-
 +
| 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"|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"|7 || Нерус Даниил || Стандартные матричные разложения: LDL, LU и QR. || Что такое. Примеры использования. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Nerus_Daniil_Matrix.pdf презентация]
 +
|-
 +
| align="center"|8 || [[Участник:LebedF|Лебедь Федор]] || Метод LMNN для обучения метрики. || Рассказать про алгоритм. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/fedor_lebed_lmnn.pdf презентация]
 +
|-
 +
| align="center"|9 || [[Участник:ChernyshevA|Чернышёв Александр]] || Расстояние Левенштейна. || Определение. Эффективный алгоритм подсчёта. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Chernyshev_Levenshtein_distance.pdf презентация]
 +
|-
 +
| 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"|11 || Лукьянов Павел || Многопроцессорность в Python. Библиотека multiprocessing. || Что такое, как использовать. || [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/reports/Lukynov_multiprocessing.pdf презентация]
 +
|-
 +
| align="center"|12 || Петренко Дарья || Многопоточность в Python. Библиотека threading. || Что такое, как использовать. Что такое GIL? ||
 +
|}
= Требования к отчёту по практическим заданиям =
= Требования к отчёту по практическим заданиям =
Строка 66: Строка 268:
* Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
* Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
* Какой литературой пользовался студент?
* Какой литературой пользовался студент?
 +
 +
Некоторые элементы хорошего отчёта:
 +
* Объём отчёта: 5--20 страниц;
 +
* Текст отчёта не повторяет полной формулировки задания;
 +
* Структура отчёта соответствует пунктам задания;
 +
* Используются векторные шрифты;
 +
* Графики оформлены надлежащим образом;
 +
* Шкала для графиков выбрана правильно;
 +
* На разных графиках результаты для одинаковых методов отображаются одним и тем же цветом;
 +
* Между расположением графиков и местами их упоминания в тексте относительно небольшое расстояние (на той же или на соседней странице);
 +
* На страницах не должно быть много пустого места;
 +
* В большинстве случаев графики/таблицы/псевдокоды алгоритмов не должны занимать большей части одной страницы отчёта;
 +
* Все числа в тексте/таблицах указаны с необходимым числом значащих цифр;
 +
* В большинстве случае в отчёте не должно быть никакого кода;
 +
* Для всех экспериментов описан выбранный дизайн экспериментов, а также сделаны выводы из полученных результатов;
= Требования к программному коду =
= Требования к программному коду =

Текущая версия

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

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

ноутбук про 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

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

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

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

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

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

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

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

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

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

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

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

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

Декораторы.

презентация

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

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

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

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

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 баллов

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

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

2016-2017

2015-2016

2014-2015

2013-2014

2012-2013

2011-2012

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