Практикум на ЭВМ (317)/2017-2018

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

(Различия между версиями)
Перейти к: навигация, поиск
Текущая версия (20:11, 15 февраля 2019) (править) (отменить)
 
(64 промежуточные версии не показаны)
Строка 7: Строка 7:
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]
Анонимные отзывы по курсу можно оставлять здесь: [https://goo.gl/forms/im2Y51K0yVTgWQEQ2 ссылка на гугл-форму]
-
+
 
-
= Правила сдачи практикума в осеннем семестре 2016/2017 =
+
 
-
Скоро будут объявлены
+
Репозиторий со всеми материалами: [https://github.com/arti32lehtonen/mmp_prac_2017 ссылка на репозиторий]
 +
= Правила сдачи практикума в осеннем семестре 2017/2018 =
 +
1. В рамках семестра предполагается три больших практических задания и четыре домашних задания. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.
 +
 
 +
2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. За каждый день просрочки назначается штраф 1 балл. Задание, сданное через две недели после срока сдачи, оценивается в 0 баллов.
 +
 
 +
3. За каждое домашнее задание можно получить до 20-ти баллов. Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после срока сдачи, оцениваются в 0 баллов.
 +
 
 +
4. Также в рамках семестра каждый студент делает небольшое выступление по теме курса. За выступление можно получить до 10-ти баллов.
 +
 
 +
5. Критерии итоговой оценки:
 +
 
 +
* отлично — 190 баллов, все практические и домашние задания зачтены
 +
* хорошо — 145 баллов, все практические задания зачтены
 +
* удовлетворительно — 95 баллов, все практические задания зачтены
 +
 
 +
6. Критерий <<зачтённости>> задания объявляется вместе с заданием.
= Материалы занятий (осень) =
= Материалы занятий (осень) =
{|class = "standard"
{|class = "standard"
! Дата !! Номер !! Тема !! Материалы !! Д/З
! Дата !! Номер !! Тема !! Материалы !! Д/З
-
|-
+
|- <!-- Новое занятие -->
|5 сентября
|5 сентября
|Занятие 1
|Занятие 1
Строка 20: Строка 36:
Организационные вопросы. Введение в Python.
Организационные вопросы. Введение в Python.
|
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/01.%20Introduction%20to%20Python/01_notebook.ipynb jupyter-notebook]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/01.%20Introduction%20to%20Python/slides.pdf слайды]
|
|
 +
Ознакомиться c PEP8
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task1.pdf домашнее задание 1]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|12 сентября
 +
|Занятие 2
 +
|
 +
Структуры данных (продолжение).
 +
Библиотека Numpy.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/02.%20Numpy/Python%20structures%20(additionally).ipynb jupyter-notebook(python)]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/02.%20Numpy/Introduction%20to%20Numpy.ipynb jupyter-notebook(numpy)]
 +
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task2.pdf домашнее задание 2]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|19 сентября
 +
|Занятие 3
 +
|
 +
Функции, модули, классы. ООП в Python.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/03.%20Funtions%2C%20modules%2C%20classes/slides.pdf слайды]
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task3.pdf домашнее задание 3]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|26 сентября
 +
|Занятие 4
 +
|
 +
Разбор первого домашнего задания.
 +
 +
Тестирование.
 +
Основы визуализации.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/04.%20Testing%20%26%20Visualization/slides_testing.pdf слайды(тестирование)]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/04.%20Testing%20%26%20Visualization/notebook_visualization.ipynb jupyter-notebook(matplotlib)]
 +
|
 +
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|3 октября
 +
|Занятие 5
 +
|
 +
Обсуждение первого практического задания.
 +
 +
Основы обработки изображений.
 +
 +
Разбор второго домашнего задания.
 +
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/05.%20Image%20processing/slides.pdf слайды(изображения)]
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task1.pdf практическое задание 1]
 +
 +
[https://contest.yandex.ru/contest/5216/standings/ страничка соревнования]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|10 октября
 +
|Занятие 6
 +
|
 +
Подготовка текстовых отчётов. Система TeX.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/06.%20TeX/slides.pdf слайды]<br>
 +
[http://www.ptep-online.com/ctan/llang2003.pdf Книга по системе LaTeX]<br>
 +
[http://www.ccas.ru/voron/download/voron05latex.pdf LaTeX в примерах]
 +
|
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|17 октября
 +
|Занятие 7
 +
|
 +
Итераторы. Генераторы.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/07.%20Iterators/slides.pdf слайды]
 +
|
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|24 октября
 +
|Занятие 8
 +
|
 +
Декораторы.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/08.%20Decorators/slides.pdf слайды]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/08.%20Decorators/decorator_notebook.ipynb ноутбук с примерами]
 +
 +
[https://compscicenter.ru/courses/python/2015-autumn/classes/1387/ лекция CSC]
 +
 +
[https://pythonworld.ru/osnovy/dekoratory.html статья самоучителя]
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Contests/task4.pdf домашнее задание 4]
 +
 +
[https://contest.yandex.ru/contest/5622/enter/ страница соревнования]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|31 октября
 +
|Занятие 9
 +
|
 +
Разбор отчётов по практическому заданию.
 +
 +
Обработка текстов.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/09.%20Text%20processing/reports_analysis.pdf слайды (отчёты)]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/09.%20Text%20processing/slides_text.pdf слайды (тексты)]
 +
|
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|7 ноября
 +
|Занятие 10
 +
|
 +
Подготовка коротких выступлений.
 +
 +
Пакет beamer для презентаций. Продвинутый TeX.
 +
|
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides%20(short_talks).pdf слайды (выступление)]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides%20(tex).pdf слайды (тех)]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/10.%20Tex%20advanced/slides_code.zip исходники слайдов]
 +
|
 +
Готовиться к выступлению
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task2/task2.pdf практическое задание 2]
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|14 ноября
 +
|Занятие 11
 +
|
 +
Выступления студентов.
 +
|
 +
|
 +
Готовиться к выступлению
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|21 ноября
 +
|Занятие 12
 +
|
 +
Выступления студентов.
 +
|
 +
|
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|28 ноября
 +
|Занятие 13
 +
|
 +
Обсуждение третьего практического задания.
 +
 +
Задачи условной оптимизации.
 +
 +
Метод субградиентного спуска. Метод PEGASOS.
 +
|
 +
| Готовиться к выступлению
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/Tasks/task3/task3.pdf практическое задание 3]
 +
 +
[https://github.com/arti32lehtonen/mmp_prac_2017/tree/master/Tasks/task3/prototypes прототипы]
 +
<!-- Конец занятия -->
 +
<!-- Конец занятия -->
 +
|- <!-- Новое занятие -->
 +
|5 декабря
 +
|Занятие 14
 +
|
 +
Выступления студентов.
 +
|
 +
|
 +
<!-- Конец занятия -->
|}
|}
 +
 +
= Выступления студентов на семинаре =
 +
 +
Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса.
 +
 +
Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему.
 +
 +
{|class="standard sortable"
 +
! № п/п !! Тема !! ФИО студента !! Материалы
 +
|-
 +
| align="center"|1 || Система контроля версий Git || Солоткий Михаил || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Solotky_Git.pdf слайды]
 +
|-
 +
| align="center"|2 || Основные отличия Python2 и Python3 || Шестакова Анна|| [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shestakova_Distinctions_between_Python2_and_3.pdf слайды]
 +
|-
 +
| align="center"|3 || Средства консервации объектов в Python (json, pickle и другие) || Всеволод Полетаев || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Poletaev_Serialization.pdf слайды]
 +
|-
 +
| align="center"|4 || Библиотека multiprocessing для распараллеливания и ускорения вычислений в Python || Цыпин Артем || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Tsypin_Multiprocessing.pdf слайды]
 +
|-
 +
| align="center"|5 || Библиотека для автоматического дифференцирования и вычислений на GPU TensorFlow || Руднев Виктор || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Rudnev_Tensorflow.pdf слайды]
 +
|-
 +
| align="center"|6 || Библиотека для автоматического дифференцирования и вычислений на GPU PyTorch || Яворская Мария || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Iavorskaia_pytorch.pdf слайды]
 +
|-
 +
| align="center"|7 || Магические команды Jupyter Notebook (отладка, профилирование) || Филимонов Владислав || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Filimonov_Magic_Command.pdf слайды]
 +
|-
 +
| align="center"|8 || Полезные расширения Jupyter Notebook (Jupyter notebook extensions) || Шамшиев Мамат || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shamshiev_JN_extensions.pdf слайды]
 +
|-
 +
| align="center"|9 || Разметка markdown и создание текстовых отчётов в формате pdf с помощью Jupyter Notebook || Шаталов Николай || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Shatalov_markdown.pdf слайды]
 +
|-
 +
| align="center"|10 || Создание презентаций с помощью Jupyter Notebook || Пономарева Любовь || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Ponomareva_Slideshow_in_IPython.pdf слайды]
 +
|-
 +
| align="center"|11 || Проксимальный градиентный метод для обучения моделей с L1-регуляризацией || Фоминская Галина || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/fominskaya_proximal.pdf слайды]
 +
|-
 +
| align="center"|12 || Разложение Холецкого и его применения || Драгунов Никита || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Dragunov_Cholesky.pdf слайды]
 +
|-
 +
| align="center"|13 || Стандартные матричные разложения: LDL, LU и QR. Примеры использования. || Скачков Николай || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Skachkov_decompositions.pdf слайды]
 +
|-
 +
| align="center"|14 || Метод NCA для обучения метрики || Сомов Иван || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Somov_NCA.pdf слайды]
 +
|-
 +
| align="center"|15 || Одноклассовый SVM и его применения || Медведев Алексей || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Medvedev_A_OSVM.pdf слайды]
 +
|-
 +
| align="center"|16 || Система вёрстки XeTeX || Медведев Дмитрий || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Medvedev_D_xetex.pdf слайды]
 +
|-
 +
| align="center"|17 || Библиотека для визуализации в Python (выбрать одну, не matplotlib) || Сагайдак Олег || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Sagaydak_seaborn.pdf слайды]
 +
|-
 +
| align="center"|18 || Интерпретатор языка Python PyPy || Дженаков Дмитрий || [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/student_reports/Dzhenakov_PyPy.pdf слайды]
 +
|-
 +
|}
= Требования к отчёту по большим практическим заданиям =
= Требования к отчёту по большим практическим заданиям =
Строка 41: Строка 277:
* Код должен в целом соответствовать PEP8 ([https://www.python.org/dev/peps/pep-0008/ eng] или [http://pep8.ru/doc/pep8/ rus] )
* Код должен в целом соответствовать PEP8 ([https://www.python.org/dev/peps/pep-0008/ eng] или [http://pep8.ru/doc/pep8/ rus] )
-
* В частности, код должен проходить автоматическую проверку стиля <здесь будет ссылка на скрипт>. Код, не прошедший проверку, автоматически оценивается в 0 баллов
+
* В частности, код должен проходить автоматическую проверку стиля [https://github.com/arti32lehtonen/mmp_prac_2017/blob/master/mmp_pep8.py ссылка]. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, автоматически оценивается в 0 баллов.
* Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению
* Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению
* Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
* Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
Строка 59: Строка 295:
[[ Практикум на ЭВМ (317)/2011-2012 | 2011-2012 ]]
[[ Практикум на ЭВМ (317)/2011-2012 | 2011-2012 ]]
 +
 +
[[Категория:Кафедра Математические методы прогнозирования ВМиК МГУ]]
 +
[[Категория:Учебные практикумы]]

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

  • Обязательный курс для студентов каф. ММП 3 курса, 5-6 семестр
  • Зачёт с оценкой
  • Преподаватели: Д.А. Кропотов, Артём Попов и другие
  • Занятия проходят в ауд. 524 по вторникам, начало в 16:20


Анонимные отзывы по курсу можно оставлять здесь: ссылка на гугл-форму


Репозиторий со всеми материалами: ссылка на репозиторий

Правила сдачи практикума в осеннем семестре 2017/2018

1. В рамках семестра предполагается три больших практических задания и четыре домашних задания. Все задания сдаются в систему anytask, инвайт к курсу можно получить у преподавателя.

2. За каждое большое практическое задание можно получить до 50-ти баллов. Задание включает в себя написание программного кода, выполнение экспериментов и написание отчёта о проделанной работе. Срок выполнения каждого задания — 2 недели. За каждый день просрочки назначается штраф 1 балл. Задание, сданное через две недели после срока сдачи, оценивается в 0 баллов.

3. За каждое домашнее задание можно получить до 20-ти баллов. Задание включает в себя написание программного кода. Срок выполнения каждого задания — 1 неделя. Задания, сданные после срока сдачи, оцениваются в 0 баллов.

4. Также в рамках семестра каждый студент делает небольшое выступление по теме курса. За выступление можно получить до 10-ти баллов.

5. Критерии итоговой оценки:

  • отлично — 190 баллов, все практические и домашние задания зачтены
  • хорошо — 145 баллов, все практические задания зачтены
  • удовлетворительно — 95 баллов, все практические задания зачтены

6. Критерий <<зачтённости>> задания объявляется вместе с заданием.

Материалы занятий (осень)

Дата Номер Тема Материалы Д/З
5 сентября Занятие 1

Организационные вопросы. Введение в Python.

jupyter-notebook

слайды

Ознакомиться c PEP8

домашнее задание 1

12 сентября Занятие 2

Структуры данных (продолжение). Библиотека Numpy.

jupyter-notebook(python)

jupyter-notebook(numpy)

домашнее задание 2

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

Функции, модули, классы. ООП в Python.

слайды

домашнее задание 3

26 сентября Занятие 4

Разбор первого домашнего задания.

Тестирование. Основы визуализации.

слайды(тестирование)

jupyter-notebook(matplotlib)

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

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

Основы обработки изображений.

Разбор второго домашнего задания.

слайды(изображения)

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

страничка соревнования

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

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

слайды
Книга по системе LaTeX
LaTeX в примерах

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

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

слайды

24 октября Занятие 8

Декораторы.

слайды

ноутбук с примерами

лекция CSC

статья самоучителя

домашнее задание 4

страница соревнования

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

Разбор отчётов по практическому заданию.

Обработка текстов.

слайды (отчёты)

слайды (тексты)

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

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

Пакет beamer для презентаций. Продвинутый TeX.

слайды (выступление)

слайды (тех)

исходники слайдов

Готовиться к выступлению

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

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

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

Готовиться к выступлению

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

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

28 ноября Занятие 13

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

Задачи условной оптимизации.

Метод субградиентного спуска. Метод PEGASOS.

Готовиться к выступлению

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

прототипы

5 декабря Занятие 14

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

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

Выступление должно сопровождаться презентацией, подготовленной в LaTeX с помощью пакета beamer. При согласовании с преподавателем разрешается делать презентацию в Jupyter notebook или просто использовать Jupyter notebook вместо презентации. Приблизительный регламент выступления — 10 минут. После выступления необходимо залить свою презентацию в репозиторий курса.

Каждый студент должен выбрать одну тему из списка ниже либо предложить свою тему.

№ п/п Тема ФИО студента Материалы
1 Система контроля версий Git Солоткий Михаил слайды
2 Основные отличия Python2 и Python3 Шестакова Анна слайды
3 Средства консервации объектов в Python (json, pickle и другие) Всеволод Полетаев слайды
4 Библиотека multiprocessing для распараллеливания и ускорения вычислений в Python Цыпин Артем слайды
5 Библиотека для автоматического дифференцирования и вычислений на GPU TensorFlow Руднев Виктор слайды
6 Библиотека для автоматического дифференцирования и вычислений на GPU PyTorch Яворская Мария слайды
7 Магические команды Jupyter Notebook (отладка, профилирование) Филимонов Владислав слайды
8 Полезные расширения Jupyter Notebook (Jupyter notebook extensions) Шамшиев Мамат слайды
9 Разметка markdown и создание текстовых отчётов в формате pdf с помощью Jupyter Notebook Шаталов Николай слайды
10 Создание презентаций с помощью Jupyter Notebook Пономарева Любовь слайды
11 Проксимальный градиентный метод для обучения моделей с L1-регуляризацией Фоминская Галина слайды
12 Разложение Холецкого и его применения Драгунов Никита слайды
13 Стандартные матричные разложения: LDL, LU и QR. Примеры использования. Скачков Николай слайды
14 Метод NCA для обучения метрики Сомов Иван слайды
15 Одноклассовый SVM и его применения Медведев Алексей слайды
16 Система вёрстки XeTeX Медведев Дмитрий слайды
17 Библиотека для визуализации в Python (выбрать одну, не matplotlib) Сагайдак Олег слайды
18 Интерпретатор языка Python PyPy Дженаков Дмитрий слайды

Требования к отчёту по большим практическим заданиям

Отчёт должен быть самодостаточным документом в формате PDF, подготовленным в системе LATEX.

Отчёт должен давать проверяющему ответы на следующие вопросы:

  • К какому курсу относится задание?
  • Какое задание выполнено?
  • Кем выполнено задание?
  • В чём заключалось задание?
  • Что было сделано? Что не было сделано?
  • Даны ли правильные ответы на все теоретические вопросы задания?
  • Проведены ли все необходимые эксперименты? Получены ли осмысленные ВЫВОДЫ?
  • Выполнена ли творческая часть задания?
  • Пользовался ли студент чьей-либо помощью? Если да, то в каком объёме?
  • Какой литературой пользовался студент?

Требования к программному коду

  • Код должен в целом соответствовать PEP8 (eng или rus )
  • В частности, код должен проходить автоматическую проверку стиля ссылка. Скрипт запускается из командной строки так: python3 mmp_pep8.py <ваш скрипт>. Код, вызывающий предупреждения, автоматически оценивается в 0 баллов.
  • Код должен быть понятным и единообразным. Переменные, функции и другие элементы кода должны иметь осмысленные, значимые имена, отвечающие их назначению
  • Код, который не соответствует прототипам, выданным в задании, автоматически оценивается в 0 баллов
  • Код, который не удовлетворяет требованиям задания (например, запрету на использование конкретных библиотек), автоматически оценивается в 0 баллов
  • Код, содержащий плагиат, автоматически оценивается в 0 баллов

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

2016-2017

2015-2016

2014-2015

2013-2014

2012-2013

2011-2012

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