Практикум на ЭВМ (317)/2019 (осень)
Материал из MachineLearning.
 (Новая: * Обязательный курс для студентов каф. ММП 3 курса, 5 семестр * Зачёт с оценкой * Преподаватели:   [[Учас...)  | 
				 (→Материалы занятий)  | 
			||
| (19 промежуточных версий не показаны.) | |||
| Строка 2: | Строка 2: | ||
* Зачёт с оценкой  | * Зачёт с оценкой  | ||
* Преподаватели:   [[Участник:Kropotov|Д.А. Кропотов]], [[Участник:Arti_lehtonen| Артём Попов]], Евгений Бобров, Максим Кодрян, Максим Находнов, Чернышёв Александр  | * Преподаватели:   [[Участник:Kropotov|Д.А. Кропотов]], [[Участник:Arti_lehtonen| Артём Попов]], Евгений Бобров, Максим Кодрян, Максим Находнов, Чернышёв Александр  | ||
| - | * Занятия проходят в ауд.   | + | * Занятия проходят в ауд. 506 по вторникам, начало в 16:20. Первое занятие 3 сентября.  | 
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]  | Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]  | ||
Репозиторий со всеми материалами: [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019 ссылка]  | Репозиторий со всеми материалами: [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019 ссылка]  | ||
| + | |||
| + | Для доступа к системе сдачи заданий anytask, свяжитесь с одним из преподавателей.  | ||
= Объявления =  | = Объявления =  | ||
| Строка 12: | Строка 14: | ||
= Правила сдачи практикума =  | = Правила сдачи практикума =  | ||
| - | 1. В рамках семестра предполагается три больших практических задания и   | + | 1. В рамках семестра предполагается три больших практических задания и шесть домашних заданий. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.  | 
| - | 2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания —   | + | 2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. Задания, сданные после этого срока, принимаются со штрафом. За каждый день штраф — 1 балл. Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.  | 
3. За каждое домашнее задание можно получить от 15 до 20 баллов (в зависимости от задания). Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя.  Задания, сданные после этого срока, не принимаются на проверку.  | 3. За каждое домашнее задание можно получить от 15 до 20 баллов (в зависимости от задания). Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя.  Задания, сданные после этого срока, не принимаются на проверку.  | ||
| Строка 20: | Строка 22: | ||
4. Предусмотрены различные бонусные активности: бонусные задачи, за которые можно получить дополнительные баллы.  | 4. Предусмотрены различные бонусные активности: бонусные задачи, за которые можно получить дополнительные баллы.  | ||
| - | 5.   | + | 5. Критерии итоговой оценки:  | 
| + | |||
| + | * отлично — 170 баллов, 3 практических задания зачтены  | ||
| + | |||
| + | * хорошо — 125 баллов, 2 практических задания зачтены  | ||
| + | |||
| + | * удовлетворительно — 85 баллов, 1 практическое задание зачтено  | ||
| + | |||
| + | = Материалы занятий =  | ||
| + | {|class = "standard"  | ||
| + | ! Дата !! Номер !! Тема !! Материалы !! Д/З  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |3 сентября  | ||
| + | |Занятие 1  | ||
| + | |  | ||
| + | Организационные вопросы. Введение в Python.  | ||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/01_introduction/intro_slides.pdf презентация]  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/01_introduction/intro_notebook.ipynb ноутбук (python)]  | ||
| + | |  | ||
| + | |||
| + | Ознакомиться с PEP8:  | ||
| + | |||
| + | [https://www.python.org/dev/peps/pep-0008/ оригинал]  | ||
| + | [https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html перевод]  | ||
| + | |||
| + | Контест 1: Python (в anytask)  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |10 сентября  | ||
| + | |Занятие 2  | ||
| + | |  | ||
| + | Библиотека numpy. Векторизация вычислений.  | ||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/02_numpy/intro_to_numpy_empty.ipynb ноутбук (numpy)]  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/02_numpy/intro_to_numpy.ipynb ноутбук (numpy), заполненный]  | ||
| + | |||
| + | Важные статьи документации numpy:  | ||
| + | |||
| + | * [https://numpy.org/devdocs/user/theory.broadcasting.html#array-broadcasting-in-numpy broadcasting]  | ||
| + | * [https://numpy.org/devdocs/reference/arrays.indexing.html#arrays-indexing advanced indexing]  | ||
| + | |||
| + | |  | ||
| + | Контест 2: Numpy (в anytask)  | ||
| + | <!-- Конец занятия -->  | ||
| + | |||
| + | |- <!-- Новое занятие -->  | ||
| + | |17 сентября  | ||
| + | |Занятие 3  | ||
| + | |  | ||
| + | Организация кода в Python.  | ||
| + | |||
| + | Функции, модули, классы.  | ||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/03_python/python_functions_modules_classes.pdf презентация]  | ||
| + | |||
| + | |  | ||
| + | Контест 3: Классы (в anytask)  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |24 сентября  | ||
| + | |Занятие 4  | ||
| + | |  | ||
| + | Метрические методы классификации.  | ||
| + | |||
| + | Обсуждение первого практического задания.  | ||
| + | |||
| + | Введение в обработку изображений.  | ||
| + | |||
| + | Визуализация в Python.  | ||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/lecture.pdf конспект (о задании, 2018)]  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/image_processing.pdf презентация (изображения, 2018)]  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/04_knn_images/visualization.ipynb визуализация (2018)]  | ||
| + | |  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/tree/master/Tasks/task1 1 практическое задание]  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |01 октября  | ||
| + | |Занятие 5  | ||
| + | |  | ||
| + | Подготовка текстовых отчётов. Система TeX.  | ||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/05_tex_reports/tex_reports.pdf презентация (2018)]<br>  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/05_tex_reports/lecture_source.tex пример текста в TeXе (2018)]  | ||
| + | |  | ||
| + | |||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |8 октября  | ||
| + | |Занятие 6  | ||
| + | |  | ||
| + | Обработка исключений. Мененджеры контекста. Тестирование.  | ||
| + | |||
| + | Подготовка коротких выступлений.  | ||
| + | |||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/06_testing/testing.pdf презентация (тестирование, 2018)]  | ||
| + | |||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2018/blob/master/06_testing/presentation.pdf презентация (выступления, 2018)]  | ||
| + | |  | ||
| + | |||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |15 октября  | ||
| + | |Занятие 7  | ||
| + | |  | ||
| + | Итераторы и генераторы.  | ||
| + | |||
| + | |  | ||
| + | [https://github.com/mmp-practicum-team/mmp_practicum_fall_2019/blob/master/07_iterators/Prac_Presentation7.pdf презентация]  | ||
| + | |  | ||
| + | |||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |22 октября  | ||
| + | |Занятие 8  | ||
| + | | Декораторы.  | ||
| + | |  | ||
| + | |  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |29 октября  | ||
| + | |Занятие 9  | ||
| + | | Обсуждение второго практического задания (LogReg).  | ||
| + | Введение в обработку текстов.  | ||
| + | |  | ||
| + | |  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |5 ноября  | ||
| + | |Занятие 10  | ||
| + | | ML-инфраструктура (часть 1)  | ||
| + | |  | ||
| + | |  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |19 ноября  | ||
| + | |Занятие 11  | ||
| + | | ML-инфраструктура (часть 2)  | ||
| + | |  | ||
| + | |  | ||
| + | <!-- Конец занятия -->  | ||
| + | |- <!-- Новое занятие -->  | ||
| + | |26 ноября  | ||
| + | |Занятие 12  | ||
| + | | Обсуждение третьего практического задания.  | ||
| + | |  | ||
| + | |  | ||
| + | <!-- Конец занятия -->  | ||
| + | |}  | ||
| + | |||
| + | = Требования к отчёту по практическим заданиям =  | ||
| + | |||
| + | Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX. Студенты, хорошо выполнившие отчёты по прошлым заданиям, получают возможность сдавать отчёты в формате HTML или PDF, подготовленные с помощью jupyter notebook.   | ||
| + | |||
| + | Отчёт должен давать проверяющему ответы на следующие вопросы:  | ||
| + | * К какому курсу относится задание?  | ||
| + | * Какое задание выполнено?   | ||
| + | * Кем выполнено задание?  | ||
| + | * В чём заключалось задание?  | ||
| + | * Что было сделано? Что не было сделано?  | ||
| + | * Даны ли правильные ответы на все теоретические вопросы задания?  | ||
| + | * Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?  | ||
| + | * Выполнена ли творческая часть задания?  | ||
| + | * Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?  | ||
| + | * Какой литературой пользовался студент?  | ||
| + | |||
| + | Некоторые элементы хорошего отчёта:  | ||
| + | * Объём отчёта: 5--20 страниц;  | ||
| + | * Текст отчёта не повторяет полной формулировки задания;  | ||
| + | * Структура отчёта соответствует пунктам задания;  | ||
| + | * Используются векторные шрифты;  | ||
| + | * Графики оформлены надлежащим образом;  | ||
| + | * Шкала для графиков выбрана правильно;  | ||
| + | * На разных графиках результаты для одинаковых методов отображаются одним и тем же цветом;  | ||
| + | * Между расположением графиков и местами их упоминания в тексте относительно небольшое расстояние (на той же или на соседней странице);  | ||
| + | * На страницах не должно быть много пустого места;  | ||
| + | * В большинстве случаев графики/таблицы/псевдокоды алгоритмов не должны занимать большей части одной страницы отчёта;  | ||
| + | * Все числа в тексте/таблицах указаны с необходимым числом значащих цифр;  | ||
| + | * В большинстве случае в отчёте не должно быть никакого кода;  | ||
| + | * Для всех экспериментов описан выбранный дизайн экспериментов, а также сделаны выводы из полученных результатов;  | ||
| + | |||
| + | = Требования к программному коду =  | ||
| + | * Код должен в целом соответствовать PEP8 ([https://www.python.org/dev/peps/pep-0008/ eng] или [http://pep8.ru/doc/pep8/ rus] )  | ||
| + | * В частности, код должен проходить автоматическую проверку стиля [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/mmp_pep8.py ссылка]. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, может дополнительно штрафоваться.   | ||
| + | * Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению.  | ||
| + | * Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов  | ||
| + | * Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов  | ||
| + | * Код, содержащий плагиат, автоматически оценивается в 0 баллов  | ||
| + | |||
| + | = Страницы прошлых лет =  | ||
| + | [[ Практикум на ЭВМ (317)/2018 (осень) | 2018-2019 (осень) ]], [[Практикум на ЭВМ (317)/2019 (весна) | 2018-2019 (весна) ]]  | ||
| + | |||
| + | [[ Практикум на ЭВМ (317)/2017-2018 | 2017-2018 (осень) ]], [[Практикум на ЭВМ (317)/2018 (весна) | 2017-2018 (весна) ]]  | ||
| + | |||
| + | [[ Практикум на ЭВМ (317)/2016-2017 | 2016-2017 ]]  | ||
| + | |||
| + | [[ Практикум на ЭВМ (317)/2015-2016 | 2015-2016 ]]  | ||
| + | |||
| + | [[ Практикум на ЭВМ (317)/2014-2015 | 2014-2015 ]]  | ||
| + | |||
| + | [[ Практикум на ЭВМ (317)/2013-2014 | 2013-2014 ]]  | ||
| - | + | [[ Практикум на ЭВМ (317)/2012-2013 | 2012-2013 ]]  | |
| - | + | [[ Практикум на ЭВМ (317)/2011-2012 | 2011-2012 ]]  | |
| - | + | [[Категория:Кафедра Математические методы прогнозирования ВМиК МГУ]]  | |
| + | [[Категория:Учебные практикумы]]  | ||
Текущая версия
- Обязательный курс для студентов каф. ММП 3 курса, 5 семестр
 - Зачёт с оценкой
 - Преподаватели: Д.А. Кропотов, Артём Попов, Евгений Бобров, Максим Кодрян, Максим Находнов, Чернышёв Александр
 - Занятия проходят в ауд. 506 по вторникам, начало в 16:20. Первое занятие 3 сентября.
 
Анонимные отзывы по курсу можно оставлять здесь: ссылка на гугл-форму
Репозиторий со всеми материалами: ссылка
Для доступа к системе сдачи заданий anytask, свяжитесь с одним из преподавателей.
Содержание | 
Объявления
Пока нет.
Правила сдачи практикума
1. В рамках семестра предполагается три больших практических задания и шесть домашних заданий. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. Задания, сданные после этого срока, принимаются со штрафом. За каждый день штраф — 1 балл. Практическое задание считается зачтённым, если по нему выполнены и засчитаны все три этапа работы.
3. За каждое домашнее задание можно получить от 15 до 20 баллов (в зависимости от задания). Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после этого срока, не принимаются на проверку.
4. Предусмотрены различные бонусные активности: бонусные задачи, за которые можно получить дополнительные баллы.
5. Критерии итоговой оценки:
- отлично — 170 баллов, 3 практических задания зачтены
 
- хорошо — 125 баллов, 2 практических задания зачтены
 
- удовлетворительно — 85 баллов, 1 практическое задание зачтено
 
Материалы занятий
| Дата | Номер | Тема | Материалы | Д/З | 
|---|---|---|---|---|
| 3 сентября | Занятие 1 | 
 Организационные вопросы. Введение в Python.  | 
 Ознакомиться с PEP8: Контест 1: Python (в anytask)  | |
| 10 сентября | Занятие 2 | 
 Библиотека numpy. Векторизация вычислений.  | 
 Важные статьи документации numpy:  | 
 Контест 2: Numpy (в anytask)  | 
| 17 сентября | Занятие 3 | 
 Организация кода в Python. Функции, модули, классы.  | 
 Контест 3: Классы (в anytask)  | |
| 24 сентября | Занятие 4 | 
 Метрические методы классификации. Обсуждение первого практического задания. Введение в обработку изображений. Визуализация в Python.  | ||
| 01 октября | Занятие 5 | 
 Подготовка текстовых отчётов. Система TeX.  | ||
| 8 октября | Занятие 6 | 
 Обработка исключений. Мененджеры контекста. Тестирование. Подготовка коротких выступлений.  | ||
| 15 октября | Занятие 7 | 
 Итераторы и генераторы.  | ||
| 22 октября | Занятие 8 | Декораторы. | ||
| 29 октября | Занятие 9 |  Обсуждение второго практического задания (LogReg).
 Введение в обработку текстов.  | ||
| 5 ноября | Занятие 10 | ML-инфраструктура (часть 1) | ||
| 19 ноября | Занятие 11 | ML-инфраструктура (часть 2) | ||
| 26 ноября | Занятие 12 | Обсуждение третьего практического задания. | 
Требования к отчёту по практическим заданиям
Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX. Студенты, хорошо выполнившие отчёты по прошлым заданиям, получают возможность сдавать отчёты в формате HTML или PDF, подготовленные с помощью jupyter notebook.
Отчёт должен давать проверяющему ответы на следующие вопросы:
- К какому курсу относится задание?
 - Какое задание выполнено?
 - Кем выполнено задание?
 - В чём заключалось задание?
 - Что было сделано? Что не было сделано?
 - Даны ли правильные ответы на все теоретические вопросы задания?
 - Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?
 - Выполнена ли творческая часть задания?
 - Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
 - Какой литературой пользовался студент?
 
Некоторые элементы хорошего отчёта:
- Объём отчёта: 5--20 страниц;
 - Текст отчёта не повторяет полной формулировки задания;
 - Структура отчёта соответствует пунктам задания;
 - Используются векторные шрифты;
 - Графики оформлены надлежащим образом;
 - Шкала для графиков выбрана правильно;
 - На разных графиках результаты для одинаковых методов отображаются одним и тем же цветом;
 - Между расположением графиков и местами их упоминания в тексте относительно небольшое расстояние (на той же или на соседней странице);
 - На страницах не должно быть много пустого места;
 - В большинстве случаев графики/таблицы/псевдокоды алгоритмов не должны занимать большей части одной страницы отчёта;
 - Все числа в тексте/таблицах указаны с необходимым числом значащих цифр;
 - В большинстве случае в отчёте не должно быть никакого кода;
 - Для всех экспериментов описан выбранный дизайн экспериментов, а также сделаны выводы из полученных результатов;
 
Требования к программному коду
- Код должен в целом соответствовать PEP8 (eng или rus )
 - В частности, код должен проходить автоматическую проверку стиля ссылка. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, может дополнительно штрафоваться.
 - Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению.
 - Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
 - Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов
 - Код, содержащий плагиат, автоматически оценивается в 0 баллов
 
Страницы прошлых лет
2018-2019 (осень) , 2018-2019 (весна)

