Изменения

Перейти к: навигация, поиск

План курса

9002 байта добавлено, 20:36, 2 марта 2012
Новая страница: «Цель: набрать хотя бы 60 баллов на зачет или на тройку. При этом надо обязательно решить од...»
Цель: набрать хотя бы 60 баллов на зачет или на тройку. При этом надо обязательно решить одну простую и одну сложную задачу. Таблица с текущими баллами [https://docs.google.com/spreadsheet/ccc?key=0Arjd0Cmpqn-AdG04aldwZk1kUUM1NFVvNzJ3Nk1zUVE тут].

Как можно набрать баллы:

== Конспекты ==
* Кураторство — 30 баллов.
** Кураторы конспектов — Андрей Комаров, Артем Васильев и Андрей Шулаев.
* Конспект — 25 баллов.
** [[Вычислительная геометрия#Конспекты | Конспекты]] и их [https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0Ar0nZy99lVSvdDIzR1E5R1MwdDN0MXBiOHRyQ2NVV1E&output=html распределение].
** Нужно выбрать алгоритм, который был или не был рассказан и согласовать.

== Презентации ==
* Кураторство — 30 баллов.
** Кураторы презентаций — Вика Волочай и Андрей Рыбак.
** От кураторов нужен простой пример в beamer, от которого можно было бы отталкиваться.
** Кураторы должны следить, чтобы все презентации были оформлены в едином стиле и без ошибок.
* Презентация — 25 баллов.
** Презентация должна представлять из себя не полную копию конспекта, а удобное сопровождение лекции, содержащее какие-то основные формулировки, примеры, хорошие, информативные картинки, и тому подобное.
** Презентация должна быть сделана в beamer и, для удобства, лежать в каком-нибудь хостинге репозиториев (github/bitbucket и т.п.)
== Задачи ==
* [https://docs.google.com/spreadsheet/pub?key=0Am1iPpuzj4s0dGNESDNzeW14ZndRVjVrRkI1eFZaaFE&output=html Список задач].
** Задачи делятся на простые (от 10 до 17 баллов включительно), сложные (от 18 до 29 баллов включительно) и прочие. Задачи, которые стоят 30 и больше — необязательны, но также пойдут в счет сложных в случае решения. За решенную в срок задачу ставится соответствующий балл, после дедлайна баллы начинают убывать.
** После того, как вы выбрали задачи, которые хотите решать, надо отметиться в [https://docs.google.com/spreadsheet/viewform?pli=1&formkey=dGNESDNzeW14ZndRVjVrRkI1eFZaaFE6MQ форме]. Одну задачу одновременно может взять не более 6 человек. Одновременно можно взять одну простую и одну сложную задачу.
** Задача должна быть решена лучше опеределенной минимальной производительности (будет выбрана позже).
** После того, как задача сдана, можно запросить code review и также получить за него дополнительные баллы.
** Можно использовать библиотеки GMP и boost::interval.
Формула для расчета баллов за сданную задачу:

<tex> B = M \cdot C_{delay} + \frac{M}{2} \cdot C_{performance} + \frac{M}{4} \cdot C_{quality} </tex>, где

<tex> M </tex> — заявленный в таблице балл за задачу,

<tex> C_{delay} </tex> — коэффициент за опоздание в сдаче задачи (от 1 до 0.5),

<tex> C_{performance} </tex> — коэффициент за производительность (от 0 до 1),

<tex> C_{quality} </tex> — коэффициент за качество кода (от 0 до 1).

<tex> C_{delay} =
\begin{cases}
1,& T \le T_{deadline}\\
\max(\frac{1}{2}, 1 - \frac{1}{60} \cdot (T - T_{deadline})),& T > T_{deadline}
\end{cases}
</tex>, где

<tex> T </tex> — текущий номер дня,

<tex> T_{deadline} </tex> — день дедлайна.

Проще говоря, если вы сдаете задачу до дедлайна, вы получаете за нее полный балл. После дедлайна баллы за задачу убывают линейно в течение месяца до <tex> \frac{M}{2} </tex>. Дальше убывание баллов прекращается.

<tex> C_{performance} = 1 - 2^{1 - \frac{t_{min}}{t}} </tex>, где

<tex> t </tex> — время работы вашей программмы,

<tex> t_{min} </tex> — минимальная производительность.

Таким образом, с минимальной производительностью коэффициент будет равен нулю, если вы решили в два раза быстрее, он равен 0.5, если в 10 раз — то почти 1.

Коэффициент <tex> C_{quality} </tex> — выставляется непосредственно проверяющим качество кода.
* Офомление условия в tex — 1 балл.
** Тикеты на условия и чекеры — [https://bitbucket.org/assaron/evaluator-tasks/issues тут].
** За условия и соответсвие их чекерам отвечает Андрей Козлов.
** Задача должна быть оформлена в виде скомпилированного в TeX файла с условием, описанием формата входных и выходных данных.
* За чекер к задаче — число баллов, указанное в таблице
** Чекер может работать неоптимально, но должен быть абсолютно корректным.
** Можно пользоваться любыми внешними библиотеками (например, CGAL).
** Также автор чекера генерирует некоторый набор тестов (хотя бы рандомных).

== Экзамен ==
* За экзамен можно получить до 20 баллов.
** Экзамен будет состоять из теоретической части и реализации задач вычислительной геометрии.

== Прочее ==
* Написание tutorial'а — 25 баллов. В tutorial должно быть освещено:
** Как собирать проект.
** Показать сложности в реализации задач.
** Пример задачи с решением, в которой все тонкости и сложные случаи рассматриваются со ссылкой на конспект.
* Viewer для отладки алгоритмов вычгеома + документация и простой пример — 100 баллов. Требования:
** Viewer должен быть написан на Qt + OpenGL.
** Ошибки ловятся с помощью boost/exception, в примерах должен быть продемонстрирован этот способ отладки.
** Документация и простые примеры работы с ним.
** Реализовать тривиальный набор примитивов (точки, вектора, отрезки, полигоны и т.д.)
** Поддержка в рабочем состоянии.
** Баллы получит лучший вьюер, возможно, остальные тоже получат в зависимости от их качества.
* Разобраться с CORE/Leda — в случае успеха — 100 баллов, в случае фейла — 15.
** Продемонстрировать что с помощью этих библиотек можно реализовать точные предикаты, принимающие на вход данные, полученные разными путями.
* Кодогенератор для предикатов — 100 баллов.
* Помощь Алексею Сергушичеву с тестирующей системой — он оценивает сам.

Навигация