Программирование для дата-журналистики/Итоговый проект — различия между версиями

Материалы по математике, 2018-19 учебный год
Перейти к: навигация, поиск
(Новая страница: «Проекты выполняются индивидуально. Проекты оцениваются по принципу peer review, в режиме дво…»)
(нет различий)

Версия 11:38, 2 июня 2019

Проекты выполняются индивидуально. Проекты оцениваются по принципу peer review, в режиме двойного слепого оценивания. Каждый проект должен получить как минимум три оценки от других студентов, при этом в качестве итоговой оценки используется медиана. При выставлении оценок они должны быть обоснованы. Лектор имеет право пересмотреть оценку, выставленную в ходе peer review, при наличии явных ошибок оценивания (например, рецензент не заметил функцию, которая на самом деле была реализована). Если вы по какой-то причине не можете участвовать в процедуре рецензирования, сообщите об этом до момента сдачи работы. Для получения оценки за проект каждый студент обязан отрецензировать по крайней мере три (можно больше) другие работы.

При сдаче работа должна быть анонимизирована, то есть в ней не должно быть указано имя или другая информация, идентифицирующая автора. Просмотрите свою работу внимательно: ваше имя может случайно оказаться, например, среди системных предупреждений (в путях файлов), в ссылках на внешние ресурсы (если вы хотите использовать github-репозиторий, создайте новый аккаунт, не привязанный к вам), в API-ключах и т.д.

Требования к проекту

Оценка вычисляется как сумма баллов, набранных по отдельным критериям согласно таблице ниже, и не может превосходить 12 баллов. (Можно набрать 15 баллов из 10 — так и пойдёт в формулу для оценки! :))

Для удобства оценивания рекомендуется сопроводить проект описанием того, какие технологии и как в нём используются. Это позволит избежать ситуации, когда рецензент не заметил какой-либо технологии и из-за этого поставил заниженную оценку.

Критерий Баллы
Базовые возможности Python. 1 — использовалось всё из перечисленного: циклы (for или while), проверка условий (if), списки и словари. Структурирование. 1 — программа структурирована: разбита на небольшие функции, про которые понятно, что они получают на вход и что выдают на выход (как тут).
Продвинутые возможности Python. 1 — использовалось по крайней мере два из трёх: работа с файлами, list comprehensions, обработка исключений.
Обработка данных с помощью pandas. 0 — не использовалась; 1 — использовалась в объёме, обсуждаемом в домашних заданиях (в задачах, средних по сложности); 2 — использовались продвинутые возможности pandas, соответствующие наиболее сложных задачам домашних работ (на 4 балла) или выходящие за рамки домашних работ.
Веб-скреппинг. 0 — не использовался; 1 — использовался базовый веб-скреппинг с помощью beautifulsoup; 2 — использовались более сложные технологии скреппинга (robobrowser, Selenium и др.)
Работа с REST API (XML/JSON). 0 — не использовалась; 1 — использовались API примерно в объеме задач домашней работы; 2 — нетривиальное использование API, существенно выходящее за рамки обсуждавшегося в домашних работах.
Визуализация данных. 0 — не использовалась; 1 — базовые визуализации типа «построен scatter plot»; 2 — более сложные визуализации, требующие написания нетривиального кода или использования библиотек, кроме базовых возможностей pandas и matplotlib.pyplot. Также на 2 балла следует оценивать использование библиотек, не обсуждавшихся на занятиях (например, seaborn или plotly — примеры, выходящие за рамки копипасты из документации).
JavaScript. 0 — не использовался; 1 — использовался (в объёме примерно как в примере про коровы и быки — реализовано взаимодействие с пользователем, ввод информации, обработка событий); 2 — нетривиальное использование JavsScript, более сложная логика веб-приложения.
Объём (осмысленных строк кода). 0 — 0-75; 1 — 75+.
Общее впечатление. 0 — ну ок; 1 — вау, круто!

Об объёме

Объём проекта измеряется в «осмысленных самостоятельно написанных логических строках кода».

  • «Логических» означает, что если разделить строку на две с помощью кнопки Enter, нажимемой в нужных местах, то это всё равно одна строка.
  • «Осмысленного» означает, что если написать десять раз подряд строчку name = 'Alice', то это не считается.
  • «Самостоятельно написанного» означает, что вы можете копипастить код откуда-то ещё, если он вам нужен для работоспособности вашего проекта — например, со StackOverflow — но любая такая копипаста должна обязательно сопровождаться ссылкой на источник и в зачёт ваших строк не идёт. Такая копипаста должна начинаться с комментария ### FROM: (адрес источника) и заканчиваться комментарием ### END FROM. Неправильно оформленная копипаста приравнивается к плагиату.