Основы и методология программирования 2016/2017 пилотный поток/161-2 — различия между версиями
Melnichuk (обсуждение | вклад) (→Семинар 17.10.2016) |
Melnichuk (обсуждение | вклад) (→Результаты) |
||
Строка 275: | Строка 275: | ||
===Результаты=== | ===Результаты=== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Строка 303: | Строка 296: | ||
| Лавритов Дмитрий Ильич || 6 || 6 || 6 || 4 || 8 || 5,80 || 6 | | Лавритов Дмитрий Ильич || 6 || 6 || 6 || 4 || 8 || 5,80 || 6 | ||
|- | |- | ||
− | | Семенов Михаил Александрович || 8 || 8 || 7 || | + | | Семенов Михаил Александрович || 8 || 8 || 7 || 7 || 6 || 7,13 || 7 |
|- | |- | ||
| Синицын Богдан Игоревич || 0 || 0 || 6 || 10|| 8 || 5,60 || 6 | | Синицын Богдан Игоревич || 0 || 0 || 6 || 10|| 8 || 5,60 || 6 |
Текущая версия на 19:52, 21 октября 2016
Содержание
- 1 Контакты семинариста
- 2 Контакты ассистента
- 3 Семинар 05.09.2016
- 4 Семинар 07.09.2016
- 5 Семинар 12.09.2015
- 6 Семинар 14.09.2015
- 7 Семинар 19.09.2016
- 8 Семинар 21.09.2016
- 9 Семинар 26.09.2016
- 10 Семинар 28.09.2015
- 11 Семинар 03.10.2016
- 12 Семинар 05.10.2016
- 13 Консультация 06.10.2016
- 14 Домашняя работа
- 15 Семинар 10.10.2016
- 16 Семинар 12.10.2016
- 17 Семинар 17.10.2016
- 18 Результаты
Контакты семинариста
Почта finisterra@yandex.ru
VK vk.com/finisterra
Телефон +7(915)004-91-33
Telegram lastearth
Контакты ассистента
Почта tiunovas@mail.ru
VK https://vk.com/id144882148
Telegram astiunov
Контест с дополнительными задачами: https://official.contest.yandex.ru/contest/2868/enter/.
Семинар 05.09.2016
HelloWorld на C++. Знакомство с linux. Основные команды, которые следует освоить:
- ls
- cd
- vim
- g++
Также стоит посмотреть на команды
- man
- cat
- less
- grep
и попрактиковаться в перенаправлениях потоков.
Семинар 07.09.2016
Решение задач.
- числа Фибоначчи
- ASCII-таблица
- Треуголник Паскаля
- Быстрое возведение в степень
- Непарное число
Типичные ошибки и замечания по style guide'у:
- именование переменных
- инициализация переменных при создании
Полезные ссылки
Семинар 12.09.2015
Решение задач.
- Утилита head (ввод-вывод)
- gcd (работа с функциями)
- Частоты символов (ввод-вывод и вектор)
- Транспонирование матрицы (вектора векторов)
К среде надо подготовиться к контрольной по вводу-выводу, базовым конструкциям языка, циклам и функциям. Также советую познакомится с интерфейсом Яндекс.Контеста на примере тренировочного набора задач.
Семинар 14.09.2015
Домашнее задание: разбиться на пары и прислать мне на почту ревью кода напарника по всем отправленным на КР задачам. Принимается вплоть до полуночи воскресенья, то есть до конца недели.
ФИО | Оценка | Прислал ревью |
---|---|---|
Алейкин Сергей Дмитриевич | 10 | + |
Бобровский Артемий Андреевич | 6 | + |
Васильев Олег Юрьевич | 10 | |
Грицаев Матвей Григорьевич | 4 | + |
Дрынкин Роберт Робертович | 6 | |
Ершов Олег Владиславович | 6 | + |
Кочергин Владислав Константинович | 8 | + |
Лавренов Николай Артемович | 10 | + |
Лавритов Дмитрий Ильич | 6 | + |
Семенов Михаил Александрович | 4 | + |
Усов Федор Андреевич | 6 | + |
Якунчева Ирина Юрьевна | 8 | + |
Семинар 19.09.2016
Ассоциацивные массивы. Языковая статистическая модель. N-граммы.
Дома попробуйте обучить модели по словам, а не по буквам. Также можно поэкспериментировать со смешением распределений по разным N.
Семинар 21.09.2016
Написание структур. Специализация std::less, std::equal_to, std::hash для своих структур. Шаблонные параметры std::map, std:set, std::unordered_map, std::unordered_set.
Задачи
- поиск наиболее популярного квадрата на клетчатой плоскости по набору точек
- обработка запросов "содержится ли точка хотя в одном отрезке из фиксированного набора"
- проверка наличия вертикальной оси симметрии у набора точек
Семинар 26.09.2016
Написание шаблонных функций. Специализация шаблонных функций. Шаблонные параметры по умолчанию. Написание алгоритмов, аналогичных <algorithm>.
Задачи
- transform
- partition на ForwardIterator'ах
- merge
- lower_bound
В среду 28 сентября на первой паре, как всегда, будет контрольная по пройденным материалам.
Семинар 28.09.2015
Результаты контрольной:
ФИО | Оценка | Прислал ревью |
---|---|---|
Алейкин Сергей Дмитриевич | 8 | |
Бобровский Артемий Андреевич | 6 | |
Васильев Олег Юрьевич | 0 | |
Грицаев Матвей Григорьевич | 6 | |
Дрынкин Роберт Робертович | 8 | |
Ершов Олег Владиславович | 6 | |
Кочергин Владислав Константинович | 8 | |
Лавренов Николай Артемович | 6 | |
Лавритов Дмитрий Ильич | 6 | |
Семенов Михаил Александрович | 8 | |
Усов Федор Андреевич | 4 |
Домашнее задание: как в прошлый раз, разбиться на пары и прислать мне на почту ревью кода напарника по всем отправленным на КР задачам.
Принимается вплоть до полуночи воскресенья, то есть до конца недели.
Семинар 03.10.2016
Класс для работы с рациональными числами (не шаблон и шаблон). Конструкторы, список инициализации, const, перегрузка операторов, friend.
Семинар 05.10.2016
Дополнительные применения шаблонов, классы типов, sfinae.
Консультация 06.10.2016
Некоторые нововведения C++11. std::initializer_list, constexpr. Семантика перемещения: rvalue ссылки, move, forward.
Домашняя работа
Распределение по вариантам:
ФИО | A | B | C |
---|---|---|---|
Алейкин Сергей Дмитриевич | 2 | 2 | 2 |
Бобровский Артемий Андреевич | 1 | 1 | 1 |
Васильев Олег Юрьевич | 2 | 1 | 2 |
Грицаев Матвей Григорьевич | 1 | 2 | 2 |
Дрынкин Роберт Робертович | 2 | 1 | 1 |
Ершов Олег Владиславович | 1 | 2 | 2 |
Кочергин Владислав Константинович | 1 | 2 | 2 |
Лавренов Николай Артемович | 1 | 2 | 1 |
Лавритов Дмитрий Ильич | 2 | 2 | 2 |
Семенов Михаил Александрович | 1 | 1 | 2 |
Усов Федор Андреевич | 2 | 2 | 1 |
Семинар 10.10.2016
Наследование. Базовый вариант наследования. Наследование от шаблонного класса. Реализация Singleton, DFSVisitor. Задачи:
- ZeroInit
- SerializableSet
Дома попробуйте реализовать иерархию классов для игры кошки-мышки. Должен быть базовый класс TGameObject, от него унаследованы TCat и TMouse. Объекты будут лежать в std::vector<TGameObject *>. Для отправки по сети они будут сериализовываться в строку и десериализовываться оттуда. Надо реализовать удобный механизм сериализации/десереализации для отправки объектов по сети. То есть по вектору объектов должно быть легко и удобно построить строку, содержащую их полное описание, а потом из строки собрать их обратно.
Hint: советую сделать в базовом классе три чисто виртуальных метода GetClassID, Serialize и Deserialize, а в детях их реализовать и продумать механизм их использования.
В среду на первой паре, как водится, будет контрольная по пройденному материалу.
Семинар 12.10.2016
ФИО | Оценка |
---|---|
Алейкин Сергей Дмитриевич | 7 |
Бобровский Артемий Андреевич | 6 |
Грицаев Матвей Григорьевич | 2 |
Дрынкин Роберт Робертович | 6 |
Ершов Олег Владиславович | 4 |
Кочергин Владислав Константинович | 7 |
Лавренов Николай Артемович | 7 |
Лавритов Дмитрий Ильич | 6 |
Семенов Михаил Александрович | 7 |
Синицын Богдан Игоревич | 6 |
Усов Федор Андреевич | 6 |
Якунчева Ирина Юрьевна | 0 |
Разбор контрольной и реализация вектора. Код, написанный на семинаре: https://yadi.sk/d/wldfvEMfwgyh9
В субботу 15ого октября на второй паре в аудитории 503 будет переписывание контрольной. Допуск на переписывание выдает семинарист. Без допуска приходить нельзя. Если вы хотите переписать контрольную, свяжитесь со мной и согласуйте это.
Семинар 17.10.2016
Умные указатели, unique_ptr, shared_ptr, простая реализация shared_ptr. Юнит-тесты в коде. GTest: https://github.com/google/googletest
Код, написанный на семинаре: http://pastebin.com/bv7MzKJv
Результаты
Студент | КР1 | КР2 | КР3 | ДЗ | Ауд. | Накопл. | Накопл. округл. |
---|---|---|---|---|---|---|---|
Алейкин Сергей Дмитриевич | 10 | 8 | 7 | 10 | 10 | 9,17 | 9 |
Бобровский Артемий Андреевич | 6 | 6 | 6 | 3 | 8 | 5,50 | 6 |
Грицаев Матвей Григорьевич | 4 | 6 | 6 | 4 | 10 | 5,87 | 6 |
Дрынкин Роберт Робертович | 6 | 8 | 6 | 0 | 8 | 4,93 | 5 |
Ершов Олег Владиславович | 6 | 6 | 6 | 8 | 8 | 7,00 | 7 |
Кочергин Владислав Константинович | 8 | 8 | 7 | 10 | 10 | 8,83 | 9 |
Лавренов Николай Артемович | 10 | 6 | 7 | 9 | 10 | 8,53 | 9 |
Лавритов Дмитрий Ильич | 6 | 6 | 6 | 4 | 8 | 5,80 | 6 |
Семенов Михаил Александрович | 8 | 8 | 7 | 7 | 6 | 7,13 | 7 |
Синицын Богдан Игоревич | 0 | 0 | 6 | 10 | 8 | 5,60 | 6 |
Усов Федор Андреевич | 6 | 4 | 6 | 6 | 8 | 6,07 | 6 |
Халиков Даниил Альбертович | 0 | 0 | 0 | 0 | 4 | 0,80 | 1 |
Якунчева Ирина Юрьевна | 8 | 0 | 0 | 0 | 4 | 2,13 | 2 |