Pull to refresh

Опыт получения Data Science specialization на Coursera за 6 месяцев

Studying in IT
Приветствую,

В этом посте я бы хотел зафиксировать свои уже гаснущие воспоминания о получении «Data Science, a 9-course specialization by Johns Hopkins University on Coursera. Specialization Certificate», фокусируясь на организационной стороне вопроса. Т.е. я не буду рассуждать о том, насколько это престижный сертификат, какой преподаватель скучнее и достаточно ли знаний дается. На мой взгляд — это вопросы субъективные. Вместо «зачем», я расскажу о том «как»: в каком порядке и как проходить курсы, на что обращать внимание при сдаче тестов и курсовых, и что получается в результате.

Это платно


Данная специализация (везде по разному) состоит из 9 онлайн курсов + capstone project (дипломный проект). За каждый курс вы получаете сертификат, и он должен быть verified. Вы можете прослушать курс бесплатно и получить обычный сертификат, но такой не пойдет вам в зачет для специализации (signature track). Скорее всего, к signature track (список соответствия курсов специализации) удастся подцепить уже пройденный ранее платно курс, входящий в выбранную вами специализацию. Не слушать же его еще раз, правда? Но у меня таких не было.

Итого, стоимость специализации Data Science будет складываться из цены 9 verified курсов + capstone project. Причем цены в вашей валюте. Можно платить за каждый курс по мере необходимости (цена будет немного выше), но я застал момент, когда курс рубля уже упал, а цены еще не скорректировали — поэтому заплатил сразу за все 10800р. Да и меня оплата вперед больше мотивирует. Сейчас полный комплект курсов стоит 18600р (или 28200р, если оплачивать по одному). Советую брать пучком.

Докупать какие либо книги или сервисы (платный Azure и т.п.) в процессе получения этой специализации не предлагалось.

Из приятного: после оплаты к прохождению курса можно приступить в течение 2х лет. Если провалите — последующие попытки его пересдать бесплатны. А это значит, что если вы заплатили за курс, то не получить сертификат по нему вы сможете только если прекратите пытаться это сделать. А значит получение специализации становится вопросом скорее времени и желания.

В чем заключается верификация


1. Вас попросят набрать длинную фразу и сфотографироваться на web-камеру. Честно говоря, точно не помню, но возможно один раз потребуется отправить фото документа, удостоверяющего личность, с вашей фотокарточкой. Это делается также через web-cam. Для съемки используется flash плагин с рамочками. Никаких распознаваний образов на предмет попадания в рамку не происходит.
2. Отправляя результаты тестов или ссылки на отчеты вы будете каждый раз вводить эту фразу (видимо сверяется стиль печати) и фотографироваться на web-cam. Это часть submission process. Фотографии, видимо, потом бегло просматривают специально обученные обезьяны. И проделать вам это придется раз 50 минимум.

Вывод: вы можете смотреть видео где угодно, но результаты отправлять нужно на машине с hardware keyboard и web-cam. О чем вам будут напоминать все пол года. Если с фото не заладится, можно один раз за курс сделать submission без него (в деталях могу ошибаться).

Linux


Несмотря на то, что курсы специализации оттестированы авторами на Win и Mac, я проходил его на ноутбуке с Kubuntu 14-15 + Firefox. Все используемое в курсе ПО есть и для этой системы. Никакой необходимости запуска Windows для выполнения какой-либо операции у меня не возникло. Но это, конечно, не доказывает, что любой курс на coursera можно успешно пройти с linux машины.

Порядок прохождения курсов


В Data Science specialization есть 2 правила:

1. приступить к курсам с 2 по 9 можно только сдав 1й.
2. к capstone project можно приступить, только сдав предыдущие 9 курсов.

Каждый курс длится месяц (а точнее — 4 недели), capstone project — 2 месяца. После окончания курсы перезапускаются. Обычно курс начинается с 1 по 5 число — в понедельник/вторник.

Отсюда вывод: если вы оплатите специализацию числа 10-го, то все равно будете ждать до конца месяца, чтобы приступить к обучению. Кроме того, заканчивая текущие курсы обязательно следите за тем, когда откроется регистрация на следующие, и регистрируйтесь на них. Иначе рискуете получить 4 недели каникул.

Что касается порядка прохождения, оговорюсь, что я experienced developer, прочитал к тому моменту книжку по R и имел возможность учиться full time. Поэтому я брал несколько курсов за раз. Тем не менее (о чем ниже), считаю, что такую схему потянет и студент, занимающийся после работы/на выходных.

1. Как можно раньше берете курс №1 и проходите его часа за 4е. Ну максимум за 2 дня. Да, он такой простой + там одни тесты. Он не стоит месяца.
2. Тут же, чтобы не терять месяц вы успеете взять курсы №2 и №3. (т. е. 3 курса за 1й месяц).
3. Далее берите по два курса параллельно и, в итоге, наберете 9 пройденных курсов. (еще 3 месяца).
4. Делаете capstone (+2 месяца).

Как устроен курс


В течение курса вам может потребоваться сдать 1-4 теста и 1-2 курсовых работы. Сразу смотрите Syllabus (учебный план) — там написано, что от вас потребуется и главное — deadlines. Обычно, курс выглядит так:

1 неделя: видеоуроки + тест с дедлайном в конце недели
2 неделя: видеоуроки + тест и/или курсовой с дедлайном в конце недели
3 неделя: видеоуроки + тест и/или курсовой с дедлайном в конце недели
4 неделя: видеоуроки + тест

Обратите внимание, что на последней недели курсового быть не может (почему — ниже). А на первой он мне никогда не попадался.

Видео — гипотетически можно вообще не смотреть. Чтобы студент не все забыл, плеер иногда может вставать на паузу и давать вопрос на повторение. Эти ответы, с точки зрения сертификации, абсолютно ни на что не влияют. Если скачаете видео на ПК, то этого удовольствия, понятное дело, там не окажется.

Тесты в этой специализации не имеют таймера. (Часть вопросов потребует поработать в RStudio, так что сдача теста может затянуться надолго.) Обычно они состоят из 6-10 вопросов с 3-5 вариантами ответов. Дается 3, реже 2 (в capstone) попытки его сдать. В зачет идет максимальный набранный за попытку балл. Не бойтесь закрыть страницу с вопросами — попытка не будет засчитана, пока не пройдете submission process. Вопросы не меняются, список ответов может разбавляться свежими неправильными вариантами и тасоваться.

Обычно, тест проходится с первого раза. Если сложный — вы должны сразу попасть в 7-8 вопросов из 10, остальные сможете докрутить.

Мне не встречались некорректно поставленные вопросы или вопросы явно не имеющие правильного ответа среди предложенных. Если вы так считаете — скорее всего вы что-то недопоняли.

Тесты дадут 30-40% от course credit score. (Для получения сертификата нужно >70%)

Курсовой


Это может быть отчет или презентация на 5 страниц в RPubs/Github, ссылку на которую вы отправляете. Или проект на Github. Или web приложение на shinyapps.io. Редко вместо ссылки от вас будут просить приаттачить R файл.

Обычно курсовой один. Но однажды, если не ошибаюсь, было 2 маленьких.

У курсового есть 2 дедлайна — второй через неделю после первого. Поэтому курсового не бывает на 4 неделе. К первому дедлайну вы сдаете проект. Ко второму — проверяете 4 чужих, ставя им баллы в небольшой анкете. Иногда ставите оценку и себе. Оценкой за ваш курсовой будет среднее из выставленных вам оценок ваших однокурсников. Я подозреваю, что супервайзеры курса не смотрят на эти результаты, пока они не выбиваются из тренда. Т.е. в 99% случаев вас оценивают ваши сокурсники.

Отсюда вытекает жуткая головная боль. Задание (кстати, внимательно прочтите все требования к заданию) обычно поставлено туманно, и может быть выполнено различными способами с разной степенью усердия. И у вас всегда будет дилемма — сколько reasonable efforts приложить к его выполнению. Проблема в том, что вас будут судить «по себе». И если вы сделали меньше или не так, как ваш собрат, он вам оценку скорее сбавит. Помимо этого, требования могут быть вроде «презентация для вашего босса/не технического специалиста». Сколько в такой презентации должно быть воды, а сколько техники — всегда субъективное мнение.

Поэтому, важны 2 вещи — внимательно прочитайте пункты в анкете, по которым вы\вас будут оценивать. Я лично, не снижал оценку в случаях, если у меня нет для этого повода. Т.е. программа может работать криво, но если в анкете перечислены {запуск/наличие пользовательского ввода/ успешное предсказание хотя бы одного результата из 5} и конкретно вот это в программе есть, то у меня нет формального повода сбавить оценку в любом из этих пунктов. Свое общее фи вы сможете высказать в поле для развернутого комментария, а также впоследствии почитать комментарии о своей работе. Но они на оценку не влияют. В общем, не знаешь как — делай так, чтобы было невозможно придраться по оценочной анкете. В целом, я считаю, сокурсники имеют склонность завышать оценки.

Вторая вещь — есть места, которые трактуются двояко/трояко и пр. И это может привести к диаметрально противоположным результатам. Если у вас есть сомнения в чем-то — загляните на форум курса. Уверен, там уже будет холивар. Если нет — смело пишите свой результат и спрашивайте у супервайзера: «а так можно?». Вам скорее всего ответят, что можно и так, и сяк, и вообще — сколько людей, столько и мнений. Ссылку на это обсуждение с пометкой «мне так разрешили» прикладывайте к вашей работе. Таким образом вы избежите проблем, если ваше мнение разделяет меньшинство, а не большинство, и избавите проверяющего от сомнений.

Курсовой даст 60-70% финальной оценки. В общем, процент подобран так, что сдать курс без него невозможно.

Отдельно отмечу, что после каждого курса в сети остается куча репортов, проектов на github и пр. результатов жизнедеятельности студентов. Все это публично, и может быть нагуглено следующим потоком. Поэтому, такие материалы нужно за собой подтирать. Хотя, случаев плагиата мне не попадалось. Советую делать это слегка после получения сертификата, а не сразу после окончания курса — мало ли.

Штрафы (penalty)


За просрочку теста или курсового полагается штраф в % от набранной за них оценки. Не забывайте по окончанию дедлайна на сдачу курсового вернуться и проверить 4 чужие работы. Иначе получите за это штраф. И я на это попал, т.к. сдал курсовой за 2 недели до первого дедлайна и забыл о нем напрочь.
По тестам есть exception'ы — забудьте о них, уважаете дедлайн.

Certificate with distinction


Если наберете больше 90% от максимального course credit score, на выданном за курс сертификате будет пометка «with distinction».
А вот для capstone такого нет. Т.е. у вас будет 9 with distinction, а у кого-то все без отличия — вы получите одинаковый финальный сертификат за всю специализацию. По кр. мере визуально одинаковый. Если пройти по ссылке на такой сертификат, то там будут видны и 9 включенных в его программу.

Кстати, сертификаты появляются дня через 2-3 после окончания курса. Хотя, один раз задержка составила 1.5 недели, и публика начала безумствовать.

Swirl


Для некоторых курсов авторы позволяют выполнить дополнительные задания и получить за них баллы. Все задания заключаются в прохождении небольшого интерактивного обучения непосредственно в RStudio через пакет Swirl. Механику объяснять не буду — ничего сложного там нет. Уроки в Swirl доступны далеко не для каждого курса специализации. Обычно таких уроков с десяток, но практический смысл имеет прохождение любых 5 из них. Это потому, что за каждый дается +1 балл, и больше дополнительных 5 баллов за курс собрать таким образом не дают. Если вы не получили максимальный балл за тест, или не уверены, что ревьюверы по достоинству оценят ваш проект — сделайте себе гандикап — пройдите хотя бы 5 первых уроков. От провала оно вас вряд ли спасет, а вот склонить чашу весов в сторону сертификата с distinction может. Я, например, таким образом частично закрывал полученный по забывчивости штраф.

И еще раз о порядке прохождения курсов


После того, как я перемолол первый курс за 4 часа, и еще за неделю всё сдал по 2-м следующим (конечно, нужно было еще вернуться к ним и оценить чужие работы, но на это требуется не больше пол часа на 1 чужой проект, в зависимости от вашей сознательности) у меня осталось 2 свободных недели до начала следующих. (Не профукайте открытие регистрации на них). Эти 2 недели я потратил, соревнуясь на kaggle и немножко контрибутя код в VW. После чего возник вопрос: продолжить в таком темпе (2 курса за 1.5-3 недели + самообразование/kaggle) или взять 3 курса параллельно. Так вот я вам советую первое. А у тех, кто учится в свободное от работы время, наверное и вопроса такого не возникнет.

Проблема в том, что все курсы, которые вы берете разом, начинаются на одной и той же первой неделе месяца. И с большой вероятностью дедлайны по всем курсовым придутся на одну и ту же дату (2-3 неделя). Ну а с продвижением по signature track, курсы становятся тяжелее, а курсовые — более творческими. Плюс каждый последующий курс может немного опираться на знания, полученные из предыдущего курса. В общем, в какой-то момент вы не сможете эффективно между ними переключаться, и сдача курсовых начнет прижиматься к дедлайнам (а дедлайны все в один день). В общем — не смотря на то, что при обучении сразу на двух проектах у full time студента остается (по кр мере в начале пути) достаточно времени, брать три и более курсов за раз — не вариант, т.к. пиковая нагрузка на 2й-3й неделе вас вышибет. Вот если бы начало курсов можно было смещать на неделю-две, тогда да…

Capstone project


Минимум видео — информацию нужно собирать самому. Два курсовых — репорт с exploratory analysis и собственно web app на shinyaps.io.

Визг, писк, истерика
Честно говоря, здесь я расстроился. Capstone один на всех. Т.е. это не дипломный в ВУЗе, тему которого можно выбрать. Он был один, и мне с ним не повезло — это был Natural Language Processing.

Организаторы на курсовой выбирают область, с которой студент не знаком (т.е. в процессе курса она не освещалась). Т.о. у студента есть шанс показать real data science — изучение незнакомой предметной области и т.д. Но я с NLP уже сталкивался и, честно говоря, наелся. Это очень большая и глубокая область — ее отдельно можно годами изучать. Кроме того, она очень далека от моих научных интересов. Курсы по NLP есть на самой coursera. И, видимо, предполагалось, что студент будет опираться на них.

Кроме того, накладываемые постановкой задачи ограничения на RAM и скорость работы алгоритма (облако в shinyapps) с одной стороны заставляют сильно адаптировать его к облаку, с другой стороны этот инжинерный подвиг ничего не даст, т. к. затачиваться нужно под реалии mobile devices. Ну не пишутся такие вещи на R. И не будет моя работа даже теоретически переносится в реал, без еще одного перетряхивания модели. Ведь там вся соль здачи не в том, как напридумать крутой prediction model, а в том, как заставить его сносно работать на медленном железе и не сожрать при этом памяти, больше чем программа, к которой он прикручен.

А когда я понял, что сертификата с отличием за capstone не бывает, я, впервые за специализацию, решил сфилонить. Получил, грубо говоря, 4~4+ за проекты и успешно дождался дембеля.


Заметьте, участие в capstone требует завершения 9 курсов. Т.о. у вас параллельно с capstone ничего быть не может, и времени на изучение новой предметной области должно хватить.

Неизвестно, как часто меняются задания capstone project. Скорее всего, оно не менялось никогда — в гугле попадаются репорты на эту же тему оставшиеся от студентов предыдущих запусков capstone project. Кстати, не забывайте удалять свои.

Результат


Результатом обучения является запись в БД сертификатов coursera и URL, чтобы на эту запись полюбоваться. И кнопочка, автоматически прописывающая ее вам в linkedin профиль.

Статья составлена по воспоминаниям и в мелких деталях, особенно с течением времени, может отличаться от вашего опыта.

Если забыл что-то важное — я добавлю.
Tags:
Hubs:
Total votes 22: ↑21 and ↓1 +20
Views 69K
Comments 8
Comments Comments 8